Apache2
警告:DocumentRoot 不存在…但確實存在
我正在嘗試在 Ubuntu 20.04 中使用 Apache 託管 3 個站點,但是當我嘗試連接到它們時,我得到了
未找到。在此伺服器上找不到請求的 URL。
這是我的虛擬主機文件
<VirtualHost *:80> ServerName nico1.com Redirect permanent / https://nico1.com </VirtualHost> <VirtualHost *:443> ServerName nico1.com DocumentRoot /var/www/index1.html <Directory /var/www/index1.html> AllowOverride All </Directory> SSLEngine on SSLCertificateFile /etc/ssl/private/nico1.crt SSLCertificateKeyFile /etc/ssl/private/nico1.key </VirtualHost> <VirtualHost *:80> ServerName nico2.com Redirect permanent / https://nico2.com </VirtualHost> <VirtualHost *:443> ServerName nico2.com DocumentRoot /var/www/index2.html <Directory /var/www/> AllowOverride All </Directory> SSLEngine on SSLCertificateFile /etc/ssl/private/nico2.crt SSLCertificateKeyFile /etc/ssl/private/nico2.key </VirtualHost> <VirtualHost *:80> ServerName nico3.com Redirect permanent / https://nico3.com </VirtualHost> <VirtualHost *:443> ServerName nico3.com DocumentRoot /var/www/index3.html <Directory /var/www/> AllowOverride All </Directory> SSLEngine on SSLCertificateFile /etc/ssl/private/nico3.crt SSLCertificateKeyFile /etc/ssl/private/nico3.key </VirtualHost>
當我跑步時,
systemctl status apache2
我得到警告:DocumentRoot
$$ /var/www/index1.html $$不存在
警告:DocumentRoot$$ /var/www/index2.html $$不存在
警告:DocumentRoot$$ /var/www/index3.html $$不存在
這顯然是這裡的錯誤,但我不知道如何解決它。我過去已經嘗試過更改權限並使 www-data 成為文件的所有者,並且我還在 /etc/apache2/apache2.conf 的此指令中設置了 /var/www/
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
這些是目前文件的權限
-rw-r–r– 1 校友根 499 3 月 5 日 19:07 index1.html
-rw-r–r– 1 校友根 110 3 月 6 日 11:55 index2.html
-rw-r–r- - 1 校友根 110 Mar 5 19:09 index3.html
我該如何解決這個錯誤?
你這樣做是不對的。虛擬主機的
DocumentRoot
參數必須是目錄,而不是文件!創建 3 個子目錄 nico1、nico2、nico3,並在其中移動正確的索引(您可能應該將其從 index?.html 重命名為 index.html)請參閱DocumentRoot。