Gae*_*anZ 130 apache debugging virtualhost
再一次,我的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>
Run Code Online (Sandbox Code Playgroud)
并且不适用的虚拟主机配置是这样的:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
sqr*_*ren 182
要检查配置文件是否存在语法错误:
# Red Hat-based (Fedora, CentOS) and OSX
httpd -t
# Debian-based (Ubuntu)
apache2ctl -t
# MacOS
apachectl -t
Run Code Online (Sandbox Code Playgroud)
列出所有虚拟主机及其位置:
# Red Hat-based (Fedora, CentOS) and OSX
httpd -S
# Debian-based (Ubuntu)
apache2ctl -S
# MacOS
apachectl -S
Run Code Online (Sandbox Code Playgroud)
小智 27
这是我认为可以提供一些帮助的命令:
apachectl -t -D DUMP_VHOSTS
Run Code Online (Sandbox Code Playgroud)
您将获得所有vhost的列表,您将知道哪一个是默认的,并且您将确保您的语法正确(与yojimbo87建议的apachectl configtest相同).
您还将知道每个vhost的声明位置.如果您的配置文件很乱,它可以很方便.;)
Mic*_*tor 23
如果您尝试调试虚拟主机配置,您可能会发现Apache -S命令行开关很有用.也就是说,键入以下命令:
httpd -S
Run Code Online (Sandbox Code Playgroud)
此命令将转储Apache解析配置文件的方式的描述.仔细检查IP地址和服务器名称可能有助于发现配置错误.(有关其他命令行选项,请参阅httpd程序的文档).
Gre*_*Rox 10
我有一个新的VirtualHost配置文件,在使用该apachectl -S
命令时没有显示.经过多次刮擦后,我意识到我的文件没有后缀".conf".一旦我用该后缀重命名了文件,我的Vhost开始显示并正常工作!
我最近在VirtualHost上遇到了一些问题。我曾经a2ensite
启用过主机,但是在运行重新启动(失败后将杀死服务器)之前,我运行了
apache2ctl -S
Run Code Online (Sandbox Code Playgroud)
这为您提供了有关虚拟主机的最新信息。这不是完美的,但有帮助。
我发现自己的错误,我没有添加日志文件名:ErrorLog /var/log/apache2
而这个路径:目录“/usr/share/doc/”没有包含网站源。
在我更改了这两个之后,一切正常。有趣的是,apache 没有发出任何错误,只是没有在我的 Mac OS Sierra 上静默打开我的网站。