Apache2는 site-enabled/*.conf를 읽지 않습니다.

Apache2는 site-enabled/*.conf를 읽지 않습니다.

그래서 Ubuntu 14.04에서 Apache를 사용하여 웹사이트를 설정해 보았습니다.

mydomain.com.conf파일을 만들었습니다 sites-available/. 그것은 다음과 같습니다;

mydomain.com.conf

<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    ServerAdmin [email protected]

    DocumentRoot /var/www/mydomain.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/mydomain.com/error.log
    CustomLog ${APACHE_LOG_DIR}/mydomain.com/access.log combined
</VirtualHost>

000-default.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    #DocumentRoot /var/www

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

어떤 이유로 아파치는 mydomain.com.conf전혀 읽지 못하는 것 같습니다. 기본값은 항상 000-default.conf.

내 웹 사이트에 액세스할 때 403 Forbidden 응답을 받았습니다.

  1. 사이트를 활성화 a2ensite mydomain.com하고 Apache를 다시 로드했습니다.
  2. apachectl configtest반품Syntax OK

파일 error.log000-default.conf설명하다

[Wed Sep 03 11:01:48.717652 2014] [autoindex:error] [pid 5869] [client 2.71.93.10:55718] AH01276: Cannot serve directory /var/www/: No matching DirectoryIndex (index.php,index.html,index.cgi,index.pl,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive

그리고 오류 로그와 액세스 로그가 mydomain.com비어 있습니다.

나는 apache2.conf하나를 만들었습니다 IncludeOptional sites-enabled/*.conf.

의 보안 모델은 apache2.conf다음과 같습니다.

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /var/www/>
        DirectoryIndex index.php, index.html
        AllowOverride None
        Require all granted
</Directory>

뭐가 문제 야?

답변1

귀하의 웹사이트는 파일이 없거나 그가 언급한 파일이 하나도 없는 비어 있습니다 Directory Index.

또 다른 가능성은 권한입니다. 귀하의 사이트에 있는 파일이나 디렉토리에 대한 액세스 권한이 없을 수도 있습니다 apache's user.

답변2

또한 다음 문구가 포함된 Apache2 로그 메시지도 있습니다.

Cannot serve directory /var/www/

/var/www내 구성 어디에도 언급되지 않았기 때문에 이것은 이상합니다 .

그러나 완전히 별개의 경고 메시지라고 생각되는 작업을 수행했을 때 메시지가 중단되었습니다.

Warning: DocumentRoot [/www/www.foo.bar/docs] does not exist

DocumentRoot 디렉토리가 완전히 사용할 준비가 되지 않은 경우 /var/www기본값이 (자동으로) 사용되어 혼란을 야기하는 것으로 추측됩니다.

답변3

내가 apache2.conf하나 만들었어IncludeOptional sites-enabled/*.conf

제 경우에는 이것을 변경하면 Include sites-enabled/*.conf문제가 해결되었습니다.


이 솔루션에 대한 몇 가지 맥락:
이는 가상 호스트 파일이 이전에 아무런 수정 없이 로드되었던 docker 빌드( FROM php:7.2-apache2018년 12월 21일 현재)에서 발생했기 때문에 갑자기 로드되지 않을 때 우리에게 큰 골칫거리를 안겨주었습니다. 컨테이너 실행을 종료하지 않고 이 변경을 수행한 후 Apache를 다시 로드해야 하는 경우 /etc/init.d/apache2 reload(다음에서 가져옴)이 답변우수한).

답변4

아파치를 비활성화 000-default한 후 a2dissite다시 시작하십시오.

관련 정보