[Ubuntu] Ubuntu-20.04 APM 소스 설치 - 1.Apache

Ogu·2022년 4월 17일
3
post-thumbnail

🌵 APM

  • A(Apache) : 웹서버
  • P(PHP) : 웹 프로그래밍 언어
  • M(MYSQL) : 데이터베이스
    Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용한다.

📌 Apache

Apache HTTP server

🌵 소스설치

소스설치, 수동설치, 컴파일설치: linux에서 소스를 직접 다운받아 컴파일하여 설치하는 것을 말한다.

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

우분투(Ubuntu)를 예로 들면 apt라는 리눅스 계열의 패키지 관리 명령어 도구가 있다. 하지만 개인적인 목적이 아닌 회사에서 업무적인 목적이나 공공이 사용하는 경우 필요에 따라 패키지 설치를 막을 수 있다.

🌵 Apache 설치

소스설치, 수동설치, 컴파일설치: linux에서 소스를 직접 다운받아 컴파일하여 설치하는 것을 말한다.

📌 필수 패키지 설치

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

$ 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로 설치한다.

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

apr, spr-util, pcre 각각 소스파일 다운로드, 압축해제와 설치를 한 세트씩 묶어 진행하는것도 하나의 방법이다!

압축

Apache를 설치하기 전 기본적으로 apr, apr-util, pcre를 설치해야 한다.

$ sudo su

/usr/local# mkdir apache

1) apr-1.7.0
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz

2) apr-util-1.6.1
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz

3) pcre-8.43
/usr/local# wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/

4) apache-2.4.51
/usr/local# wget https://dlcdn.apache.org/httpd/httpd-2.4.53.tar.gz

💊 이때 apache는 최신 버전을 깔아야 오류가 나지 않는다.
홈페이지에서 지워버린 버전을 받는다면 403 에러가 발생한다.
https://httpd.apache.org/download.cgi 에서 최신 버전을 확인하고, Source - tar.gz의 링크 주소를 복사해 사용한다.

압축 해제

/usr/local# tar xvfz apr-1.7.0.tar.gz
/usr/local# tar xvfz apr-util-1.6.1.tar.gz
/usr/local# tar xvfz pcre-8.45.tar.gz
/usr/local# tar xvfz httpd-2.4.53.tar.gz
  • mkdir: 디렉토리를 생성하는 명령어이다.
  • wget: 웹 서버로부터 파일을 다운받는다.
  • tar xvfz: tar.gz 압축을 한 번에 풀어준다.
  • APR: APR(아파치 포터블 런타임)는 아파치 HTTP 서버 2.x.의 핵심이며 휴대용 라이브러리이다. 이런 APR은 고급 IO 기능(예:sendfile, epoll and OpenSSL 등)에 대한 접근을 포함하여 OS 수준의 기능 (난수 생성, 시스템 상태), 그리고 기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용되고 있다.
  • PCRE: PCRE( Perl Compatible Regular Expressions )는 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합이다. 요즘에는 Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되고 있으며, 아파치 2.4 버전을 설치할 때는 pcre를 설치해야 한다.

📌 apr 설치

/usr/local# cd apr-1.7.0
/usr/local/apr-1.7.0# ./configure --prefix=/usr/local/apr
여기서 오류가 난다면
# cp -arp libtool libtoolT 다운로드를 해준다.

/usr/local/apr-1.7.0# make
/usr/local/apr-1.7.0# make install

📌 apr-util 설치

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

📌 pcre 설치

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

💊 libtool: warning: relinking 'libpcrecpp.la'

the warning is not about you or the package doing anything wrong, it's about a potentially slow operation at the install stage (slow operations at the build stage are expected and don't need a warning).
https://stackoverflow.com/questions/29659569/what-is-relinking-warning

📌 Apache(2.4.53) 설치

/usr/local# cd httpd-2.4.53
/usr/local/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

💊 pcre(2)-config for libpcre not found

설정 명령어들(./configure로 시작하는)에서
prce 부분을 찾은 다음 pcre-config 파일이 있는 경로나 아니면 파일짜리 직접 지정해주면 된다
--with-pcre=/usr/local/pcre/
🔻
--with-pcre=/usr/local/pcre/bin/pcre-config
로 바꾼다!

정상적으로 진행되면 아래와 같이 나타난다.

make, install 실행

/usr/local/httpd-2.4.46# make
/usr/local/httpd-2.4.46# make install

📌 Apache 실행

💊 정말 오류투성이였다 한참걸려 해결했다..

실행: httpd -k start, 종료: httpd -k stop
\ 앞에는 공백을 넣고 \뒤에는 공백 없이 작성한다!

💊 Apache 실행 전 꼭 apt Update를 하는것을 추천한다! 계속 오류가 나서 헤맸다..

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

서버를 시작하려하면 오류가 발생한다.

편집기를 열어 서버 네임을 설정하고 다시 진행하면 된다.

sereverName 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

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

우분투 Vi 명령어 모음
https://mrkzet.tistory.com/23 [김제트 블로그]

📌 firefox에서 실행 확인하기

firefox에서 주소창에 localhost(127.0.0.1)를 입력하고 It works!가 나오면 성공!!💦

참고 URL

profile
Hello! I am Ogu, a developer who loves learning and sharing! 🐤🐤 <br> こんにちは!学ぶことと共有することが好きな開発者のOguです!🐤

0개의 댓글