$ sudo su
$ cd usr/local
$ mkdir apache2.4
$ 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
$ 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를 통해 압축을 푼다.
$ 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
$ cd /usr/local/apr-util-1.6.1
$ ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
$ make
$ make install
해당 홈페이지의 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
아래 링크에서 필요한 버전의 아파치를 다운로드 받을 것이다.
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
$ 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
편집기에 serverName 부분에 localhost:80 추가를 했는데 어떻게 나가나요?