前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP5.0.20 – TP5更改网站目录为/public 后运行出错解决

TP5.0.20 – TP5更改网站目录为/public 后运行出错解决

作者头像
宣言言言
发布2019-12-15 21:47:45
2.3K0
发布2019-12-15 21:47:45
举报

今天在部署TP5的时候,把网站根目录指向到public目录下,运行后产生以下错误

Warning: require(): open_basedir restriction in effect. File(/www/wwwroot/xx/thinkphp/start.php) is not within the allowed path(s): (/www/wwwroot/xx/public/:/tmp/:/proc/) in /www/wwwroot/xx/public/index.php on line 18

Warning: require(/www/wwwroot/xx/thinkphp/start.php): failed to open stream: Operation not permitted in /www/wwwroot/xx/public/index.php on line 18

Fatal error: require(): Failed opening required '/www/wwwroot/xx/public/../thinkphp/start.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/xx/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()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。

本指令不受安全模式打开或关闭的影响。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档