[Ubuntu] Ubuntu에 APM 소스 수동 설치(1) - Ubuntu&Apache

최희정·2022년 3월 21일
0

📌APM(Apache, PHP, Mysql)이란?

Apache는 Apache 재단에서 만든 HTTP 웹서버로, 세계에서 가장 많이 쓰이는 웹 서버 중 하나다.
Apache의 역할은 서비스 사용자가 URL을 입력하면 URL에 해당하는 서버에 설치된 apache가 실행되고, 사용자가 요청한 URL에 따라서 html, image와 같은 파일을 제공해준다.(종업원 역할)(이러한 파일을 '리소스'라고 부른다.)

Php는 Apache와 같이 웹페이지를 제공하는 역할을 한다.(주방장역할)
Apache는 파일 형식으로 된 html을 수동적으로 전달하는 역할을 하는 반면,
Php는 프로그래밍적 요소를 더해서 동적으로 웹페이지를 생성해내는 것이다.
Mysql 같은 데이터베이스에서 데이터를 꺼내서 제공하는 역할도 한다.

Mysql은 데이터베이스(냉장고역할) 제품 중 하나이고, 데이터를 관리하는 역할을 해준다. 원래는 파일에다가 데이터를 저장하지만, 파일들이 많아지고, 많은 양의 데이터를 관리해야하는 상황에서 효율적인 데이터 관리를 제공한다.

소스설치

  • 소스설치, 수동설치, 컴파일 설치 : linux에서 소스를 직접 다운 받아 컴파일하여 설치하는 것
  • <-> 패키지 설치와 반대
  • 소스설치 이유 : 패키지 설치로 간편하게 설치할 수 있지만, 불필요하게 설치되는 파일들이 시스템의 자원을 사용하게 되고 패키지 단위로 설치되기에 관리적으로 문제가 발생 가능성 있음

1. 가상 머신에 리눅스 계열 0S 설치 💻🖱️

윈도우에서 다른 운영체제를 사용하기 위한 도구가 바로 가상머신이다.

리눅스는 오라클에서 배포하는 무료 시스템 운영체제이며 오픈소스이다.
오픈 소스이기 때문에 수많은 리눅스의 재배포 버전들이 나왔으며, 대표적인 예로 Ubuntu(우분투), CentOS(센트OS), RedHat 등이 있다.

Ubuntu OS를 Virtual Box(가상 머신)에 설치했다.
다운로드는 www.virtualbox.org/wiki/Downloads 에 들어가서 설치해줬고 실행해줬다.

새로 만들기에서 이름과 폴더를 지정한 후에, 메모리 크기는 2기가를 할당해줬고 하드 다스크 크기는 40G로 설정하였다. (디스크 용량 기본값이 10G이던데 mysql 설치시에 많은 디스크 용량이 필요해서 애먹었다 ㅜ....)

우분투 설치 완료 !

2. Apache를 소스코드로 설치

우분투 설치가 완료되었으면 Apache 설치하기 전에

필수 패키지 설치

먼저 필요한 패키지들을 설치한다.

$ sudo su
# apt-get install make
# apt-get install build-essential
# apt-get install gcc
# apt-get install --reinstall make
# apt-get install libexpat1-dev
# apt-get install g++ 
# apt-get install net-tools
# apt-get install curl

소스설치 관례

/usr/local에 설치하는 것이 관례이다.

  1. 소스파일을 내려받고
  2. ./configure로 설정을 한다.
  3. make로 컴파일을 한 뒤
  4. make install로 설치한다.
  • configure : 소스파일에 대한 환경설정을 해주는 명령어다. (뒤에 옵션을 넣음) 서버환경에 맞추어 makefile을 생성해주는 과정이다.
  • make: 소스를 컴파일 하는 것이다. 컴파일이란 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다.
  • make install: make를 통해 만들어진 설치파일을 설피하는 과정이다. 한마디로 build된 프로그램을 실행할 수 있게 파일들을 알맞은 위치에다가 복사를 한다.

소스설치 파일 다운로드 및 압축해제

APR(Apache Portable Runtime), PCRE(Perl Compatible Regular Expreesions)와 같은 의존성 패키지를 설치해준다.

먼저 APR을 설치한다.

APR은 아파치 웹 서버를 위한 지원 라이브러리다.
먼저 리눅스에 소스코드를 저장할 디렉토리를 미리 만들어둔다.
/usr/local/ 여기가 Mysql, Php, Apache 등과 같은 어플리케이션들을 소스코드로 설치할 때 사용되는 디렉토리이다.

usr/local/ 디렉토리에 apache라는 이름의 디렉토리를 만들었다.

APR, APR-UTIL, PCRE소스 설치

그 후에, /usr/local에 apr과 apr-util을 다운 받고 압축 해제한다.

/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz #(apr주소)
/usr/local #wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz #(apr-util주소)
/usr/local# tar xvfz apr-1.7.0.tar.gz   #apr 파일을 압축을 해제
/usr/local# tar xvfz apr-util-1.6.1.tar.gz   # apr-util 파일 압축을 해제

wget은 web get의 약자로 웹에 있는 파일을 다운로드 받을 때 사용하는 명령어이고,
tar xvfz는 tar.gz형식의 압축된 파일을 압축해제 해주는 명령어이다.

apr util까지 설치가 완료되면 아래 사진처럼 뜬다.

이렇게 설치가 완료되면 /usr/local/에 PCRE를 다운,압축 해제 해주고 설치를 한다.

# cd usr/local
# wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz         #순서대로 설치해준다
# tar xvfz pcre-8.45.tar.gz

# cd usr/local/pcre-8.46
# ./configure --prefix=/usr/local/pcre
# make
# make install

💨주의
구글링을 통해 나오는 많은 사이트들에서 다운로드 경로를 아래와 같이 설정하곤 한다. 아래의 사이트에 PCRE의 서비스는 중단되어 다운로드를 할 수 없다.
ftp://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz

따라서 sourceforge 사이트를 이용하면 된다.

Apache 소스 설치

드디어 이제 Apache 소스 설치를 해준다.
설치 전에 apcahe 홈페이지에서 최신 버전을 확인해줘야한다.
https://httpd.apache.org/download.cgi

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

다운로드가 완료되면 configure, make, make install로 설치한다.

# cd httpd-2.4.53
# ./configure --prefix=/usr/local/apache-2.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

위 코드와 똑같이 입력했더니 오류가 떴다.

해결방법을 찾아보니
error: Did not find pcre-config script at 경로 ~~

이런 녀석들은 설정 명령어들(./configure로 시작하는 것들)에서 pcre부분을 찾은 다음 pcre-config 파일이 있는 경로나 아니면 파일짜리 직접 지정해주면 된다.

--with-pcre=/usr/local/pcre/
이렇게 되어있을 경우

--with-pcre=/usr/local/pcre/bin/pcre-config 이런 식으로 바꾸어주면 된다.

중요한 건 이 에러를 못 보고 그냥 make를 쳐버리면
make: *** 타켓이 지정되지 않았고 make 파일이 없습니다 라는 에러가 뜬다.

야호 🎶🎶
아래 사진과 결과가 같다면 Apache 설치가 완료된 것이다.

make와 make install은 까먹지 말도록 ! (헤헤 난 오류때문에 멘탈 나가서 make와 make install을 까먹음 ㅠ)

Apache 실행

실행: httpd -k start, 종료: httpd -k stop

/usr/local# sudo apache-2.4/bin/httpd -k start
/usr/local# ps -ef | grep httpd | grep -v grep
/usr/local# sudo netstat -anp | grep httpd
/usr/local# sudo curl http://127.0.0.1

httpd -k start를 입력한다면 ServerName을 정하라고 뜨는데 에러는 아님.

curl http://127.0.0.1 까지 마친다면 아래 사진처럼 완료!

파이어폭스에서도 제대로 작동하는 것을 볼 수 있다.

Apache 소스 설치 완료 !! 🎶👩‍💻

참고 : https://resilient-923.tistory.com/100 , https://yeni-days.tistory.com/2

profile
차근차근 일상을 기록하는 컴공생 👩🏻‍💻

0개의 댓글