我正在运行 Linux mint,并尝试使用 apache 设置虚拟主机。
我在 /etc/apache2/sites-available/ 中添加了以下文件(它是从该目录中的“默认”文件复制而来的)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName testsite.dev
DocumentRoot /home/chris/Projects/web/testsite
<Directory /home/chris/Projects/web/testsite>
Allow from all
AllowOverride All
Order allow,deny
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
我还在我的主机文件(/etc/hosts)中添加了一个条目,内容如下:
127.0.0.1 testsite.dev
我还启用了该网站并重新加载了 apache 服务:
a2ensite testsite
service apache2 reload
但是当我浏览到http://测试站点.dev它从 /var/www/ 而不是 /home/chris/Projects/web/testsite 提供页面。
我究竟做错了什么?
答案1
我要检查以下几件事:
- 确保您的配置中有一个“NameVirtualHost ***:80”。如果“*:80”不同,则可能会与“VirtualHost”中的值发生冲突(一般来说,如果它们相同,则问题较少)。
- 确保您没有在某个地方定义其他可能与此冲突的“VirtualHost”(我假设“sites-available”中的所有内容以及任何其他 Apache 配置文件)。
- 检查错误日志以确保没有发生任何“坏事”。启用和检查访问日志也可能有用。
- 仔细检查两个目录中的文件/内容是否符合您的预期。如果您以某种方式将它们混淆了,则可能会按预期工作。
- 停止并启动 Apache 服务。理论上重新加载应该可以工作,但以防万一(这不是我第一次看到重新加载失败但停止/启动可以工作)。
如果您完成所有这些操作但仍然无法获得想要的结果,我会创建一组最小的 Apache 配置(移出所有现有配置并创建临时配置)并开始一步一步地进行更改,以查看哪里出了问题。