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使用:分隔目錄。 

相關文章
相關標籤/搜索