오래전부터 사용하고 있는 서버를 업데이트 하지 않았다면 모를까, 새로 구축하는 웹서버에 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의 주석을 해제하고 웹서버를 재시작 해야한다.
'Linux > Web Server' 카테고리의 다른 글
[CentOS8] httpd[proxy_fcgi:error] [pid 31nn:tid 14nn] ~ AH01071: Got error 'Primary script unknown' (0) | 2020.12.13 |
---|---|
apache[httpd] 웹서버의 기본포트[80] 변경하기 (0) | 2020.07.27 |
apache - HTTP 403 / 404 ERROR 설정 (0) | 2020.05.29 |
apache의 (internal dummy connection) 로그 (0) | 2020.02.23 |
URL이 아닌 ip주소로 사이트가 열리는 것을 막고 싶다면... (5) | 2020.02.16 |
댓글