Ubuntu Apache2 无法正确对启用站点进行排序

Ubuntu Apache2 无法正确对启用站点进行排序

我在 Ubuntu 上有一个 apache2 配置。一切都运行良好,直到我尝试将所有规范重定向虚拟主机移动到一个文件中,而不是将它们分散在许多其他配置文件中。

我安排了配置文件名,以便可以严格控制首先加载哪个站点,从而控制哪个站点是 Apache 的默认站点。这是 /etc/apache2/sites-enabled 中的前两个文件,按 ls 默认的词汇顺序排序:

elyograg@smeagol:/etc/apache2$ sudo ls -al sites-enabled
total 12
drwxr-xr-x 2 root root 4096 Oct  6 16:13 .
drwxr-xr-x 9 root root 4096 Oct  6 16:12 ..
lrwxrwxrwx 1 root root   51 Jul 22  2017 000000-unknown.REDACTED.org.conf -> ../sites-available/000000-unknown.REDACTED.org.conf
lrwxrwxrwx 1 root root   47 Oct  6 16:13 0000-canonical-redirect.conf -> ../sites-available/0000-canonical-redirect.conf

今天我添加了 0000-canonical-redirect.conf 文件,我希望它成为 Apache 加载的第二个站点配置文件。以前它会加载 000000 文件作为默认站点,但自从我添加了新文件后,Apache 就选择了该文件,而不是我预期的 000000 文件。

我将下载并查看源代码,但我希望也许人们以前遇到过这个问题并确切知道这是一个错误。

elyograg@smeagol:~$ dpkg -l | grep apache2
ii  apache2                                    2.4.52-1ubuntu4.1                            amd64        Apache HTTP Server
ii  apache2-bin                                2.4.52-1ubuntu4.1                            amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                               2.4.52-1ubuntu4.1                            all          Apache HTTP Server (common files)
ii  apache2-utils                              2.4.52-1ubuntu4.1                            amd64        Apache HTTP Server (utility programs for web servers)
ii  libapache2-mod-dnssd                       0.6-3.2                                      amd64        Zeroconf support for Apache 2 via avahi
ii  libapache2-mod-passenger                   6.0.10-3build2                               amd64        web application server - apache2 integration
ii  libapache2-mod-wsgi-py3                    4.9.0-1ubuntu0.1                             amd64        Python 3 WSGI adapter module for Apache

编辑:我尝试了希望的更明确的命名,但它仍然首先加载重定向文件。

elyograg@smeagol:/etc/apache2$ ls -al sites-enabled/
total 12
drwxr-xr-x 2 root root 4096 Oct  6 16:41 .
drwxr-xr-x 9 root root 4096 Oct  6 16:12 ..
lrwxrwxrwx 1 root root   50 Oct  6 16:25 _0000-unknown.REDACTED.org.conf -> ../sites-available/_0000-unknown.REDACTED.org.conf
lrwxrwxrwx 1 root root   46 Oct  6 16:41 111-canonical-redirect.conf -> ../sites-available/111-canonical-redirect.conf

答案1

在 IRC 上的 #httpd 中,我被引导到问题所在。毫不奇怪,这是用户错误。Apache 以 LANG=C 运行,而我的 shell 以 LANG=en_US.UTF-8 运行... 并且 ls 显示了我想要的顺序。Apache 完全按照 LANG=C 的指示对文件进行排序,而我的命名方案并不正确,无法得到我想要的结果。

答案2

如果您想添加符号链接,您必须定义源文件的完整路径。

我看到你只使用../sites-available/some-file.conf

请尝试像这样定义源文件的完整位置:

ln -s /etc/apache2/sites-available/some-apache.conf /etc/apache2/sites-enabled/some-apache.conf

然后重新加载/重新启动服务:

service apache2 restart

or

systemctl restart apache2

相关内容