嘗試訪問 Apache 伺服器上的文件時出現 403 錯誤
我有一個 Ubuntu 14.04 伺服器,
http://images.example.com
它位於/etc/apache2/sites-enabled/richblockspoorblocks.com.conf
:<VirtualHost *:80> ServerAdmin admin@example.com ServerName example.com ServerAlias images.example.com Header set Access-Control-Allow-Origin "*" DocumentRoot /home/username/var/www/example.com/public_html ErrorLog /home/username/var/www/example.com/logs/error.log CustomLog /home/username/var/www/example.com/logs/access.log combined </VirtualHost>
我有一個文件
/home/username/var/www/example.com/public_html/test.txt
。但是當我將瀏覽器導航到 時
http://images.example.com/test.txt
,出現 403 禁止錯誤。Forbidden You don't have permission to access /test.txt on this server. Apache/2.4.7 (Ubuntu) Server at images.example.com Port 80
這是我在跑步
ls -la
時看到的~/
:drwxrwxr-x 3 www-data username 4096 May 20 21:32 var
error.log
只有一條client denied by server configuration
消息。我已經跑了
apache2 restart
。我必須更改什麼才能
test.txt
在瀏覽器中看到?
您似乎將您的網站文件和DocumentRoot放在一個
/home/user
子目錄中:DocumentRoot /home/username/var/www/example.com/public_html
通常,Apache 在 中工作
/var/www
,您可能會在使用者的主目錄中嵌套這樣的錯誤。如果您上傳並將DocumentRoot指向預設位置 ( ) 以外的其他位置/var/www/
,則可能需要修復所有者/組/其他及其權限,以便www-data
apache 的使用者或組 ( ) 可以讀取它們。是否有任何理由將您的使用者家用於網路伺服器 DocumentRoot?
如果您真的想要它,您可以嘗試更改組,以允許 apache 讀取它:
我不推薦這個,除非你知道你在做什麼
chgrp -R www-data /home/username/var/www/example.com/public_html
那可能應該使它起作用。儘管您可能還必須更改某些權限,具體取決於您將文件複製/上傳到該目錄的方式。
附言。同樣,除非該目錄結構有一些非常好的理由,否則我會選擇預設的
/var/www
.