所以我已经检查了我的配置文件,我真的找不到任何标签没有正确关闭的情况……但我一直收到这个配置错误……你介意看一下下面的错误和配置文件吗?任何帮助都将不胜感激。
仅供参考,我已经在 Google 上搜索了错误的原因并仔细查看了日志,但我真的什么也没找到。
错误:
apache2:/etc/apache2/apache2.conf 第 236 行语法错误:/etc/apache2/sites-enabled/000-default 第 1 行语法错误:/etc/apache2/sites-enabled/000-default:1:未关闭。
apache2.conf第236行:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
000-default 的内容:
<VirtualHost *:80>
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
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 *:443>
SetEnvIf Request_URI "^/u" dontlog
ErrorLog /var/log/apache2/error.log
Loglevel warn
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
ProxyRequests Off
<Proxy *>
AuthUserFile /srv/ajaxterm/.htpasswd
AuthName EnterPassword
AuthType Basic
require valid-user
Order Deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8022/
ProxyPassReverse / http://localhost:8022/
</VirtualHost>
更新
我在安装时遇到了很多其他问题,所以我只能删除它并重新安装。如果我遇到同样的问题,我会重新发布。
大家好,谢谢你们的帮助/建议。
答案1
我在我的 virtualHosts 配置中遇到了同样的问题,并通过将 Windows 格式文件转换为 Unix 格式文件解决了该问题。
所有字符“\r”(CR 回车符)都需要在“\n”unix 中转换(LF 换行符)
答案2
您可以尝试grep "<Virtualhost>" -r /etc/apache2
检查所有开放虚拟主机标签
答案3
在 Windows 上,Apache bin 目录需要位于 $PATH 中,或者您需要导航到该目录。然后您可以运行:
httpd -t
通常你会看到:
Syntax Ok
如果您想特别检查您的虚拟主机:
httpd -S
它将开始提及每个端口的每个主机。
使用 httpd -t 时您是否遇到同样的错误?
您可以删除 000-default 文件并再次运行该命令吗?如果仍然出现错误,则表示您正在查看错误的文件。
顺便说一下,你的标题有点暗示,我没有看到错误中提到“VirtualHost”,标题表明我们应该寻找没有匹配“”的“”,但事实并非如此。
还
allow from
应该
Allow from
也一样
require
应该
Require
答案4
我今天在运行 apache 2.4.18 时遇到了同样的问题。问题是文件末尾缺少换行符。因此请确保在后面添加一个额外的换行符</VirtualHost>