CS

[서버/Server] APM 소스 설치(수동 설치)하기 - Apache(아파치)

🤖 Play with Android 🤖 2021. 9. 12. 14:27
728x90


📌  APM이란?

  • A(Apache) : 웹서버
  • P(PHP) : 웹 프로그래밍 언어
  • M(MYSQL) : 데이터베이스

APM 소프트웨어가 존재하는 것이 아니라, 이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 한다. Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용한다.

 

 

 

 

📌  Apache

정식 명칭 : Apache HTTP server

웹 서버 프로그램이다. 웹 서버란 웹 서비스를 제공해주는 서버인데, 예를 들어 사용자가 사이트에 접속하면 웹 서버에게 HTML 파일을 요청한다. 요청을 받은 웹 서버는 클라이언트 컴퓨터에 HTML 파일을 제공하면서 사용자는 화면으로 웹 페이지를 볼 수 있게 된다.

정식 명칭에 있는 HTTP란 Hypertext Transfer Protocol의 약자로써. 인간사회에서 교통법, 보건법 등의 다양한 법이 질서를 지켜주는 것처럼 인터넷 상에서 데이터를 주고받기 위한 규약, 프로토콜이라고 할 수 있다. 이러한 규약이 있어야 제대로 된, 질서 있는 통신이 가능해진다.

클라이언트와 웹 서버는 HTTP로 주로 통신데, 우리가 접속하고 계신 URL의 첫 부분이 HTTP로 시작한다는 것은 HTTP를 통신 수단으로 사용하고 있다는 뜻이다.

 

 

 

패키지가 아닌 소스설치를 하는 이유

내가 사용하는 우분투(Ubuntu)를 예로 들면 apt라는 리눅스 계열의 패키지 관리 명령어 도구가 있다. 하지만 개인적인 목적이 아닌 회사에서 업무적인 목적이나 공공이 사용하는 경우 필요에 따라 패키지 설치를 막을 수 있다. 따라서 수동 설치를 해주기로 했다. (그리고 패키지 설치면 코드 몇 줄이면 끝나서 매우 간단하기도 하다)

 

 

 

 


 

 

 

Parallels + Ubuntu 20.04.2 설치

나는 m1칩을 내장한 맥북을 사용중에 있기 때문에 parallels를 사용하기로 했다.(parrallels만이 2021년 9월 현재까지 m1 맥북을 지원하는 유일한 가상화 프로그램이다.)

m1 맥북 parallels(패러럴즈) , Ubuntu 20.04.2 설치 : https://gaemi606.tistory.com/m/242

우분투(Ubuntu) 설치완료

 

 

 

 

 

 

Apache 2.4.46 소스(수동) 설치

준비

$ sudo su
$ cd /usr/local
$ mkdir apache

apr과 apr-util 설치

$ wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz
$ wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz
$ tar xvfz apr-1.7.0.tar.gz
$ tar xvfz apr-util-1.6.1.tar.gz
  • wget : web get의 줄임말로 웹 서버로부터 파일을 다운로드한다.
  • tar xvfz : tar.gz 형식으로 압축되어있는 파일을 압축해제

 

 

 

다음을 진행하기 전에 오류가 나기 전에 몇 가지를 설치하고 진행하자.
no acceptable C compiler found in $PATH라는 에러와
cannot remove 'libtoolT' : No such file or directory 가 생기기에, 미리 설치하고 진행한다.

$ apt-get install gcc
$ cp -arp libtool libtoolT
$ apt install make
$ apt install --reinstall make

 

 

 

--prefix 옵션은 위치를 지정해 놓는다는 것이다.

$ cd /usr/local/apr-1.7.0
$ ./configure --prefix=/usr/local/apr

$ make && make install

$ cd usr/local/apr-util-1.6.1
$ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

$ make
$ make install

 

 

 

pcre 설치

설치하기 전 c++ 컴파일러를 설치 후에 진행하는 것이 좋다.

apt-get install g++

 

 

usr/local에 설치

$ cd /usr/local
$ wget ftp://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
$ tar xvfz pcre-8.43.tar.gz

$ cd /usr/local/pcre-8.43
$ ./configure --prefix=/usr/local/pcre

$ make
$ make install

 

 

 

Apache 2.4.46을 설치

필요한 버전의 아파치 다운로드 링크를 확인한다. 설치일 기준으로 세부 버전이 달라질 수 있으니 꼭 확인하는 것이 좋다.

홈페이지에서 지워버린 버전을 받는다면 403 에러가 뜰 수도 있다.

$ cd /usr/local 
$ wget http://apache.tt.co.kr//httpd/httpd-2.4.46.tar.gz 
$ tar xvfz httpd-2.4.46.tar.gz 

$ cd httpd-2.4.46 
$ ./configure --prefix=/usr/local/apache2.4 \ 
--enable-module=so --enable-rewrite --enable-so \ 
--with-apr=/usr/local/apr \ 
--with-apr-util=/usr/local/apr-util \ 
--with-pcre=/usr/local/pcre \ 
--enable-mods-shared=all 

$ make 
$ make install

(여기서 백 슬라이스 즉 ' \ ' 은 보기 좋게 다음 줄에 표현하기 위해 쓴 것으로 필수는 아니다.)

 

 

--enable-so : mod_so가 제공하는 DSO 기능을 사용한다.

--enable-rewrite : mod_rewrite가 제공하는 규칙 기반 URL 조작 기능을 사용한다.

 

 

* DSO (Dynamic Shared Objects, DSO) 동적 공유 객체란? : 아파치 웹서버는 관리자가 모듈들을 선택하여 서버에 포함할 기능을 결정할 수 있는 모듈화 된 프로그램이다. 서버를 컴파일할 때 httpd 실행파일에 정적으로 모듈을 컴파일할 수 있다. 아니면 모듈을 httpd 실행파일과 분리하여 DSO(동적 공유 객체)로 컴파일할 수 있다. DSO 모듈은 서버를 컴파일할 때 컴파일하거나, Apache Extension Tool을 사용하여 나중에 컴파일하여 추가할 수 있다.

 

 

여기서 대부분의 사람들이 apr-util을 지우고 다시 설치해야 한다는 것을 봐서 나는 미리 apr-util을 삭제하고 다시 설치했다.

그리고  GNU autoconf , GNU Automake, GNU libtool을 설치한다.

 

$ cd /usr/local
$ wget http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gz
$ tar xvfz m4-1.4.18.tar.gz
$ cd m4-1.4.18
$ ./configure
$ make
$ make install

 

$ cd /usr/local
$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
$ tar xvfz autoconf-2.69.tar.gz
$ cd autoconf-2.69
$ ./configure
$ make
$ make install

 

$ cd usr/local
$ wget http://ftp.gnu.org/gnu/automake/automake-1.16.tar.gz
$ tar xvfz automake-1.16.tar.gz
$ cd automake-1.16
$ ./configure
$ make
$ make install

 

$ cd /usr/local
$ wget http://ftp.jaist.ac.jp/pub/GNU/libtool/libtool-2.4.6.tar.gz
$ tar xvfz libtool-2.4.6.tar.gz
$ cd libtool-2.4.6
$ ./configure
$ make
$ make install

 


Apache 실행

먼저 다음과 같이 실행에 필요한 명령어를 실행시켜준다. (오류를 방지하기 위해)

sudo apt-get update
sudo apt-get install net-tools
sudo apt install curl

 

다음 명령어를 실행하면 Apache 실행 완료!

$ sudo /usr/local/apache2.4/bin/httpd -k start 
$ ps -ef | grep httpd | grep -v grep 
$ sudo netstat -anp | grep httpd 
$ sudo curl http://127.0.0.1
  • 실행 : httpd -k start
  • 종료 : httpd -k stop

(여기서 servername을 지정하지 않았다는 경고가 뜰 텐데, 에러는 아니고 권장사항?이라고 보면 된다.)

아파치 실행 완료

 

 

 

 

 

 

 

 

 

 

 

 

Reference :