好吧,我已經試過了一切,這是迄今爲止最好的地方,我想在此創建文檔根目錄httpdocs/[folder]/html
,並且我有我想要的php包含文件去根(require '../[folder]/file.php']
以上,但不能訪問比/var/www/vhosts/example.com/httpdocs
更遠。我知道我受限於open_basedir
,因爲價值仍然是httpdocs/[folder]/html
在phpinfo()
但是對於我的生活,我無法改變當地的價值!嘗試在文檔根目錄外包含文件(Plesk 10)
這是我到目前爲止已經試過: 我已經看到了這一點 - How to include file outside document root? - 創造了「vhost.conf」是STIL坐在conf目錄下,重新配置文件,重新啓動Apache的...什麼都沒有。這是一個很好的帖子,但似乎有點過時了。
我編輯php.ini文件本身open_basedir = '/var/www/vhosts/example.com/httpdocs
,上傳它備份到它在哪裏,重新配置,重新啓動 - 沒有什麼
我掏出「的httpd.conf」從其他的conf添加相同的行編輯它文件,(vhost.conf),把它放回 - 沒有,然後我試圖做什麼godaddy在這裏說 - http://help.godaddy.com/article/1616並添加行php_admin_value open_basedir none' to 'httpd.conf
- 沒有運氣。
現在是0435,我幾乎可以睜大眼睛 - 這個網站將於明天在2000年推出!預先感謝任何願意/能夠閱讀和/或幫助的人。
更新:感謝快速反應,這裏是最好的答案,我可以給你:
它是否給你一個錯誤?
是的,我得到了一個服務器錯誤,並通過我的服務器錯誤日誌,具體如下:
PHP的警告:要求()[function.require]:實際上open_basedir的限制。文件(/ var/www/vhosts/[example.com]/httpdocs/[文件夾]/[安全php文件存在的文件夾]/[file.php])不在允許的路徑內:
所以我99.99%肯定是因爲open_basedir的限制。
你確定你的網絡服務器被設置爲虛擬主機的所有者嗎?
我敢肯定,我有點新的控制服務器,我真的不知道這意味着什麼究竟,但我通過Godaddy的虛擬專用服務器,運行的Parallels Plesk v10.3.1,我做上面的文件移動通過Shell SSH。
在Plesk中,我可以將'Document root'更改爲任何低於/var/www/vhosts/example.com
的值,Plesk會將'open_basedir'更改爲我設置的任何值。例如,如果我在Plesk中將文檔根目錄設置爲'httpdocs',那麼'open_basedir'將被更改爲相同的文件夾,並且一切正常。問題是,我不希望在/httpdocs/[folder]
公衆獲得的一切我的目標是我想「文檔根目錄」更改爲/httpdocs/[folder]/html
和「的open_basedir到/httpdocs
,但我不能改變局部值在open_basedir
出於某種原因。我想這樣做是出於安全目的,所以人們只能直接訪問非重要的PHP文件,但PHP本身我想給更多的文件夾訪問權限。
你想包括使用相對或絕對路徑?
我在php文件路徑,我試圖以包括/需要對上述「文檔根目錄」文件長相酷似格式:
require '../[folder where secure php files exist]/file.php';
如果我正確認識你,我沒有使用服務器的整個路徑。
它給你一個錯誤?你確定你的網絡服務器設置爲虛擬主機/?你是否嘗試使用相對或絕對路徑? –
SeanNieuwoudt
2011-12-18 09:53:40
不幸的是,Plesk是由一些對網站知之甚少的人設計的。您的文件必須位於公共目錄樹下或專用目錄下(現在允許PHP訪問專用目錄)。 – 2011-12-18 17:38:08
是的,檢查我做的最後一次更新,我解決了原始問題,但由於某種原因,服務器跳過了我所有的嵌入文件(css,js,php,圖像,視頻)。我甚至將'open_basedir'設置爲'none',但它仍然忽略它們,所以它不再是'open_basedir'問題。我在index.php上看到了所有我的無格式html,但是我沒有收到任何錯誤,我的腳本'需要'一堆文件!在php.ini..ugh中必須打開或關閉一些東西! – phpKid 2011-12-18 17:57:07