lnmp 环境require(): open_basedir restriction in effect 错误

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16399991/article/details/85276570

一.环境说明

  • ubuntu18
  • lnmp1.5

二.报错

include函数报错 open_basedir restriction in effect 错误。

三.open_basedir 是什么

php为了安全性考虑,有一项 open_basedir 的设置。根据你web服务器环境,open_basedir可以在几个地方设置。

1. 在php.ini中配置。

1

;open_basedir =

  如果发现配置项前是有分号,表明php.ini中没有该设置。那就很可能是在  php-fpm  中的 fastcgi.conf中配置了。php-fpm中的配置会覆盖php.ini的配置。

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root:/tmp/:/proc/:/you_web_path";
/you_web_path 是你要添加的让php可以访问的路径。多个路径直接分号隔开


如果也给服务器有多个项目,无论是在php.ini或者fastcgi.cong中设置,都是针对所有项目。那能不能只针对某个项目设置呢?
答案是肯定的。还可以在项目根目录中通过  .user.ini 进行配置。
.user.ini配置
首先,要使.user.ini生效,要设置php.ini 中的

1

2

user_ini.filename = ".user.ini"

user_ini.cache_ttl = 300

  关于这两个配置的意义,请看php手册 http://php.net/manual/zh/configuration.file.per-user.php

注释掉 fastcgi.conf 中的 open_basedir  的配置。

在项目根目录 创建 .user.ini文件,写入如下内容

1

open_basedir=/tmp/:/proc/:/you_web_path

/you_web_path 是你要添加的让php可以访问的路径。windows多个路径直接分号隔开 linux 下多个使用冒号分割
重启一下php-fpm 服务即可。

解决过程:

1.修改php.ini中的文件后 没有生效,发现:fastcgi.conf中配置了。php-fpm中的配置会覆盖php.ini的配置。
2.修改fastcgi.conf后重启生效。

猜你喜欢

转载自blog.csdn.net/qq_16399991/article/details/85276570