Setting Up Virtual Host On Apache Web Server

버추얼 호스트 추가방법

# 가상 호스트로 설정할 디렉토리 생성
$ sudo mkdir -p /var/www/example.com/html

# 가상 호스트의 로그파일 디렉토리 생성
$ sudo mkdir -p /var/www/example.com/log

# 가상 호스트의 디렉토리에 사용자 권한 설정
$ sudo chown -R $USER:$USER /var/www/example.com/html

# 웹 루트 경로 이하 전체 rwx 퍼미션 설정
$ sudo chmod -R 755 /var/www

# 가상 호스트 설정 파일 경로는 기본값인 /etc/httpd/conf.d 디렉터리를 사용한다.
$ sudo vim /etc/httpd/conf.d/example.com.conf

example.com.conf 파일을 다음과 같이 수정한다.

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

가상 호스트에 대한 SELinux의 권한을 조정한다.

SELinux는 Apache 기본 설정만 되어 있기 때문에 가상 호스트 추가 시 임의로 설정된 로그파일 경로에 대한 정책을 추가해 줘야한다.

설정하지 않을 경우 서비스를 시작할 때 오류가 발생하게 된다.

# Apache에 대한 SELinux 설정
$ sudo setsebool -P httpd_unified 1

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

$ sudo restorecon -R -v /var/www/example.com/log

$ sudo systemctl restart httpd