source(binary 설치)
- 난이도가 매우 높음
- 엄청난 의존성 문제가 발생
- customizing 가능(설치 위치, 필요한 모듈 선택가능) , 풀패키지 설치인 yum과 다르게 최소 설치임
- update 조차 어려움(설정파일, data파일 백업 후 업데이트 -> 설정파일과 data파일을 원위치 시켜야함)
- 소스 파일 설치 명령어
./configure --prefix=프로그램 설치경로 [--with-패키지명=패키지가 설치된 경로]
./configure : 인스톨하기 위한 환경을 설정하는 프로그램
[--with-패키지명=패키지가 설치된 경로] : 의존성 문제에 필요한 패키지 파일이 있을 시 입력
wget
- 웹에서 파일 다운로드를 도와주는 커맨드라인 유틸리티
- 형식
wget <URL>
gcc, gcc-c++
- 컴파일러, gcc은 c언어, gcc-c++은 C++로 컴파일 해준다
* 컴파일이란 인간이 이해할 수 있는 언어로 작성된 소스 코드(고수준 언어 : C, C++ 등)를
CPU가 이해할 수 있는 언어(저수준 언어 : 기계어)로 변환하는 작업
make
- Linux 시스템에 포함되어 있는 명령어
- makefile 파일을 참조하여 컴파일러에게 명령을 전달함
expat-devel
- 스트림 지향 XML-parser
*parser
- compiler의 일부로 컴파일러에서 원시 프로그램(기계어로 번역되기 전의 프로그램)을 읽어 들여
그 문장의 구조를 알아내는 parsing(구문 분석)을 행하는 프로그램을 말함
소스 파일로 웹서비스(apache)를 설치해볼 것이다
소스 파일로 설치하기 위해서 사전에 필요한 패키지는 wget, gcc, gcc-c++, expat-devel가 있으니 먼저 설치해주도록 한다
소스 파일로 패키지를 설치할 때의 가장 큰 장점은 yum과는 다르게 customising할 수 있다는 것이다
소스 파일을 다운 받을 디렉토리와 패키지 설치 위치로 사용할 디렉터리를 각각 /web과 /www로 만들어 준다
/web 디렉토리로 이동하여 이곳에 우리가 이번동안 사용할 소스 파일들을 받아줄 것이다
소스 파일은 apache.org에서 다운로드(distribution)에서 찾아보고 최신 버전을 다운 받으면 된다
가장 최신 버젼의 파일의 링크 주소를 복사해준 다음 wget 명령어로 /web 디렉토리에 다운 받아준다
다운로드한 파일은 tar.bz2로 묶여서 압축되어 있으니 해제시켜주도록 한다(bzip2가 설치되어 있어야 한다)
아카이브를 해제시키고 디렉토리 안의 내용을 살펴보면 Makefile과 README 파일을 발견할 수 있다
Makefile이 바로 make가 컴파일러에 명령을 내리기 위해 참조하는 파일이고
README는 설명 및 사용방법 등이 있는 매뉴얼 파일이기 때문에 README 파일을 읽어보면 좋다
명령어를 통해 소스파일을 설치할 환경설정을 하려고 하면 APR이 없어서 못하겠다는 의존성 문제가 발생한다
APR을 먼저 설정 해주기 위해 httpd 소스 파일을 받았던 것처럼 동일한 작업을 해준다
apr은 의존성 문제 없이 잘 설정 되었으니 make && make install 명령어로 컴파일과 설치를 진행 한다
이제 다시 httpd의 소스파일 설치 환경을 설정 해본다
의존성 문제에 필요해서 설치했던 apr을 --with으로 추가해준 후 다시 시도해보면
이번에는 APR-util이 없다는 메시지가 출력된다
해결 방법은 동일하니 앞의 과정을 반복 해주자
도중에 발생하는 의존성 문제는 메시지를 잘 읽고 알려주는 방법대로 해결하면 된다
이번에는 pcre가 없다고 한다 http://pcre.org에서 받을 수 있다고 까지 알려주니 들어가서 소스파일을 받으면 된다
다운 받으려는 pcre 소스파일의 링크 주소를 복사해보면 다음과 같은데
https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2/download
wget의 URL 입력은 파일확장자까지 이므로 /dowmload를 지워줘야 한다(항상 URL을 한번 확인하는 습관을 가지자)
pcre를 설정해주려고 하니까 certificate(증명서)에 문제가 있다고 에러 메시지가 뜬다
증명서 확인 작업을 안하고 다운로드 하려면 --no-check-certificate 옵션을 사용해야 한다는 것을 확인할 수 있다
pcre 소스 파일 환경설정 도중 C++ 컴파일러가 유효하지 않다는 에러 메시지가 출력됐다
확인해보니 깔았다고 생각했던 c++ 컴파일러가 설치가 안되어 있었다
확인해보니 yum으로 필요 패키지를 설치하는 과정에서 gcc-c++ 에 오타가 있어서 설치가 안된거였다
이렇듯 필요 패키지 미설치 시 오류 메시지를 잘 읽고 설치해주도록 하자
c++ 컴파일러 설치 후 진행해보니 문제없이 진행된다 계속해서 진행 해보자
다시 한번 httpd 환경설정 시도 중 이번엔 pcre-config를 못찾았다는 에러 메시지가 떴다
이런 경우 config 파일까지 경로를 직접 지정해주면 된다
pcre-config 파일은 pcre가 설치된 디렉토리의 bin 디렉토리에 있다
./configure --prefix=/www/apache --with-apr=/www/apr --with-apr-util=/www/aprutil --with-pcre=/www/pcre/bin/pcre-config
다시 한번 이 긴 명령어를 입력 해주면
드디어 아무 문제없이 완료가 되는 것을 확인할 수 있다
방화벽에서 httpd 포트(80)을 열어주고 /www/apache/bin/apachectl start 명령어를 통해 서비스를 실행 해보면
웹 서비스가 잘 동작하는 것을 확인할 수 있다
처음 웹서비스를 시작하고 아무것도 조작하지 않았을 때 웹 페이지에 뜨는 저 문구는
/www/apache/htdocs/index.html 파일 내용을 수정해서 내가 원하는 문구가 뜰 수 있게 할 수 있다
httpd 설정 파일에 대한 자세한 내용은 나중에 다뤄 볼 것이다
번외 1) ncloud에서 서버 개설 후 실제 적용
ncloud에서 서버(CentOS7) 개설하여 동일 작업 실시한 후 공인 IP를 할당받아 테스트 해보면
성공적으로 apache 웹 서비스가 동작하는 것을 확인 할 수 있다
번외 2) 서버 개설 시 script 적용
서버 개설 후 공인 IP 할당 외에 아무런 작업을 해주지 않아도 apache 웹 서비스가 동작 중인 것을 확인할 수 있다
scirpt에 대한 자세한 내용은 다음 글에서 다룰 예정이다
'Linux' 카테고리의 다른 글
Process 관리 (0) | 2022.09.23 |
---|---|
apache, script로 설치 자동화 하기 (0) | 2022.09.23 |
Local Repository (0) | 2022.09.21 |
패키지 관리(RPM&YUM) (0) | 2022.09.21 |
Quota (0) | 2022.09.20 |