我习惯使用 apache2,通常可以轻松运行它。然而这次我遇到了一个无法摆脱的问题。
在本地,我通常使用 nginx,但我需要对文件进行修改.htaccess
。所以我安装了 apache2。Apache2 和 nginx 都使用端口 80,但我暂时禁用了 nginx。
我创建了我的虚拟主机文件/etc/apache2/sites-available/
,它看起来像这样:
<VirtualHost *:80>
ServerName dev-my-site.apache
ServerAdmin [email protected]
DocumentRoot /var/www/html/my-site
</VirtualHost>
基本,但应该够用了,对吧?相应的文件中有一个符号链接/etc/apache2/sites-enabled/
指向此 conf 文件。我重新启动了 apache 并将以下条目添加到/etc/hosts
:
127.0.0.1 dev-my-site.apache
我期望从这里http://dev-my-site.apache
指向,/var/www/html/my-site/
但它没有。它指向的/var/www/html/
是 apache2 的默认文档根目录,并显示index.html
位于那里的文件。
以下是的结果apache2ctl -S
,它应该列出虚拟主机:
VirtualHost configuration:
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
似乎我的虚拟主机根本没有被考虑在内。我做错了什么?
答案1
当我找到答案时,我意识到这个问题是重复。
简而言之:nginx 不需要其配置文件使用特定的扩展,但 apache 需要。
忘记给conf文件添加扩展名*.conf
,导致该文件无法被apache识别。
感谢 Henning Kockerbeck,他为我指明了正确的方向。