在使用lnmp配置新项目的过程中,报出如下错误.
**Warning**: require(): open_basedir restriction in effect. File(/p/lv/vendor/autoload.php) is not within the allowed path(s): (/var/www/el/:/tmp/:/proc/) in **/var/www/el/index.php** on line **24****Warning**: require(/var/www/el/vendor/autoload.php): failed to open stream: Operation not permitted in **/var/www/el/index.php** on line **24****Fatal error**: require(): Failed opening required '/var/www/el/vendor/autoload.php' (include\_path='.:/usr/local/php/lib/php') in **/var/www/el/index.php** on line **24**
【lnmp|lnmp中关于 open_basedir 的报错】报错日志显示
open_basedir
不在 open_basedir
的限定目录里面.那么在哪里可以配置呢? 答案是php.ini
和nginx.conf
我们先来看看
php.ini
, 发现并没有配置 open_basedir
然后再去看看
nginx
配置,发现nginx的配置文件比较多 引用比较复杂,没关系,我们使用grep -rn
?nginx grep -rn open_basedir ./
./conf/fastcgi.conf:27:fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
./conf/fastcgi.conf:28:fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
发现
fastcgi.conf
中配置了open_basedir $document_root
, 那么我们只需要再添加一个新的默认目录即可.fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/var/www/el/";
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- nginx-1.20.2安装使用
- NGINX 创始人 Igor Sysoev 退出 F5(20 年发展“简史”令人肃然起敬)
- Nginx|Nginx~从入门到入坑。
- nginx|Mac配置PHP环境(brew安装nginx+php)
- 使用ngx_lua构建高并发应用(2)
- svn|前瞻(Spring Boot 2.4.0 第二个里程碑版本发布)
- nginx cache踩坑
- keepalived + nginx组建高可用负载平衡Web server集群