lnmp 架构 open_basedir的使用与配置

如果建立的虚拟网站不在/home/wwwroot目录下,建在另一个目录/data/websize,要确保二个目录下的项目都能正常打开,怎么办?

1.open_basedir介绍
open_basedir 将php所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。

本指令不受安全模式打开或关闭的影响。 


2.open_basedir设置方法
1.在php.ini 加入

open_basedir="指定目录"

2.在程序中使用

ini_set('open_basedir', '指定目录');

但不建议使用这种方法

3.nginx fastcgi.conf

fastcgi_param PHP_VALUE "open_basedir=指定目录"

用open_basedir指定的限制实际上是前缀,不是目录名。 
也就是说 open_basedir=/home/fdipzone 也会允许访问/home/fdipzone_abc,如果要将访问限制为目录,请使用斜线结束路径名,例如:open_basedir=”/home/fdipzone/”

如果要设置多个目录,window使用;分隔目录,linux使用:分隔目录。 


4.使用open_basedir限制目录访问
首先创建一个VirtualHost, 
设置open_basedir 为/home/fdipzone/sites/in.fdipzone.com/

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/fdipzone/sites/in.fdipzone.com
    ServerName in.fdipzone.com
    php_admin_value open_basedir "/home/fdipzone/sites/in.fdipzone.com/"
    <Directory "/home/fdipzone/sites/in.fdipzone.com">
        allow from all Options + Indexes
    </Directory>
</VirtualHost>
 

 

 

#在php-fpm.conf对应的pool池中行尾配置

php_admin_value[open_basedir]=/home/wwwroot/:/proc/:/tmp/

#在nginx fastcgi fastcgi_param配置

#这里用$document_root是一种取巧的方法,也可以设置绝对路径

# set php open_basedir

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

 

#在php.ini行尾配置

[HOST=www.12.com]

open_basedir=/data/websize/:/proc/:/tmp/

[PATH=/data/websize/]

open_basedir=/data/websize/:/proc/:/tmp/

 

这三个地方配置的优先级如下

“php.ini” > “nginx fastcgi fastcgi_param” > “php-fpm.conf”

 

根据优先级我们配置即可:

#在php.ini行尾配置

[HOST=www.12.com]

open_basedir=/data/websize/:/proc/:/tmp/

[PATH=/data/websize/]

open_basedir=/data/websize/:/proc/:/tmp/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值