ACCESS DENIED
小Z小Z  2019-08-27 13:08 主机之家测评 隐藏边栏 |   抢沙发  148 
文章评分 0 次,平均分 0.0

今天在部署一个 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) 的选项”把该选项关闭即可。

宝塔面板中 ThinkPHP5 更改网站目录为/public 后运行报错的解决办法

原因如下:open_basedir 将 PHP 所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如 fopen()或 file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。

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

 

相关推荐:宝塔面板上的网站出现 no input file specified 错误解决办法

声明:1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
小Z
小Z 关注:0    粉丝:0
【声明】:本站宗旨是为方便站长、科研及外贸人员,请勿用于其它非法用途!站内所有内容及资源,均来自网络。本站自身不提供任何资源的储存及下载,若无意侵犯到您的权利,请及时与我们联系。

发表评论

扫一扫二维码分享