CentOS 8 Apache 설치
이 포스트는 CentOS Stream 8을 기준으로 작성되었습니다.
필수 패키지 설치
컴파일에 필요한 필수 패키지를 먼저 설치합니다.
sudo yum install gcc make openssl-level pcre-devel expat-devel
다운로드
Apache 공식 홈페이지에서 httpd 소스를 다운로드합니다.
(https://httpd.apache.org/download.cgi)
추가적으로 컴파일할때 필요한 apr, apr-util 소스도 같이 다운로드합니다.
(https://apr.apache.org/download.cgi)
압축해제
다운로드한 소스 파일을 압축해제하고, apr, apr-util은 srclib 폴더 아래로 이동합니다.
$ tar -xvf httpd-2.4.53.tar.gz
$ tar -xvf apr-1.7.0.tar.gz
$ tar -xvf apr-util-1.6.1.tar.gz
$ mv apr-1.7.0 httpd-2.4.53/srclib/apr
$ mv apr-util-1.6.1 httpd-2.4.53/srclib/apr-util
컴파일 및 설치
소스 폴더로 이동하고, 아파치 초기 설정을 구성합니다.
$ cd httpd-2.4.53
$ ./configure --prefix=/opt/apache-2.4.53 --with-included-apr --enable-mods-shared=most --enable-rewrite --enable-ssl
- 옵션 설명
--prefix
: 컴파일된 Apache Server가 설치될 경로--with-included-apr
: srclib 폴더로 이동한 apr, apr-util 사용--enable-mods-shared=most
: 대부분의 Apache 모듈을 사용가능한 형태로 컴파일--enable-rewrite
: rewrite 모듈 활성화--enable-ssl
: ssl 모듈 활성화
구성이 마무리되면, 컴파일을 진행합니다.
$ make
정상적으로 컴파일되면 설치를 진행합니다. 설치된 Apache Server는 --prefix
로 지정한 경로에서 확인할 수 있습니다.
$ sudo make install
$ ls /opt/apache-2.4.53
추가 설정
1) 사용자 계정으로 Appache 실행가능하도록 설정
root 계정이 아닌 일반 사용자 계정으로 Apache Server를 실행할 수 있도록 권한을 설정합니다.
여기서는 web 계정으로 진행하겠습니다.
$ sudo chown -R web:web /opt/apache-2.4.53 # apache 폴더 소유자를 web 계정으로 변경
$ sudo chown root:root /opt/apache-2.4.53/bin/httpd # httpd 파일만 root 계정으로 변경
$ sudo chmod u+s /opt/apache-2.4.53/bin/httpd # httpd 파일에 특수 실행권한 지정
2) 서비스 등록
서비스로 등록하여, 재시작 후에도 자동으로 실행될 수 있도록 설정합니다.
/usr/lib/systemd/system
폴더로 이동하여 apache.service
파일을 생성하고, 아래 내용을 붙여넣습니다.
[Unit]
Description=The Apache HTTP Server
After=syslog.target
After=network.target
[Service]
Type=forking
User=web
Group=web
ExecStart=/opt/apache-2.4.53/bin/apachectl start
ExecStop=/opt/apache-2.4.53/bin/apachectl graceful-stop
ExecReload=/opt/apache-2.4.53/bin/apachectl graceful
PrivateTmp=true
[Install]
WantedBy=multi-user.target
파일을 저장하고 아래 명령어를 입력하여, Apache 서비스를 등록합니다.
$ sudo systemctl status apache # apache 서비스 상태 확인
$ sudo systemctl enable apache # 서비스로 등록
Created symlink /etc/systemd/system/multi-user.target.wants/apache.service → /usr/lib/systemd/system/apache.service.