PHP错误:“open_basedir restriction in effect”的解决方法
发表于:2024-10-22 11:17:37浏览:1605次
收藏
迁移服务器的时,发现网站配置好了,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 添加 上述的配置即可
如果是使用宝塔面板这类的管理软件,在网站配置下勾选掉“防跨站攻击”选项,如下图所示。
写在最后
深究问题的来龙去脉,才是解决问题的最佳办法
推荐文章
- Windows环境下 php7.3安装扩展mcrypt
- phpExcel导出身份证格式问题
- 怎样去除visio垂直跨职能流程图中的“阶段” 和 标题 行
- 使用纯JS的客户端HTML到PDF呈现
- 打印机扫描软件安装以及在打印机选择扫描文件位置教程
- 必应、谷歌等搜索引擎想要出现站点子链需要什么条件和要求?
- 腾讯云直播APP的相关配置
- phpstudy 提示 mysqld.exe: Error while setting value ‘NO_ENGINE_SUBSTITUTION 错误的解决办法
- 10个人干1个月才能完成的数据分拆,PQ 1分钟搞定!
- php的strtotime('+1 month'),一个月的最后一天bug
