본문 바로가기
느리게 변하는 지식

아파치 웹 서버를 리눅스에서 설치할 때 왜 여러 패키지를 받을까?

by oncerun 2022. 11. 12.
반응형

구글에 아파치 리눅스 설치라고 엔터를 치면 무수히 많은 글과 튜토리얼이 나온다. 

 

해당 블로그에서는 윈도에서 아파치를 설치하는 것과 달리 별도의 여러 패키지를 다운로드한다.

 

  • gcc
  • make
  • gcc-c++
  • apr
  • apr-utils
  • expat-devel
  • pcre

 

gcc는 컴파일러였던 거 같기도 하고 다들 해당 패키지를 잘 알고 따라 하는 건가?

 

그래서 왜 이러한 패키지가 필요한지 각각의 패키지는 무엇을 하는 건지 ec2에는 이미 설치가 되어있는 건지 전부 확인을 해보기로 했다.

 

기본적으로 아파치가 설치되어 있다면 우리는 그냥 사용한다. 귀찮으니까

 

근데 사실 보안적으로나 직접 컴파일하여 원하는 디렉터리에 넣거나 부가 작업이 필요한 경우에는 안전한 공식 사이트에서

소스 코드를 받아 컴파일하여 사용하는 것이 좋다.

 

 

 

httpd찾아서 전부 지우고 다시 시작하려고 했지만 그전에 미리 가지고 있어야 할 패키지가 존재합니다. 

 

바로 gcc, gcc-c++ 입니다.

 

1) gcc, gcc-c++

 

아파치는 C언어 계열로 만들어져 있습니다.  C언어를 컴파일할 때 우리는 c계열의 컴파일러가 필요합니다!

여러 컴파일러 중 리눅스에서 가장 많이 쓴다는 gcc, gcc-c++를 설치하는 것뿐입니다.

 

일단 yum install gcc gcc-c++로 설치를 진행해주면 되겠죠?

yum install gcc gcc-c++

2) XML parser(expat) 설치

 

XML은 요즘은 JSON 데이터 형식 포맷을 많이 사용하는 추세라 많이 사용되지 않지만 아파치는 필요합니다.

아파치 모듈 중에 APR(Apache Portable Runtime)이라는 모듈이 있는데 이 모듈은 일관된 인터페이스를 만들 수 있도록 도와주는 역할을 합니다.  이 모듈에는 XML parser가 필요합니다. 

그래서 XML parser 중 C언어 라이브러리로 만들어진 expat이라는 프로그램을 설치하는 겁니다. 

 

yum install expat expat-devel expat-static으로 3개의 프로그램을 한 번에 설치하면 되겠죠?

yum install expat expat-devel expat-static

 

3) apr, apr-util

 

위에서 언급한 apr에 대해 다운로드를 하는 것입니다. 

APR은 Apache가 설치된 플랫폼에 관계없이 일정한 동작을 하기 위해 필요한 라이브러리로 Apache 설치 시 요구 사항입니다. 

 

이는 yum으로 다운로드가 아닌 소스코드가 필요합니다. 이는 apach를 컴파일할 때 옵션으로 같이 컴파일을 하기 때문인데요 

https://apr.apache.org/download.cgi

 

Download - The Apache Portable Runtime Project

The currently selected mirror is https://dlcdn.apache.org/. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available. You may a

apr.apache.org

해당 사이트에서 확인 이후 wget 하여도 됩니다.~

 

4) pcre

 

Perl-Compartible Regular Expression 이름도 길다. 정규표현식과 똑같은 맥락과 문법을 perl 5에서 사용할 수 있게 해주는 펄 라이브러리입니다. 

 

pcre는 Apache 2.4 이상을 설치하려면 필요한 패키지입니다.

 

https://pcre.org/

 

PCRE - Perl Compatible Regular Expressions

PCRE - Perl Compatible Regular Expressions The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that cor

pcre.org

 

pcre2가 아닌 pcre1을 다운로드하면 됩니다. 

 

이제 전부 압축을 해제하면 됩니다.

tar jxvf apr; tar jxvf apr-util; tar jxvf pcre

 

보통 이러한 파일들은 /usr/local 파일에 많이 보관해두고 사용하기 때문에 여기다 저장한다고 가정한 이후 apr은 아파치 설치 시 같이 컴파일할 것이기 때문에 내버려두고 pcre 먼저 설치를 해야 합니다.

 

cp pcre-8.45 

./configure --prefix=/usr/local/pcre

 

저장 위치를 prefix 옵션을 통해 주어 설치 경로를 설정하고

 

make

make install

 

make 명령어로 컴파일을 한 이후 make install을 통해 설치하면 됩니다.

 

 

그럼 아파치를 위해 이렇게 많은 패키지를 설치를 했으니 아파치를 설치해야 합니다.

 

 

현재 기준으로 2.4.54가 최신 사용 가능 버전으로 보입니다.  Source의 파일을 다운로드합니다.

 

tar jxvf httpd-2.4.51.tar.bz2

.

아카이브와 압축을 동시에 해제를 합니다.  이후 소스코드가 들어있는 디렉터리가 생성됩니다.

 

디렉터리 안에는 다양한 파일들이 존재하는데 이 중에서 srclib 폴더는 아파치 설치할 때 같이 사용할 소스 라이브러리를 넣어두기 위한 디렉터리입니다. 

 

apr, apr-util 소스코드가 있는 디렉터리를 내부 디렉터리에 넣어주면 됩니다. 

 

파일 질라 씁시다..

 

커맨드로 하시면 다음과 같이 진행합니다.

cp -a apr... httpd-2.4.54/scrlib/apr
cp -a apr-util... httpd-2.4.54/scrlib/apr-util

 

이제 아파치 디렉터리 내부에서 컴파일을 할 것입니다. 

 

--prefix =아파치 저장 경로(ex) /usr/apache)

 

그리고 동적 모듈을 사용하기 위해서 --enable-so와 --enable-mods-shared=all (전체를 동적 모듈로 사용하겠다) 추가해줍니다.

더보기

아파치 웹서버는 관리자가 모듈들을 선택하여 서버에 포함할 기능을 결정할 수 있는 모듈화 된 프로그램이다.

서버를 컴파일할 때 httpd 실행파일에 정적으로 모듈을 컴파일할 수 있다.

 모듈을 httpd 실행파일과 분리하여 동적 공유 객체 (Dynamic Shared Objects, DSO)로 컴파일할 수 있다. 

DSO 모듈은 서버를 컴파일할 때 컴파일하거나, Apache Extension Tool(apxt)을 사용하여 나중에 컴파일하여 추가할 수 있다.

 

apr을 위해 --with-included-apr 옵션, --with-pcre=pcre 설치한 절대 경로

 

./configure --prefix=/아파치경로 --enable-so --enable-mods-shared=all --with-included-apr --with-pcre=pcre

 

이후 make로 컴파일을 하는데 error가 뜨지 않아야 정상적으로 잘 설치가 된 것이다.~

 

make install로  설치를 진행하고 error가 없어야 합니다.

 

error는 구글링 하면 바로 나옵니다. 

 

아파치 서버를 설치했으면 우리는 apachectl start로 시작을 하기 전에 이 전 글인 was 연동을 위한 작업을 추가해줄 겁니다.

 

httpd.conf에서 서버 도메인이 있으시면 해당 도메인을 적어주고 없으면 127.0.0.1로 자신 아이피를 적어주면 데몬이 실행됩니다. 

 

여기까지 왜 여러 패키지가 아파치 서버를 설치할 때 필요한지 아파치를 소스코드를 컴파일하여 설치하는 과정을 정리했습니다. 

 

이제 다음에는 https를 적용하는 과정입니다. 

반응형

'느리게 변하는 지식' 카테고리의 다른 글

CDN  (0) 2022.12.17
타임존  (0) 2022.12.06
데드락  (0) 2022.08.04
CPU 작동 원리  (0) 2022.04.08
Lean 소프트웨어 개발  (0) 2022.04.05

댓글