apache2.4로 업그레이드 한 후 403 오류


34

Ubuntu 13.04 서버에서 업그레이드 한 후 www 페이지가 표시되지 않습니다.

403 오류 금지이 서버에 액세스 할 수있는 권한이 없습니다.

액세스 제어 저장을 apache2.2에서 apache2.4로 변경했지만 작동하지 않았습니다. 다른 무엇을 할 수 있습니까?

답변:


59

아파치 2.4의 구성 파일 구문이 변경되었습니다.

출처 : 이것은 13.10으로 업그레이드 한 후에도 나에게 일어났습니다.

conf.d 파일

포함 된 모든 파일 /etc/apache2/conf.d은로 이동해야합니다 /etc/apache2/conf-available.

그들은 이제 같은 방식 sites으로 mods작동합니다. conf 파일을 conf-available폴더 에 넣고 원하는 파일을 활성화하십시오 a2enconf <config-file-name>.

예:

conf.d/httpd.confServerName 지시문 이있는 파일 이 있습니다.
이 작업을 수행하려면 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

공식 문서에서 2.2에서 2.4 로의 자세한 업그레이드 안내서 를 찾을 수 있습니다 .


1
내 시스템에는 httpd.conf파일이나 conf.d디렉토리 가 없습니다 . 그러나 apache2.conf파일이 있습니다. conf-available디렉토리 로 이동을 시도했는데 apache2를 다시 시작할 때 다음 오류가 발생했습니다. apache2 : 구성 파일 /etc/apache2/apache2.conf를 열 수 없습니다 : 해당 파일 또는 디렉토리 가 없습니다. 이유는 무엇입니까?
Amal Murali

@AmalMurali 이것은 httpd.conf단지 예일 뿐입니다. conf.d디렉토리에 구성 파일이 없을 수도 있습니다 .이 경우 해당 단계를 건너 뛰십시오. 에 관해서는 apache2.conf, 그것은으로 이동해서는 안 conf-available디렉토리. 아파치의 기본 구성 파일이며 경로는 /etc/apache2/apache2.conf 여야하며 변경해서는 안됩니다.
Dan

1
와우. 이것은 사실상 어디에서나 찾을 수있는 유일한 개요입니다. 감사.
Russ Bateman

어떤이없는 config.d또는 sites available폴더. 여기에 모든 설정 파일을 참조하십시오 imgur.com/WczXp3v
diEcho에게

1
@EdwardBlack 다음 질문에 대한 답변에서 설명한대로 여전히 기본 가상 호스트를 사용하는 경우 다른 이유가있을 수 있습니다. Apache
Dan

0

웹 사이트가 Ubuntu 서버에서 실행되고 있다고 가정합니다.

httpd.conf를 확인하여 DocumentRoot 설정이 올바른 위치를 가리키고 있는지 확인하십시오.

웹 서버가 실행되는 사용자가 DocumentRoot가 참조하는 폴더의 파일 권한을 읽을 수 있는지 확인하십시오.

적절한 index.html / index.htm 등이 있고 웹 서버가 디렉토리 목록을 작성하지 않는지 확인하십시오.


0

비슷한 문제가 발생했습니다.

'Allow from All'을 사용하지 않으면 아파치 2.4를 실행할 수 없었습니다. 버전 2.4보다 깔끔한 휴식을 제공하기를 원했기 때문에 성가신 일이었습니다. 많은 시행 착오와 많은 검색 후 나는 access_compat에 대한 참조를 발견하고 이것이 호환성을 위해 존재한다는 것을 깨달았습니다. 아파치 문서에는 둘 다 사용할 수 있다고 나와 있지만 사용하지 말 것을 권장합니다.

/ etc / sysconfig / apache2로드 파일에서이 모듈을 제거하여 문제를 즉시 해결했습니다.

Liam 감사합니다


-1

비표준 디렉토리에서 파일을 제공하므로 업그레이드 작업을 수행하려면 /etc/apache2/apache2.conf를 편집하고 추가해야합니다. 옵션 색인 FollowSymLinks AllowOverride 없음 모든 권한 부여 필요

이 후 위의 권장 변경 사항으로 인해 403 오류가 사라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.