您的当前位置:首页>全部文章>文章详情

PHP错误:“open_basedir restriction in effect”的解决方法

发表于:2024-10-22 11:17:37浏览:428次 TAG: #宝塔 #composer 收藏

迁移服务器的时,发现网站配置好了,composer也更新了,但是访问入口文件的时候有提示报错:

Warning:file_exists(): open_basedir restriction in effect. File(./license.php) is not within the allowed path

好了,来看下问题应该怎么解决。

 

产生原因

在 PHP的配置文件:php.ini中有关于此函数的定义:

主要是限制PHP文件读取规定目录下的文件。接下来我们就解决这个问题!

 

解决思路

现在的PHP框架大多都引入了Composer包管理工具,而且多是单入口的,从入口文件中引入 外部 Vendor目录下的 autoload.php。如果在 Nginx或Apache等web服务器中,指定项目下名为public的文件夹作为web根目录,此时就需要改PHP的配置文件或者web服务器的配置文件。

 

解决方法

首先检查在php.ini文件中的配置,如果没有注释掉,那就在此处修改

php.ini

open_basedir = /tmp/:/proc/:/wwwroot/laravel/;

保存重启PHP-fpm

如果在php.ini中已经注释掉了,那么就检查在fastcgi.conf内的配置

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/tmp/:/proc/:/wwwroot/laravel"

保存重启nginx

 

还有一种配置 .user.ini

在项目的下修改 .user.ini 添加 上述的配置即可

 

如果是使用宝塔面板这类的管理软件,在网站配置下勾选掉“防跨站攻击”选项,如下图所示。

 

 

写在最后

深究问题的来龙去脉,才是解决问题的最佳办法

 

 

Hi 小闻

可以咨询展会的任何问题哦 关闭