我在 Apache2 配置方面遇到了一些问题。我已经尝试在网上查找文档(Apache 网站、Debian 网站、serverfault 等),但没有什么帮助。
我尝试了不同的配置,但我当前的配置如下(/etc/apache2/站点可用/默认):
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mysite.dev
ServerAlias mysite.dev
DocumentRoot /var/www/mysite.dev/httpdocs/
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName livesite.com
ServerAlias www.livesite.com
DocumentRoot /var/www/livesite.com/httpdocs/
<Directory /var/www/livesite.com/httpdocs/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
mysite.dev 只是我的客户端计算机上的 hosts 文件中的一个条目,而 livesite.com 是一个实际的 DNS 记录,它将解析为与 mysite.dev 的 hosts 文件中设置的 IP 相同的 IP。
问题是,当我尝试在浏览器中输入 mysite.dev 时,它会自动转到 livesite.com。
我尝试使用不同的 /etc/apache2/sites-enabled/ 文件(/etc/apache2/sites-enabled/mysite.dev 、 /etc/apache2/sites-enabled/livesite.com ) - 当然还有实际的 sites-available 相关文件,但结果相同。我尝试查看 error.log 和 access.log,但什么也没看到。
我的httpd.conf包含:
AccessFileName .htaccess
而且我没有 /etc/apache2/conf.d/virtual.conf 文件。
任何帮助都将不胜感激 - 如果我没有提供足够的信息,请告诉我,我会尽力提供所有必要的信息。
谢谢
答案1
在您的主机文件中尝试将 mysite.dev 设置为 127.0.0.1 而不是 PC 的 IP,并确保 mysite.dev 是 apache 中定义的第一个虚拟主机,希望这能解决您的问题
答案2
这只是一个猜测,但 httpd.conf 中的 Include 语句是否类似于:Include /etc/apache/sites-enabled/*.conf
如果是这种情况,请将 /etc/apache2/sites-enabled/mysite.dev 重命名为 /etc/apache2/sites-enabled/mysite.dev.conf,看看是否有帮助。
或者,您是否在任何地方都有“NameVirtualHost *:80”语句?我更喜欢将其粘贴在基于 Debian 的 Apache 安装上的 httpd.conf 或 ports.conf 中。
答案3
尝试改变
<VirtualHost *:80>
到
<VirtualHost mysite.dev:80>
和
<VirtualHost livesite.com:80>
我认为两个*:80
虚拟主机对于网络服务器来说是一个不明确的配置。
答案4
感谢@law 和@tristan625 的回答。
我的问题是 Firefox 做了一些愚蠢的事情 - 当我尝试使用 chrome 的最新配置(全部在 httpd.conf 中)时它就可以正常工作(并且 FF 也可以正常工作,只要我重新启动它)。
这个愚蠢的问题浪费了我生命中的几个小时!