Apache2 配置错误:“未关闭”错误

Apache2 配置错误:“未关闭”错误

所以我已经检查了我的配置文件,我真的找不到任何标签没有正确关闭的情况……但我一直收到这个配置错误……你介意看一下下面的错误和配置文件吗?任何帮助都将不胜感激。

仅供参考,我已经在 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>

相关内容