這篇文章主要介紹的內容是關於php下open_basedir的配置,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
在下載了YII2.0框架並成功配置了nginx之後,發現還是無法訪問,查看錯誤日誌發現報錯訊息有中有require(): open_basedir restriction in effect。遂到網路上查找,後發現是php的設定項open_basedir限制了require()存取的路徑。
open_basedir 將php所能開啟的檔案限制在指定的目錄樹中,包括檔案本身。當程式要使用例如fopen()或file_get_contents()開啟一個檔案時,這個檔案的位置將會被檢查。當檔案在指定的目錄樹之外,程式將拒絕開啟。
在linux系統中,open_basedir主要在php.ini和fastcgi.conf檔案中配置,php.ini中配置如下:open_basedir="指定目錄";fastcgi.conf中配置如下:fastcgigi_param PHP_VALUE "open_basedir =指定目錄";
在windows下,主要在php.ini和apache的http.conf檔案中配置,http.conf中配置如下:php_admin_value open_basedir "指定目錄"。
用open_basedir指定的限制其實是前綴,不是目錄名稱。 也就是說 open_basedir=/home/fdipzone 也會允許存取/home/fdipzone_abc,如果要將存取限制為目錄,請使用斜線結束路徑名,例如:open_basedir=”/home/fdipzone/」。如果要設定多個目錄,window使用;分隔目錄,linux使用:分隔目錄。
使用open_basedir可以限製程式可操作的目錄和文件,提高系統安全性。但會影響I/O效能導致系統執行變慢,因此需要根據具體需求,在安全性與效能上進行平衡。
以上是php下open_basedir的配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!