그래서 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 응답을 받았습니다.
- 사이트를 활성화
a2ensite mydomain.com
하고 Apache를 다시 로드했습니다. apachectl configtest
반품Syntax OK
파일 error.log
은000-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-apache
2018년 12월 21일 현재)에서 발생했기 때문에 갑자기 로드되지 않을 때 우리에게 큰 골칫거리를 안겨주었습니다. 컨테이너 실행을 종료하지 않고 이 변경을 수행한 후 Apache를 다시 로드해야 하는 경우 /etc/init.d/apache2 reload
(다음에서 가져옴)이 답변우수한).
답변4
아파치를 비활성화 000-default
한 후 a2dissite
다시 시작하십시오.