我正在尝试在 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 alumno root 499 3 月 5 日 19:07 index1.html
-rw-r--r-- 1 alumno root 110 3 月 6 日 11:55 index2.html
-rw-r--r-- 1 alumno root 110 3 月 5 日 19:09 index3.html
我该如何修复这个错误?
答案1
你做错了。DocumentRoot
虚拟主机的参数必须是目录,而不是文件!创建 3 个子目录 nico1、nico2、nico3,并将正确的索引移入其中(你可能应该将其从 index?.html 重命名为 index.html)
看文档根目录。