今天在部署一个ThinkPHP5开发的网站时,把网站根目录指向到public目录下,结果运行后产生以下错误
Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/xxx/thinkphp/start.php) is not within the allowed path(s): (/www/wwwroot/xxx/public/:/tmp/:/proc/) in /www/wwwroot/xxx/public/index.php on line 18 Warning: require(/www/wwwroot/xxx/thinkphp/start.php): failed to open stream: Operation not permitted in /www/wwwroot/xxx/public/index.php on line 18 Fatal error: require(): Failed opening required '/www/wwwroot/xxx/public/../thinkphp/start.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/xxx/public/index.php on line 18
看错误代码很明显是require文件的时候出错了,并且带上了文件的路径,一开始以为是路径出错的,于是在index.php中尝试修改引入的文件路径,发现index.php并没有问题。
百度发现这个错误是:open_basedir 的问题 需要在php.ini中修改open_basedir你的项目路径,或者在nginx中也可以定义。
但是我的两个配置文件中都没有该配置参数,突然想到我的服务器使用了宝塔面板。
于是到宝塔面板的网站配置页面,发现有一个“防跨站攻击(open_basedir) 的选项”把该选项关闭即可。
原因如下:open_basedir 将PHP所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。
本指令不受安全模式打开或关闭的影响。
相关推荐:宝塔面板上的网站出现no input file specified错误解决办法
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《宝塔面板中ThinkPHP5更改网站目录为/public后运行报错的解决办法》
文章链接:https://www.liuzhanwu.com/3191.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《宝塔面板中ThinkPHP5更改网站目录为/public后运行报错的解决办法》
文章链接:https://www.liuzhanwu.com/3191.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
456CDN:为网络安全与加速保驾护航,CDN测评推荐
456CDN:高防CDN,200GB DDoS防护,无视CC,1TB流量@50Mbps带宽,500元/月,安全加速,智能守护,稳定安全
#618大促#最后一天|凌霞软件旗下新一代服务器面板 1Panel:永久授权 539元起,10台4900元,即买即赠SSL证书
#618大促#最后一天|凌霞软件旗下强大易用的建站工具 Halo:永久授权 660元起,10台6000元,即买即赠SSL证书
#6.18促销#Themebetter:WordPress主题特惠7折,DUX主题折后559元,不限制域名授权数目
耗子Linux 面板:又一个轻量 Linux 服务器运维管理面板
#11.11#Themebetter:年度大放价,全场6折特惠,DUX主题折后480元,不限制域名授权数目
紧急提醒:DediPath官宣跑路