Apache2

警告:DocumentRoot 不存在…但確實存在

  • March 18, 2021

我正在嘗試在 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

引用自:https://serverfault.com/questions/1056131