[英]Give php / apache read access outside of /html
如何授予php和apache對/ var / www / html以外的目錄的讀取權限?
我正在嘗試在php文件中包括以下內容:
require '/var/www/config/settings.php';
這是關於配置的權限
drwxr-xr-x. 2 apache root 4096 Sep 16 14:02 config
並在settings.php上
-rwxr-xr-x. 1 apache root 306 Sep 16 14:02 settings.php
PHP引發以下錯誤:PHP警告:require(/var/www/config/settings.php):無法打開流:在[此處的文件名]中拒絕了權限
sudoing chown不起作用,這已在您的apache的文檔根目錄中設置
您需要創建2個條目。 1是這樣的:
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.yourdomain.com
# Other directives here
</VirtualHost>
並且為此/var/www/config/settings.php您需要創建此條目
<VirtualHost *:80>
DocumentRoot /var/www/config
ServerName www.yourdomain.com
# Other directives here
</VirtualHost>
這是Web服務器的工作方式,為了獲得對另一個文檔根目錄或/的訪問權,當您在url中調用它時,它會查找DocumentRoot
確保這樣做后重新啟動apache才能生效。
經過努力並嘗試了這里的建議后,我開始使用它,但是不明白為什么...
我為排除故障所做的工作...
我進入config目錄,然后使用vim創建了一個新文件,並將其命名為test.php
然后:chown apache test.php
將包含它的php腳本更改為test.php而不是settings.php
奏效了!! 為什么? 這兩個文件具有完全相同的權限和所有權。 我將其更改回settings.php,但再次失敗。
然后,我將settings.php的內容復制到test.php中,刪除了settings.php並重命名為test.php-> settings.php
現在我經商。
如果有人可以解釋發生了什么,那將是很好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.