我們的網站運行在Apache服務器上,使用httpd和php。在該服務器上安裝一個來自Windows服務器的特定目錄,比如說/mnt/some_directory/
。我可以使用我自己的用戶帳戶使用WinSCP或SSH瀏覽此目錄。允許Apache/PHP對安裝的目錄具有讀/寫訪問權
我也可以執行SSH如下:
php -r "print_r(file_get_contents('/mnt/some_directory/file_name.txt'));"
,看到文件的內容。
我們需要從該目錄讀取文件並進行解析,以便將其導入到網站使用的數據庫中。但是,當在網站上的fopen或file_get_contents我們得到一個權限被拒絕的錯誤。
我對Web服務器的訪問受限(以及有限的* nix和apache配置知識),但應該明顯解決這個問題的管理員也缺乏這方面的知識,我需要解決這個問題,這就是爲什麼我在這裏問。
管理員所做的是將安裝目錄的組和所有權設置爲「apache」,這是httpd進程運行的用戶。但是這並沒有幫助。
據我所知默認情況下不允許訪問webroot之外的文件。在httpd.conf中爲/mnt/some_directory/
設置一個DIRECTORY指令是否足夠?或者還有什麼要做的?
可以鏈接目錄一樣的/ var/www/linkedtomntsomething?真的不知道它是否有效(現在無法測試) –
它可能是Selinux權限問題。 –
謝謝。根據'ps -ZC httpd',httpd進程由一個「unconfined_u」運行,所以我猜Selinux用戶映射將用戶「apache」映射爲「unconfined_u」。爲apache更改此映射會保存嗎? –