我试图让一个VirtualHost
用 Apache 2.2 编写的文件在 Apache 2.4 中工作,虽然我对它做了一些更改,但它没有通过 Apache configtest
。这个想法是在本地测试该网站。这是显然可以在 Apache 2.2 中运行的原始文件:
<VirtualHost local.in2014.mini.debconf.org:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/in2014.mini/website/
<Directory />
Options +FollowSymLinks +Includes
AllowOverride None
</Directory>
<Directory /var/www/in2014.mini/website/>
Options +Indexes +FollowSymLinks +MultiViews +Includes
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
以下是我为更改为 Apache 2.4 所做的更改:
$ cat /etc/apache2/sites-enabled/minidebconfindia.conf
<VirtualHost mini:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/in2014.mini/website
<Directory />
Options FollowSymLinks +Includes
Require all granted
</Directory>
<Directory /var/www/html/in2014.mini/website/>
Options Indexes FollowSymLinks MultiViews +Includes
Require all granted
</Directory>
</VirtualHost>
现在我知道我将主机名从大名称更改为小名称。我/etc/hosts
也更改/编辑了其中的名称。
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian mini
我的系统的主机名:
$ hostname
debian
我跑了一遍configtest
来找出我到底错在哪里:
$ sudo apachectl configtest
AH00526: Syntax error on line 6 of /etc/apache2/sites-enabled/minidebconfindia.conf:
Either all Options must start with + or -, or no Option may.
Action 'configtest' failed.
The Apache error log may have more information.
现在第 6 行是:
Options FollowSymLinks +Includes
所以从评论看来我需要这样做:
Options +FollowSymLinks +Includes
如果我这样做,那么它也会在第 10 行告诉/要求做同样的事情:
Options +Indexes +FollowSymLinks +MultiViews +Includes
我走的路对吗?
更新#1
根据@garethTheRed的建议,我将其修改为以下内容:
$ cat minidebconfindia.conf
<VirtualHost mini:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/in2014.mini/website
<Directory />
Options +FollowSymLinks +Includes
Require all granted
</Directory>
<Directory /var/www/html/in2014.mini/website/>
Options +Indexes +FollowSymLinks +MultiViews +Includes
Require all granted
</Directory>
</VirtualHost>
并重apache2 configtest
做得到这个:
$ sudo apachectl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
最后一行告诉我们配置文件现在已经好了。这似乎只是服务器名称/IP 地址有问题。我已经分享了 的输出/etc/hosts
。
我通过在互联网上搜索查看了该错误,似乎有一个httpd.conf
需要位于/etc/hosts
其中/不可用的位置。我创建了该文件并尝试了两件事:
$ cat /etc/apache2/httpd.conf
ServerName localhost
也:
$ cat /etc/apache2/httpd.conf
ServerName mini
但这些都不起作用,因为我遇到了与上面共享的相同的错误。有人可以帮忙吗?
答案1
答案2
我最初的问题本身是关于我的配置的语法,我花了相当多的时间和精力才找到:
$ sudo apache2ctl configtest
[sudo] password for shirish:
Syntax OK
我正在解决另一个问题,但我想改天再讨论这个问题。