본문 바로가기
Linux/Web Server

[CentOS 7.x] 구버전 apache(httpd-2.2.34) 설치 및 가상호스트 설정

by aegypius 2020. 4. 23.
728x90
반응형

  오래전부터 사용하고 있는 서버를 업데이트 하지 않았다면 모를까, 새로 구축하는 웹서버에 apache 2.2.x를 사용할 이유는 찾기 힘들거라고 생각한다. 하지만 나에게 2.2버전을 사용해야 할 일이 생겼다. 테스트 해보고 결과가 좋다면 이 오래된 버전을 사용해야한다. 나중을 위해서 대략적인 메모를 남겨야겠다.

  설치os : CentOS-7-x86_64-Minimal-1908.iso
  apache : httpd-2.2.34.tar.gz

  아파치 파일의 압축을 풀고 컴파일 해주자. 컴파일 옵션은 아래와 같다.

# ./configure --prefix=/usr/local/httpd --enable-shared=max --enable-module=all
# make && make install

  어차피 테스트가 목적이긴 하지만 구동파일(/usr/local/httpd/apachectl)을 /etc/init.d에 복사해도 되고, 설치된 디렉토리에서 그냥 실행시켜도 무방하다. 서비스에 등록해도....-_-; 실행은 그냥 아래와 같이 하자.

# /usr/local/httpd/bin/apachectl -k start (시작)
# /usr/local/httpd/bin/apachectl restart (재시작)
종료는 stop

  가상머신에 설치했기 때문에 간단하게 웹브라우저에서 내부 ip주소로 접근해보자. It' Works이 보이면 성공이다. 혹시 페이지를 열 수 없다는 오류가 발생한다면 selinux와 방화벽을 살펴봐야 할 것이다. selinux는 잠시 꺼두고, 웹서버를 위해서 port 80을 열어두자. 이제 가상호스트(Virtual Host)를 테스트 해 볼 차례이다.

  apache를 설치한 메인디렉토리(여기서는 컴파일시 configura에서 설정한 디렉토리인 /usr/local/httpd)의 아래에 conf디렉토리가 있다. (2.4.x 버전대에서 yum으로 기본설치를 하면 /etc/httpd의 하위) 먼저 이곳에 위치한 httpd.conf를 열어보자. 대략 380번째 줄 이후에 Include conf/extra/httpd-vhosts.conf를 찾아서 주석을 해제하자. 2.4.x에서는 userdir.conf를 편집해서 각 계정별로 웹페이지의 루트디렉토리를 미리 설정해야 사용할 수 있었는데 2.2에서는 굳이 수정하지 않아도 계정별 각자의 홈디렉토리를 사용할 수 있는 거 같다. 그래도 혹시 모르니까 httpd-userdir.conf의 주석도 풀었다. 추가로 manual.conf와 info.conf, default.conf 등도 함께 주석을 해제했다. 각각의 파일을 열어보면 2.4.x에서는 httpd.conf에 통합되어 있는 설정들이 이전버전에서는 모두 나뉘어서 여러개의 파일에 별도로 저장되어 있었음을 알 수 있다.

  이제 하위 디렉토리에 위치한 extra 디렉토리로 이동하여 httpd-vhosts.conf를 열어보자. 서버에 테스트용으로 만든 계정에 vhost를 적용하기 위해서 아래와 같은 내용을 추가했다.

<VirtualHost *:80>
    ServerName 192.168.64.131
    DocumentRoot "/home/pius/pius"
    ErrorLog logs/dummy-host2.example.com-error_log
    CustomLog logs/dummy-host2.example.com-access_log combined
</VirtualHost>

<Directory "/home/pius/pius">
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

  그리고 /home/pius/pius/에 index.html파일을 하나 만들고 아무 문자나 넣어보자. 웹브라우저에서 내부아이피로 접속하면 페이지가 열릴것이다. 재미있는 것이 크롬(chrome)이나 IE에서는 잘 열리는데 윈도우10의 엣지(Edge)에서는 "페이지에 연결할 수 없음" 오류가 발생한다. 이건 궁금하지 않으니까 패스~하자.

  참고로 위의 가상호스트 설정에서 디렉토리의 권한설정에 대한 마지막 5줄을 생략하면 아래와 같은 오류가 발생한다.


  사이트별로 가상호스트를 설정할 때마다 해당디렉토리의 권한을 일일이 지정해야 한다면 조금 번거로울 수 도 있을 것이다. 해결방법은 2.4.x 버전대와 동일하다. 2.4에서 userdir.conf 였다면 2.2에서는 httpd-userdir.conf이다. 이 파일을 열어서 아래와 같이 계정별로 권한을 주자.

  16번째 줄부터 27번째 줄을 복사해서 뒤에 붙여넣고 디렉토리만 변경해 주었다. 이제부터 /home/pius에 가상호스트를 위한 디렉토리를 설정할 때에 별도로 디렉토리 권한을 신경쓰지 않아도 된다. 당연히 httpd.conf에서 httpd-userdir.conf의 주석을 해제하고 웹서버를 재시작 해야한다. 

728x90
반응형

댓글