LNMP脚本部署laravel,thinkphp5 的open_basedir问题

1.由于这两个框架,部署的时候网站根目录通常设置在public 

lnmp 脚本部署的时候会在网站根目录下面生成 .user.ini 文件。 .user.ini文件没法直接修改,如要修或删除须要先执行:chattr -i /网站目录/.user.ini  php

能够看这里:https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.inihtml

open_basedir 将PHP所能打开的文件限制在指定的目录树中,包括文件自己。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树以外,程序将拒绝打开。linux

2.open_basedir设置方法

1.在php.ini 加入nginx

open_basedir="指定目录"
  •  

2.在程序中使用apache

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

但不建议使用这种方法框架

3.在apache的httpd.conf中的Directory配置网站

php_admin_value open_basedir "指定目录"
  • 1

httpd.conf中的VritualHostspa

php_admin_value open_basedir "指定目录"
  •  

4.nginx fastcgi.conf.net

fastcgi_param PHP_VALUE "open_basedir=指定目录"
  • 1

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

若是要设置多个目录,window使用;分隔目录,Linux使用:分隔目录。 

相关文章
相关标签/搜索