我正在嘗試使用 Ubuntu 14.04 在 Apache2 中設定虛擬主機。文件的內容host1.com.conf
是:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName host1.com
ServerAlias www.host1.com
DocumentRoot /var/www/host1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
內容
/etc/hosts
:127.0.0.1 localhost 127.0.1.1 chandni-X451CA 127.0.0.1 host1.com ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
內容
/etc/apache2/sites-available/default-ssl
:<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin [email protected] DocumentRoot /var/www/host1.com/public_html <Directory /var/www/host1.com/public_html> Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>
從終端禁用
000-default.conf
和啟用:host1.com
sudo a2dissite 000-default.conf && sudo a2ensite host1.com.conf
重新啟動阿帕契:
sudo service apache2 restart
做完所有這些之後,
- 當我轉到本地主機頁面時,我得到403 禁忌錯誤。
- 當我輸入公共 IP 位址作為 URL 時,頁面未加載
- 當我導航到 host1.com 時,該頁面未載入。
可能的原因是什麼?有人可以幫忙嗎?
答案1
當您的 Web 伺服器無法存取 DocumentRoot 資料夾時,就會發生此錯誤。您必須檢查在 DocumentRoot 變數中指定的資料夾的父資料夾的權限。 www-data 必須存取父資料夾的讀取和執行權限,也必須存取 DocumentRoot 目錄下檔案的讀取權限。您可以透過將檔案和資料夾的擁有者變更為 www-data 或向所有其他人授予讀取和執行權限來解決此問題。