企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### **防跨目录设置** LNMP 1.1及之前的版本使用php.ini里面,[open\_basedir设置](http://www.vpser.net/security/lnmp-cross-site-corss-dir-security.html) LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。 .user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini 可以使用[winscp文件管理](https://www.vpser.net/manage/winscp.html)、[vim编辑器](http://www.vpser.net/manage/vi.html)或[nano编辑器](http://www.vpser.net/manage/nano.html)进行修改。 删除的话rm -f /网站目录/.user.ini 就可以。 修改完成后再执行:chattr +i /网站目录/.user.ini .user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。 **如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!** LNMP 1.4或更高版本如果不想用防跨目录除需要删除**.user.ini**的防跨目录的目录还需要将 **/usr/local/nginx/conf/fastcgi.conf**里面的fastcgi\_param PHP\_ADMIN\_VALUE "open_basedir=$document\_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。 LNMP 1.4或更高版本也可以直接使用lnmp安装包 tools/ 目录下的 ./remove\_open\_basedir\_restriction.sh 进行移除。 **在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误(开启错误后`Warning: require(): open_basedir restriction in effect.`)也可能是这个问题引起的。** LNMPA或LAMP 模式1.2版本或更高版本的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的php\_admin\_value open\_basedir参数进行设置。如果不需要防跨目录设置可以在 php\_admin\_value open\_basedir 该行前面加 # 进行注释,或自行修改参数后面的目录。