我正在尝试配置一个非常基本的服务器设置,其中域从它们自己的目录提供服务。例如:
https://oblik.dev/foo.html
>/var/www/oblik.dev/foo.html
https://test.oblik.dev/foo.html
>/var/www/test.oblik.dev/foo.html
- ...
我启用了mod_vhost_alias并且我有一个 VirtualHost 在/etc/apache2/sites-available/main.conf
:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/oblik.dev/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/oblik.dev/privkey.pem
UseCanonicalName Off
VirtualDocumentRoot /var/www/$0
ServerAlias *.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这是的输出apache2ctl -S
:
VirtualHost configuration:
*:443 46.101.237.154 (/etc/apache2/sites-enabled/main.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling-refresh: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
这是输出ls -al /var/www/
:
total 16
drwxr-xr-x 4 root root 4096 Mar 18 06:19 .
drwxr-xr-x 14 root root 4096 Mar 17 06:54 ..
drwxr-xr-x 2 www-data www-data 4096 Mar 17 09:30 ikarov.oblik.dev
drwxr-xr-x 2 www-data www-data 4096 Mar 18 07:14 oblik.dev
我index.php
在两个目录中都有一个与其文件夹相同的权限。
当我打开时https://oblik.dev
,我得到一个 404。同样的事情https://ikarov.oblik.dev
。但是,如果我用VirtualDocumentRoot
常规替换DocumentRoot
,服务器会按预期工作。
我知道 Chrome 处理.dev
域的方式略有不同,因为它强制执行 SSL,但我已经通过 Let's Encrypt 设置了带有通配符域的 SSL 证书,所以这应该不是问题。
我错过了什么?