yum으로 패키지를 설치하면 의존성 문제를 해결해주면서 쉽고 간단하게 설치를 할 수 있지만,
설치 경로, 설치 디렉터리의 이름 등을 커스터마이징 할 수가 없습니다.
그래서 이번에는 Web 서버를 소스로 설치하는 법을 보겠습니다.
소스 설치 3단계
tmi) 삭제는 패키지가 설치된 디렉토리 삭제
우선 yum으로 필요한 패키지를 먼저 설치를 해줍니다.
(이 패키지들 까지 소스파일로 설치하면 힘들기 때문에 yum으로 설치하겠습니다.)
명령어
yum install -y wget bzip2 expat-devel gcc gcc-c++ tar
필요한 소스 파일을 다운로드 해보겠습니다.
apache.org 홈페이지 -> download -> Distribution -> apr, httpd(마우스 오른쪽, 링크주소복사)
위와 같이 홈페이지에서 직접 파일을 링크로 복사해서 wget으로 tar 파일을 받아줍니다.
명령어
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.bz2 wget https://downloads.apache.org/apr/apr-1.7.4.tar.bz2 wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.bz2 wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2
그 후 파일들의 압축을 /www 디렉토리에 풀어줍니다.
명령어
mkdir /www cd /www tar xvfj httpd-2.4.57.tar.bz2 tar xvfj apr-1.7.4.tar.bz2 tar xvfj apr-util-1.6.3.tar.bz2 tar xvfj pcre-8.45.tar.bz2
apr의 README 파일에서 보면 Unix 환경에서 환경설정 및 빌드를 하는 방법이 나와있습니다.
이처럼 대부분 환경설정 및 빌드하는 방법이 각 폴더에 있는데, 대부분 방법이 다 비슷합니다.하지만 여기서 의존성 문제가 발생하는 경우가 많습니다
./configure --prefix=/[빌드하고자하는 소스파일의 경로]/[소스 이름] --with-[의존소스]=[의존소스 설치위치지정]
사람이 식별하는 프로그래밍 언어를 기계가 인식할 수 있는 기계어로 번역하는 과정
즉, 컴파일을 하는 과정이라고 생각하시면 됩니다.
환경설정을 마치고 cli창에 make라고 입력을 하면 됩니다.
컴파일까지 완료가 되면 cli창에 make install 이라고 입력하시면 설치가 완료가 됩니다.
실제로 빌드를 해보겠습니다.
명령어
ex) 우선 소스 파일이 있는 경로로 가준다. -> cd apr-1.7.4 1. 환경설정 -> ./configure --prefix=/www/aprutil --with-apr=/www/apr 2. 컴파일 -> make 3. 설치 -> make install
실제로 소스 파일로 환경 설정 후 설치하는 과정은 이렇게 되지만, 복잡한 가장 큰 이유는 의존성 입니다.
ex) httpd 패키지를 설치하려면 아래와 같은 순서로 설치를 해야합니다.
명령어
#! /bin/bash mkdir /www cd /www yum install -y wget bzip2 expat-devel gcc gcc-c++ tar wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.bz2 wget https://downloads.apache.org/apr/apr-1.7.4.tar.bz2 wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.bz2 wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2 tar xvfj httpd-2.4.57.tar.bz2 tar xvfj apr-1.7.4.tar.bz2 tar xvfj apr-util-1.6.3.tar.bz2 tar xvfj pcre-8.45.tar.bz2 cd apr-1.7.4 ./configure --prefix=/www/apr ; make ; make install cd ../apr-util-1.6.3 ./configure --prefix=/www/aprutil --with-apr=/www/apr ; make ; make install cd ../pcre-8.45 ./configure --prefix=/www/pcre ; make ; make install cd ../httpd-2.4.57 ./configure --prefix=/usr/local/apache2 --with-apr=/www/apr --with-apr-util=/www/aprutil --with-pcre=/www/pcre/bin/pcre-config ; make ; make install /usr/local/apache2/bin/apachectl start