Ubuntu 14.04를 사용하여 Apache2에서 가상 호스트를 설정하려고 합니다. 파일 내용은 host1.com.conf
다음과 같습니다.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName host1.com
ServerAlias www.host1.com
DocumentRoot /var/www/host1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
내용
/etc/hosts
:127.0.0.1 localhost 127.0.1.1 chandni-X451CA 127.0.0.1 host1.com ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
내용
/etc/apache2/sites-available/default-ssl
:<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin [email protected] DocumentRoot /var/www/host1.com/public_html <Directory /var/www/host1.com/public_html> Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule>
터미널에서 비활성화
000-default.conf
및 활성화 :host1.com
sudo a2dissite 000-default.conf && sudo a2ensite host1.com.conf
아파치를 다시 시작했습니다:
sudo service apache2 restart
이 모든 작업을 수행한 후,
- localhost 페이지에 가면403 금지오류.
- 공용 IP 주소를 URL로 입력하면 페이지가 로드되지 않습니다.
- Host1.com으로 이동하면 페이지가 로드되지 않습니다.
가능한 이유는 무엇입니까? 누구든지 도와주실 수 있나요??
답변1
이 오류는 웹 서버가 DocumentRoot 폴더에 액세스할 수 없을 때 발생합니다. DocumentRoot 변수에 지정한 폴더의 상위 폴더에 대한 권한을 확인해야 합니다. www-data는 상위 폴더에 대한 읽기 및 실행에 액세스해야 하며 DocumentRoot 디렉터리 아래의 파일에 대한 읽기에도 액세스해야 합니다. 파일 및 폴더의 소유자를 www-data로 변경하거나 다른 모든 사용자에게 읽기 및 실행 액세스 권한을 부여하여 이 문제를 해결할 수 있습니다.