[Linux]Ubuntu20.04 + Apache2.4.48 수동설치

sally·2021년 7월 5일
0

Linux랑 친해지기

목록 보기
1/3
post-thumbnail

0. apache를 ubuntu20.04에 설치 및 실행하기 위해서는 APR, PCRE와 같은 의존성 패키지를 설치해야 한다.

1. 소스코드 저장할 디렉토리 미리 만들어두기

$ sudo su
$ cd usr/local
$ mkdir apache2.4

2. 필수 패키지 설정

$ apt-get install gcc
$ apt-get install --reinstall make
$ apt-get install libexpat1-dev
$ apt-get install g++

error (1)

$ apt-get install gcc 입력하자마자 에러가 떴다.

E: Could not get lock /var/lib/dpkg/lock-fronted. It is held by process 2593 (aptd)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

모든 프로세스 죽인 다음

$ sudo killall apt apt-get

lock 걸린 파일들 지우고

$ sudo rm /var/lib/apt/lists/lock 
$ sudo rm /var/cache/apt/archives/lock 
$ sudo rm /var/lib/dpkg/lock*

패키지 설정 후 업데이트하면 해결된다.

$ sudo dpkg --configure -a
$ sudo apt update

3. apr 과 apr-util 을 다운로드 (경로: /usr/local)

$ 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 형식으로 압축되어있는 파일을 압축해제하는 명령어이다.

여기서는 tar.gz 형식으로 압축되어있는 apr 과 apr-util 을 압축해제할 때 사용한다.

압축파일 gz를 다운받았으면 tar xvfz를 통해 압축을 푼다.

3-1.apr설치

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

configure 소스 구성
--prefix 경로 지정
make 소스 컴파일
make install 설치파일 설치

error (2)
configure하는데 에러가 발생했다.

rm : cannot remove 'libtoolT' : No such file or directory


이럴때는 다시 설치를 진행해 주면 된다.

$ cp -arp libtool libtoolT

3-2. apr-util 설치

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

4. pcre 설치 (경로: /usr/local)

해당 홈페이지의 Download 부분을 참고하여 다운받을 수 있다.
http://pcre.org/

PCRE2 와 PCRE 가 있는데, Apache2.4X 대 버전이라면 PCRE 를 다운받아야 한다.
8.45가 제일 최신버전이라서 8.45로 다운로드 받았다.

$ cd /usr/local/
$ wget ftp://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz
$ tar xvfz pcre-8.45.tar.gz
$ cd /usr/local/pcre-8.45
$ ./configure --prefix=/usr/local/pcre
$ make
$ make install

5. apache2.4.48 설치(경로: /usr/local/)

아래 링크에서 필요한 버전의 아파치를 다운로드 받을 것이다.
http://httpd.apache.org/download.cgi

Stable Release - Latest Version 최신버전을 확인하여 다운 받는다.

$ cd /usr/local
$ wget https://downloads.apache.org//httpd/httpd-2.4.48.tar.gz
$ tar xvfz httpd-2.4.48.tar.gz

이제 디렉토리에 configure하고 마찬가지로 make한다.

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

error (3)

configure할때 apr-util not found 오류가 계속 나서 고생했었는데,
\ 앞, 뒤에 띄어쓰기 문제였다 😂
\ 앞에는 공백을 넣고 \뒤에는 공백 없이 작성하면 오류 없이 해결된다!!

configure이 끝나면 다음과 같은 메세지가 출력된다.

성공!! 🙌

이어서 make, make install을 해준다

$ make
$ make install

6. apache 실행

$ sudo /usr/local/apache2.4/bin/httpd -k start

error (4)
서버를 시작할려고 하니 오류가 났다.
징글징글하다... 오류와의 싸움...🤦‍♀️

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, 
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

큰 오류는 아니였다.
servername이 설정되지 않았다는 메세지이므로 설정해주면 된다.

$ vi /usr/local/apache2.4/conf/httpd.conf

편집기를 열어서

serverName 부분에 localhost:80 추가

다시 명령어 실행

$ 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

netstat 명령이 없다면 아래 명령어로 설치

$ apt-get install net-tools

curl 명령이 없으면 아래 명령어로 설치

$ apt-get install curl

-k start 는 httpd 가 죽으면 재시작한다는 의미이다.
-k stop 또는 stop 은 종료이다.
ps 는 preocess status 의 준말로, 현재 실행중인 프로세스의 목록을 보여준다.
-ef 옵션에서 e는 모든 프로세스를 출력하라는 뜻이고, -f 는 풀 포맷(UID, PID 등)으로 보여주겠다는 뜻이다.
netstat 으로는 네트워크 상태를 확인할 수 있다.
curl은 HTML정보를 출력해준다.

브라우저 창을 열어서 localhost를 주소창에 입력하면
curl 명령어를 입력했을때 나타난 HTML에 It works!가 나타나는것을 볼 수 있다.

참조블로그
https://happylulurara.tistory.com/136
https://salix97.tistory.com/137
https://kgu0724.tistory.com/71

profile
Believe you can, then you will✨

1개의 댓글

comment-user-thumbnail
2021년 7월 31일

편집기에 serverName 부분에 localhost:80 추가를 했는데 어떻게 나가나요?

답글 달기