PHP學習筆記【配置】open_basedir
阿新 • • 發佈:2018-12-23
最近開始學習YII2.0。剛開始的時候遇到了各種問題
Warning: require(): open_basedir restriction in effect. File(F:\newpro\Yii2basic\basic\vendor\autoload.php) is not within the allowed path(s):像是這樣。
然後各種百度。。。說一下自己配置。 nginx+php5.4 在windows平臺下的。
最終知道是怎麼回事,給大家分享一下。php.ini裡面有這樣的一個配置open_basedir
.ini裡面的英文解釋是這樣的。
; if set, limits all file operations to the defined directory; and below. ;
; or per-virtualhost web server configuration file. ;This directive is *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/open-basedir 金山詞霸一下是這樣子滴: 1.如果設定,限制所有的檔案操作定義的目錄下。 2.本指令在每個目錄或虛擬主機Web伺服器的配置檔案是有作用。 3.本指令不受是否安全模式開啟或者關閉。(不受安全模式影響)
說人話
例如: 我的YII2.0 放到了 F:\newpro\Yiibase 裡面
nginx 伺服器虛擬主機設定的 root 路徑為 f:/newpro/Yii2basic/basic/web;(apache是一樣的)。 web目錄下的inde.php 檔案裡面有這樣一句話。 require(__DIR__ . '/../vendor/autoload.php');
此時open_basedir是註釋掉的。對應設定的 ServerName : yiibase.com 此時,訪問 yiibase.com的時候會報錯, 就像開頭的那樣 沒有許可權訪問。open_basedir 限制效應。 說明預設PHP是不認可這種 require(__DIR__ . '/../vendor/autoload.php');