Yebali

CentOS7에 Apache 설치하기 본문

Apache

CentOS7에 Apache 설치하기

예발이 2021. 9. 20. 21:25

Apache란?

Apache는 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이며,

흔히 말하는 LAMP(Linux, Apache, Mysql, Php)의 구성요소 이기도 하다.
주로 WAS(Web Application Server)의 부담을 줄이기 위해 정적 요소(js, css 파일 등)를 처리하거나 로드 밸런싱을 위해 사용한다.

그렇기 때문에 서버를 구성하다 보면 Apache나 Nginx 같은 WS(Web Server)를 거의 필수로 설치하게 된다.

 

Apache의 설치 방법을 알아보자.

 

yum을 이용한 설치

설치 방법

가장 간단한 설치 방법이다. 

sudo yum install httpd

 

명령어를 입력하면 위와 같은 화면이 나오며, y를 입력하면 설치가 진행된다.

yum으로 설치하면 보통은 최신 버전이 설치된다.

특정 버전을 설치하려면 해당 repo를 yum에 등록해야 하는 번거로움이 있지만 설치에 필요한 apr, apr-util 등이 자동으로 설치되어 편하다.

 

설치 경로는 아래와 같다.

 

Apache 시작하기

yum을 이용해 설치하면 service에 자동으로 등록되기 때문에 'systemctl'을 사용해 Apache 서버를 시작할 수 있다.

sudo systemctl start httpd

 

/etc/httpd/conf/httpd.conf (혹은 설치 경로에 있는 httpd.conf파일)에서 port를 별도로 지정해주지 않으면 80 포트에서 apache가 시작된다.

 

 

Port 열어주기

만약 Apache가 성공적으로 시작했지만 접속할 수 없다면 해당 port가 닫혀있어 접속하지 못할 가능성이 크다.

이런 경우 해당 포트를 열어주어야 한다.

//CentOS 7.0 이상
sudo firewall-cmd --zone=public --permanent --add-port=80/tcp //80 포트 개방
sudo firewall-cmd --reload // 방화벽 리로드
sudo firewall-cmd --zone=public --list-all //열린 포트 확인

//firewall-cmd 없을 시 설치
yum install firewalld

 

 

위 과정이 성공적으로 진행되었다면 해당 서버로 접속 시 아래와 같은 화면을 볼 수 있다.

 

컴파일 설치

yum을 이용한 설치는 쉽지만 설치 경로를 지정할 수 없고 특정 버전을 설치하기 조금 번거롭다.

설치 경로와 버전을 지정하기 쉬운 컴파일 설치를 알아보자.

 

설치 파일 다운로드

https://httpd.apache.org/download.cgi 에 접속해서 설치할 Apache파일(. tar.gz)을 다운로드한다. 
혹은 아래 wget을 사용하면 된다.

wget https://downloads.apache.org/httpd/httpd-2.4.46.tar.gz

 

압축 풀기

tar -xvf httpd-2.4.46.tar.gz

 

종속성 설치

yum은 관련 종속성들을 자동으로 설치해주지만 컴파일 설치의 경우 관련 종속성을 일일이 설치해 주어야 한다.
참고) Apache는 2.4부터 apr, apr-util이 빠졌다.

sudo yum install -y wget
sudo yum install -y net-tools
sudo yum install -y gcc
sudo yum install -y gcc-c++
sudo yum install -y make

// apr
wget https://downloads.apache.org//apr/apr-1.7.0.tar.gz
tar -xvf apr-1.7.0.tar.gz

// apr-util
wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.gz
tar -xvf apr-util-1.6.1.tar.gz

// 압축 해제한 파일들을 apache소스의 srclib안으로 넣어준다.
mv apr-1.7.0 httpd-2.4.46/srclib/apr
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util

// pcre 설치
wget https://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz
tar -xvf pcre-8.36.tar.gz
cd pcre-8.36
./configure --prefix=/usr/local
make
sudo make install

 

Apache Configuration

관련 종속성 설치를 마쳤다면 Apache설치 설정을 해주어야 한다.

./configure \
--prefix=/usr/local/apache \
--enable-so \
--with-included-apr \
--enable-ssl=shared \
--enable-rewrite \
--enable-modules=most \
--enable-mods-shared=all
  • --prifix : Apache를 설치할 경로

아래와 같은 Error가 생길 수 있다.

checking for OpenSSL version >= 0.9.8a... FAILED
-> sudo yum install openssl-devel

설치

설정을 마쳤다면 아래 명령어로 Apache를 설치할 수 있다.

make -j 8 (스레드 8개를 사용해서 컴파일, pc사양에 따라 자유롭게 조절)
make install


아래와 같은 Error가 생길 수 있다.

xml/apr_xml.c:35:19: fatal error: expat.h: 그런 파일이나 디렉터리가 없습니다
-> sudo yum install expat-devel

 

undefined reference to `XML_GetErrorCode'
-> vi build/config_vars.mk
AP_LIBS로 시작하는 라인을 찾아서 -lexpat을 추가 후 make.

 

Apache 시작하기

cd /usr/local/apache/bin (Apache 설치한 경로)
sudo ./httpd -f /usr/local/apache/conf/httpd.conf -k start

 

Service 등록하기

컴파일로 설치할 경우 yum과 다르게 service에 등록되지 않는다.
따라서 yum으로 설치했을 때처럼 편하게 Apache를 관리하고 싶다면 아래의 과정을 하면 된다.

sudo cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
sudo vi /etc/init.d/httpd

/*
#!/bin/sh
밑에 행에
# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache/bin/apachectl
# config: /usr/local/apache/conf/httpd.conf
# pidfile: /usr/local/apache/logs/httpd.pid
를 추가한다.
/usr/local/apache는 아파치 설치 경로이다.
*/

sudo chkconfig --add httpd

 

이후 sudo systemctl start httpd로 yum으로 설치했을 때와 동일하게 Apache를 관리할 수 있다.

 

'Apache' 카테고리의 다른 글

SSL인증서 파일로 Keystore파일 만들기  (0) 2021.09.21