PHP错误:“open_basedir restriction in effect”的解决方法
发表于:2024-10-22 11:17:37浏览:428次
收藏
迁移服务器的时,发现网站配置好了,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 添加 上述的配置即可
如果是使用宝塔面板这类的管理软件,在网站配置下勾选掉“防跨站攻击”选项,如下图所示。
写在最后
深究问题的来龙去脉,才是解决问题的最佳办法