我现在想部署一个php应用到一个共享主机。遗憾的是,require函数似乎不能访问父目录来包含文件。这只在本地有效。我创建了一个最小的工作示例:
目录结构:
/project/bootstrap/app.php
/project/public/index.phpapp.php:
<?php
print("Hello from app");index.php:
<?php
require __DIR__ . '/../bootstrap/app.php';
print('Hello World!');这个应用程序在本地运行得很好,而在服务器上我得到了一个'HTTP ERROR 500‘。我检查了服务器上的文件夹和文件权限,文件夹权限设置为755,文件权限设置为644。
编辑:当我激活错误报告时,我得到以下错误:
Warning: require(): open_basedir restriction in effect. File(/path/on/hoster/bootstrap/app.php) is not within the allowed path(s): (/path/on/hoster/public/:/tmp/) in /path/on/hoster/public/index.php on line 6
Warning: require(/path/on/hoster/bootstrap/app.php): failed to open stream: Operation not permitted in /path/on/hoster/public/index.php on line 6
Fatal error: require(): Failed opening required '/path/on/hoster/public/../bootstrap/app.php' (include_path='.:/opt/plesk/php/7.2/share/pear') in /path/on/hoster/public/index.php on line 6发布于 2019-07-03 00:16:44
也许您的主机使用的是较旧的PHP版本。
检查以下代码:
<?php
require realpath( dirname(__FILE__) . '/../bootstrap/app.php' );
print('Hello World!');或者简单地这样做:
require '../bootstrap/app.php';更新
如果您看不到任何错误,则通过将以下行添加到代码顶部来启用PHP的错误报告:
error_reporting(E_ALL);
ini_set('display_errors', 1);https://stackoverflow.com/questions/56856021
复制相似问题