Da documentação do Apache para a Opção :
Note
Mixing Options with a + or - with those without is not valid syntax, and will be rejected during server startup by the syntax check with an abort.
Portanto, parece que é tudo ou nada com o +
.
Estou tentando obter um arquivo VirtualHost
que foi escrito no Apache 2.2 para funcionar no Apache 2.4 e, embora tenha feito algumas alterações nele, ele não passa o Apache configtest
. A ideia é testar localmente o site. Aqui está o arquivo original que aparentemente funciona no 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>
Estas são as mudanças que eu fiz para mudar para o 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>
Agora sei que mudei o nome do host de um nome grande para um nome pequeno. Eu mudei / editei o nome lá em /etc/hosts
também.
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian mini
Nome do host do meu sistema:
$ hostname
debian
Eu corri o configtest
para descobrir exatamente onde estou dando errado:
$ 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.
Agora a linha 6 é:
Options FollowSymLinks +Includes
então, no comentário, parece que preciso fazer:
Options +FollowSymLinks +Includes
Se eu fizer isso, ele diz / pede o mesmo para fazer na linha 10 também:
Options +Indexes +FollowSymLinks +MultiViews +Includes
Estou indo pelo caminho certo?
A partir do conselho da @ garethTheRed, revisei o seguinte:
$ 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>
e refaça o apache2 configtest
para obter isso:
$ 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
A última linha informa que o arquivo de configuração está bom agora. É apenas o nome do servidor / endereço IP que parece ser um problema. Eu já compartilhei a saída de /etc/hosts
.
Eu olhei para o erro através da pesquisa na internet e parece que existe um httpd.conf
que precisa estar em /etc/hosts
, o que é / não estava disponível. Eu criei o arquivo e tentei as duas coisas:
$ cat /etc/apache2/httpd.conf
ServerName localhost
e também:
$ cat /etc/apache2/httpd.conf
ServerName mini
Mas nenhum desses funcionou, pois estou recebendo o mesmo erro que o compartilhado acima. Alguém pode ajudar?
Da documentação do Apache para a Opção :
Note
Mixing Options with a + or - with those without is not valid syntax, and will be rejected during server startup by the syntax check with an abort.
Portanto, parece que é tudo ou nada com o +
.
Minha pergunta original foi sobre a sintaxe da minha configuração, e levei bastante tempo e esforço para encontrar:
$ sudo apache2ctl configtest
[sudo] password for shirish:
Syntax OK
Há outro problema / problema com o qual estou me debatendo, mas essa é uma pergunta que eu acho para outro dia.
Tags debian apache-httpd