open_basedir php授权目录设置
2021/11/12 12:10:07
本文主要是介绍open_basedir php授权目录设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
php为了安全性考虑,有一项 open_basedir 的设置。该项配置限制require()访问的路径。 open_basedir
将php所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开
出现以下错误:
解决该项问题,需要增加open_basedir配置,具体有以下两种解决办法:
1. 在php.ini中配置。
此项配置针对所有项目
;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可以访问的路径。多个路径直接分号隔开
2.项目根目录中通过 .user.ini 进行配置。
此项配置只针对单个项目
step1 : 要使.user.ini生效,要设置php.ini 中的
user_ini.filename = ".user.ini" user_ini.cache_ttl = 300
关于这两个配置的意义,请看php手册 http://php.net/manual/zh/configuration.file.per-user.php
step2 :注释掉 fastcgi.conf 中的 open_basedir 的配置。
step 3: 在项目根目录 创建 .user.ini文件,写入如下内容
open_basedir=/tmp/:/proc/:/you_web_path
/you_web_path 是你要添加的让php可以访问的路径。多个路径直接分号隔开
step4: 重启一下php-fpm 服务即可。
注:
php-fpm的配置 php_admin_value[*] 会覆盖php.ini中的配置。
如果在lamp架构中浏览器访问php文件的php_info()函数,如果在php-fpm相关配置文件中配置了与php.ini相同的参数,那么local
value和master value都会显示该php-fpm覆盖掉php.ini之后的值。
参考文档:https://www.jianshu.com/p/a862ce3d13fb
http://www.884358.com/open_basedir/
这篇关于open_basedir php授权目录设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享