답변:
아파치 2.4의 구성 파일 구문이 변경되었습니다.
출처 : 이것은 13.10으로 업그레이드 한 후에도 나에게 일어났습니다.
포함 된 모든 파일 /etc/apache2/conf.d
은로 이동해야합니다 /etc/apache2/conf-available
.
그들은 이제 같은 방식 sites
으로 mods
작동합니다. conf 파일을 conf-available
폴더 에 넣고 원하는 파일을 활성화하십시오 a2enconf <config-file-name>
.
conf.d/httpd.conf
ServerName 지시문 이있는 파일 이 있습니다.
이 작업을 수행하려면 conf-available
디렉토리 로 이동 하여 수동으로 활성화해야했습니다.
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
이전에는 파일의 /etc/apache2/sites-available
확장자가 없었습니다. 예를 들면 /etc/apache2/sites-available/default
. 이제 .conf
확장이 필요합니다.
당신이 있다면 /etc/apache2/sites-available/some-site
, 13.04에서 그냥 사용하여 활성화 할 수 있습니다 sudo a2ensite some-site
. 이제 그것은 당신에게 오류를 줄 것입니다
오류 : 일부 사이트가 존재하지 않습니다!
이 문제를 해결하려면의 .conf
모든 구성 파일에를 추가 하십시오 sites-available
. 에서 동일한 작업을 수행 sites-enabled
하거나 모든 파일을 삭제하고 각 파일을 수동으로 다시 활성화 할 수 있습니다.
각 VHost를 수정해야 할 수도 있으므로 수동으로 수행하는 것이 좋습니다 (다음 단계).
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
수동으로 결정한 경우 :
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
다음과 같은 경우 :
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
다음과 같아야합니다.
<Directory /path/to/your/site/>
Require all granted
</Directory>
자세한 내용 은 DaveRandom 의 의견 에서 스택 오버플로 에 대한 답변 을 확인하십시오 .
간단히 말해, apache2.4로 업그레이드하고 이전 버전 httpd.conf
의 apache2.2를 유지 한 경우 지시문이 제대로 작동하도록 허용하십시오. httpd.conf
(내가 제안하는) 업그레이드 한 경우 Order
/ Allow
/ Deny
지시문을 동등한 것으로 변경할 때까지 403 오류가 발생 합니다 Require
.
당신이 디렉토리 옵션, 노트를 가지고 있다면 그들은 모두가 함께 앞에 추가 할 필요가 있음을 +
하거나 -
또는 그들 중 누구도 전혀. 둘의 혼합은 허용되지 않습니다 :
이것은 허용됩니다 :
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
이것도 마찬가지입니다 (이 예제들은 모두 같은 일을하지 않으며, 이전 예제는 MultiViews
옵션을 비활성화하고 다음 예제는 그렇지 않습니다) :
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
더 이상 허용되지 않습니다 :
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
마지막 구성 옵션은 다음과 같은 구문 오류를 발생시킵니다.
모든 옵션은 + 또는-로 시작하거나 옵션이 없을 수 있습니다.
모든 것이 완료되면 변경 사항을 적용하려면 아파치 서버를 다시 시작해야합니다.
sudo apache2ctl restart
httpd.conf
단지 예일 뿐입니다. conf.d
디렉토리에 구성 파일이 없을 수도 있습니다 .이 경우 해당 단계를 건너 뛰십시오. 에 관해서는 apache2.conf
, 그것은으로 이동해서는 안 conf-available
디렉토리. 아파치의 기본 구성 파일이며 경로는 /etc/apache2/apache2.conf 여야하며 변경해서는 안됩니다.
비슷한 문제가 발생했습니다.
'Allow from All'을 사용하지 않으면 아파치 2.4를 실행할 수 없었습니다. 버전 2.4보다 깔끔한 휴식을 제공하기를 원했기 때문에 성가신 일이었습니다. 많은 시행 착오와 많은 검색 후 나는 access_compat에 대한 참조를 발견하고 이것이 호환성을 위해 존재한다는 것을 깨달았습니다. 아파치 문서에는 둘 다 사용할 수 있다고 나와 있지만 사용하지 말 것을 권장합니다.
/ etc / sysconfig / apache2로드 파일에서이 모듈을 제거하여 문제를 즉시 해결했습니다.
Liam 감사합니다
httpd.conf
파일이나conf.d
디렉토리 가 없습니다 . 그러나apache2.conf
파일이 있습니다.conf-available
디렉토리 로 이동을 시도했는데 apache2를 다시 시작할 때 다음 오류가 발생했습니다. apache2 : 구성 파일 /etc/apache2/apache2.conf를 열 수 없습니다 : 해당 파일 또는 디렉토리 가 없습니다. 이유는 무엇입니까?