簡體   English   中英

在/ html之外為php / apache授予讀取權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM