아파치 웹서버 설치(2.4.58 tar.gz 파일)

2023. 12. 5. 14:45개인노트

반응형

아파치 웹서버 설치 시작

  • 아파치 웹서버 설치시 주의사항 및 설치 시나리오아파치
    • 웹서버 최신버전 httpd-2.4.58.tar.gz을 사용해서 설치한다.
    • 톰캣과 연결시켜주는 jboss모듈의 경우(mod_jk) 기본적으로 포함되어 있다.(해당버전기준.)
    • (아파치 2.4 이상부터 apr-1.7.4.tar.gz, apr-util-1.6.3.tar.gz, pcre-8.45.tar.gz 3개를 필수로 같이 설치해야한다.)
    • 아파치 웹서버의 경우 tar.gz로 설치를 수행하는데 몇가지 주의사항이 있다.

완전 초기설치시에는 아파치가 소스를 컴파일 할수 있도록 별도로 gcc가 필요하다고 한다.

1. 필수파일 설치 진행(yum)

sudo yum install -y gcc gcc-c++

apr, apr-util, pcre 패키지를 위해서 xml관련 패키지가 또 필요한데 이부분을 설치한다

sudo yum install -y expat expat-devel expat-static

2. wget으로 기타 필요한 파일 받아오기

기본적으로 설치파일들의 위치는 관례를 따른다(/usr/local/src 하위에 존재한다고 가정한다.)

cd /usr/local/src 

다운로드(버전은 계속 변경될 수 있음. 2023-12-05 현재기준 httpd 2.4.58)

wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz

압축해제

tar -zxvf pcre-8.45.tar.gz
tar -zxvf httpd-2.4.58.tar.gz
tar -zxvf apr-1.7.4.tar.gz
tar -zxvf apr-util-1.6.3.tar.gz

3. apr, apr-util, pcre 설치 진행

apr설치

src 하위에 apr폴더에 필요한 파일들 설치.

cd /usr/local/src/apr-1.7.4
./configure --prefix=/usr/local/src/apr
make
make install

apr-util 설치

cd /usr/local/src/apr-util1.6.3
./configure --prefix=/usr/local/src/apr-util --with-apr=/usr/local/src/apr
make
make install

pcre설치

src 하위에 pcre폴더에 필요한 파일들 설치.

cd /usr/local/src/pcre-8.45
./configure --prefix=/usr/local/src/pcre \\
--with-apr-util=/usr/local/src/apr-util \\
--with-apr=/usr/local/src/apr 
make
make install

 

4. 아파치(apache)설치

(각종 모듈을 추가 설치하는데 ssl 모듈을 적용하려면 openssl 설치가 선행되어야 한다.)

/usr/local/apache2 해당 경로에 일단 설치를 지정했다.

개발서버의 경우 apache라는 폴더에 설치를 진행함.

cd /usr/local/src/httpd-2.4.58
./configure --prefix=/usr/local/apache2 \\
--with-apr=/usr/local/src/apr \\
--with-apr-util=/usr/local/src/apr-util \\
--with-pcre=/usr/local/src/pcre/bin/pcre-config \\
--enable-so \\
--enable-ssl --with-ssl=/usr/bin/openssl

make
make install

make install 과정중 문제가 발생한 경우 prefix에 지정된 폴더가 생기지 않음.

설치확인(prefix경로 호출시 디렉토리라고 반응함.)

/usr/local/apache2

확인된 모습

5. 추가 모듈 적용 및 주석해제
추가로 적용 시킬 모듈 리스트(주석해제 필요)

mod_rewrite 
mod_userdir 
mod_negotiation 
mod_slotmem_shm 
mod_proxy_wstunnel 
mod_proxy_http 
mod_proxy 
mod_socache_shmcb 
mol_ssl

모듈에 대한 간단한 설명

  1. mod_rewrite:
    • 설명: URL 리디렉션, 리라이팅, 그리고 리버스 프록시와 같은 요청을 재작성하는데 사용되는 모듈입니다.
    • 사용 예시: 웹 사이트의 URL을 간결하게 하거나, SEO 목적으로 URL을 변경하는데 사용될 수 있습니다.
  2. mod_userdir:
    • 설명: 각 사용자의 홈 디렉토리에서 웹 컨텐츠를 제공하는데 사용되는 모듈입니다.
    • 사용 예시: 사용자마다 개별적인 홈 디렉토리를 가지고 웹 페이지를 호스팅할 때 사용됩니다.
  3. mod_negotiation:
    • 설명: 클라이언트와 서버 간에 문서 협상(Content Negotiation)을 허용하는 모듈로, 클라이언트의 요청에 가장 적합한 문서를 제공합니다.
    • 사용 예시: 서로 다른 언어 또는 문서 형식의 버전을 가진 콘텐츠를 클라이언트에게 적절히 제공할 때 사용됩니다.
  4. mod_slotmem_shm:
    • 설명: Apache 서버의 여러 인스턴스 간에 데이터를 공유하기 위한 공유 메모리 슬롯을 관리하는 모듈입니다.
    • 사용 예시: 여러 Apache 서버 인스턴스 간에 정보를 공유하고 조정할 때 사용됩니다.
  5. mod_proxy_wstunnel:
    • 설명: WebSocket 터널링을 위한 모듈로, HTTP 요청을 WebSocket으로 업그레이드하는 역할을 합니다.
    • 사용 예시: 웹 소켓을 지원하는 애플리케이션과 웹 서버 간에 통신할 때 사용됩니다.
  6. mod_proxy_http:
    • 설명: HTTP 백엔드 서버로 요청을 프록시하는데 사용되는 모듈입니다.
    • 사용 예시: Apache 서버가 클라이언트로부터의 요청을 다른 HTTP 서버에게 전달하고 응답을 클라이언트에게 반환할 때 사용됩니다.
  7. mod_proxy:
    • 설명: 일반적인 프록시 서버로 동작하는데 사용되는 모듈입니다. mod_proxy_http, mod_proxy_wstunnel 등이 이 모듈을 기반으로 동작합니다.
    • 사용 예시: 클라이언트의 요청을 다른 서버로 전달하고 응답을 받아 클라이언트에게 반환할 때 사용됩니다.
  8. mod_socache_shmcb:
    • 설명: SSL 세션 캐시를 관리하는데 사용되는 모듈입니다.
    • 사용 예시: SSL/TLS 연결을 빠르게 수립하고 성능을 향상시키기 위해 SSL 세션 정보를 캐시할 때 사용됩니다.

httpd.conf 파일 수정(설치경로/conf/httpd.conf )

간단하게 파일 몇부분만 수정 처리.

#원하는포트 추가
Listen 80

#도메인인데 없는경우 내부ip주소 적용.
ServerName www.example.com

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so

6. 아파치 웹서버 서비스 등록

파일생성

# vi /usr/lib/systemd/system/httpd2.service

파일내용

[Unit]
Description=Apache Service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl graceful
ExecStop=/usr/local/apache2/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

데몬 리로드

systemctl daemon-reload

재시작시 동작되는 서비스로 등록 or 해제

syetemctl enable httpd2
systemctl disable httpd2

서비스 실행

systemctl status httpd2
systemctl start httpd2
systemctl stop httpd2
systemctl restart httpd2
  • 아파치 웹서버 설치시 참고한 사이트 리스트참고해서 설치하면 좋을듯 하다.
  • 모두 설치버전이 조금만 다르지 비슷한 절차대로 진행하고있다.

[Linux] 아파치 서버 컴파일 설치 (httpd-2.4.52)

 

[Linux] 아파치 서버 컴파일 설치 (httpd-2.4.52)

1. 관련 패키지 설치 CentOS 7에서 설치 진행했습니다. # yum update -y # yum install -y gcc gcc-c++ pcre-devel expat-devel 2. 관련 설치 파일 다운로드 Apache HTTP Server를 설치하기 위해서는 다음과 같은 파일의 설치

veneas.tistory.com

[Apache] 아파치 HTTPD Server v2.4.52 설치 (Source Compile)

 

[Apache] 아파치 HTTPD Server v2.4.52 설치 (Source Compile)

1. Prerequisite configure 작업 시 필요한 유틸리티 설치 (리눅스 버전에 따라 일부 작업은 불필요할 수 있다.) ① C 및 C++ Compiler 설치 Source Compile을 진행하기 위해서는 gcc Compiler가 필요하다. sudo yum insta

anggeum.tistory.com

 

반응형