Apache 2.4에서 작동하도록 Apache 2.2로 작성된 파일을 얻으려고 하는데 VirtualHost
, 파일을 일부 변경했지만 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
저는 다른 문제를 해결하기 위해 노력 중입니다. 하지만 그 문제는 다른 날에 논의하고 싶습니다.