再一次,我的apache虚拟主机配置有问题。(使用默认配置,而不是我的特定配置)。
问题不是配置错误,而是如何解决它。
有没有人有好的建议来快速解决这类问题?
更多信息。
默认的conf文件如下:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</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 /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
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>
不适用的虚拟主机配置是这样的:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
发布于 2011-09-27 19:07:32
语法检查
要检查配置文件中的语法错误,请执行以下操作:
# Red Hat-based (Fedora, CentOS) and OSX
httpd -t
# Debian-based (Ubuntu)
apache2ctl -t
# MacOS
apachectl -t
列出虚拟主机
要列出所有虚拟主机及其位置,请执行以下操作:
# Red Hat-based (Fedora, CentOS) and OSX
httpd -S
# Debian-based (Ubuntu)
apache2ctl -S
# MacOS
apachectl -S
发布于 2013-08-30 05:22:35
下面是一个我认为可能会有帮助的命令:
apachectl -t -D DUMP_VHOSTS
您将获得所有vhost的列表,您将知道哪一个是默认的,并且您将确保您的语法是正确的(与yojimbo87建议的apachectl configtest相同)。
您还将知道每个vhost的声明位置。如果你的配置文件乱七八糟,它会很方便。;)
发布于 2013-06-09 19:15:10
如果您正在尝试调试您的虚拟主机配置,您可能会发现Apache -S命令行开关很有用。也就是说,键入以下命令:
httpd -S
此命令将转储Apache如何解析配置文件的描述。仔细检查IP地址和服务器名称可能有助于发现配置错误。(有关其他命令行选项,请参阅httpd程序的文档)。
https://stackoverflow.com/questions/5474477
复制相似问题