본문 바로가기
server

[LAMP 서버구축]Apache 수동설치(컴파일설치)

by 윈 Win 2021. 2. 11.
728x90

블로그 이사했습니다!

 

👇 블로그 이전 공지 👇

블로그 이전 안내 (tistory.com)

 

 

👇 새 블로그에서 글 보기 👇

[LAMP] Apache 수동설치(컴파일설치) — Win Record (tistory.com)

 

 


 

작업 흐름

의존성 패키지 설치

아파치 설치

 

설치환경 : Ubuntu 20.04 OS

 

 


의존성 패키지 설치

아파치 홈페이지의 설치 관련 글을 보면 요구사항이 5개가 있다.

 

apache installation requirements

 

이 중 APR과 PCRE를 아파치를 깔기 전에 설치해주어야 한다.

 

APR 이란?

APR : Apache Portable Runtime
아파치 지원 라이브러리. OS에 매핑되는 API 세트 제공

- 위키피디아


The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.

- APR 페이지

PCRE 란?

PCRE : Perl Compatible Regular Expressions
정규 표현식 C 라이브러리

- 위키피디아


The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API. The PCRE library is free, even for building proprietary software.

- PCRE 페이지

작업 흐름

윈도우OS에서 프로그램을 설치하는 것과 같다.

GUI에서 CLI(Command Line Interface)로 바뀐 것 뿐이다.

 

(소스)파일 다운로드

압축 해제

소스파일 환경설정

컴파일

컴파일된 설치파일 설치

 

apr, apr-util, pcre를 다운받을 때 위의 순서대로 설치하면 의존성 패키지 설치가 완료된다.

각 패키지의 최신 버전은 해당 사이트에서 확인할 수 있다.

APR : Welcome! - The Apache Portable Runtime Project

PCRE : PCRE - Perl Compatible Regular Expressions

PCRE의 경우 버전이 두 가지(PCRE, PCRE2)인데, 아파치는 PCRE를 요구하므로, 구버전인 PCRE의 버전을 설치하면 된다.

아파치 사이트, 설치 요구사항 중
PCRE 사이트

의존성 패키지 설치하기

$ sudo su // 루트 계정(권한)으로 변경. root 계정으로 변경하면 $가 #로 바뀐다.
# cd /usr/local // 의존성 패키지 설치할 파일 위치로 이동
// 파일 설치를 위한 패키지 미리 다운로드
# apt-get install gcc make zlibc zlib1g zlib1g-dev libssl-dev openssl libxml2-dev ncurses-dev libexpat1-dev g++

// APR 패키지
# wget http:/mirror.navercrop.com/apache//apr/apr-1.7.0.tar.gz // APR 압축파일 다운로드
# wget http:/mirror.navercrop.com/apache//apr/apr-util-1.6.1.tar.gz // APR Util 압축파일 다운로드
// 압축파일 풀기
# tar xvfz apr-1.7.0.tar.gz
# tar xvfz apr-util-1.6.1.tar.gz
// APR 설치
# cd apr-1.7.0 // apr-1.7.0 폴더로 이동
# ./configure --prefix=/usr/local/apr // 파일을 /usr/local/apr에 설치, 환경에 맞게 makefile 생성
# make // 소스 컴파일
# make install // 컴파일된 파일 설치
// APR-util 설치
# cd ../apr-util-1.6.1 // apr-util-1.6.1 폴더로 이동
# ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
# make && make install // 컴파일 및 컴파일된 파일 설치

// PCRE 패키지
# cd .. // usr/local 로 이동
# wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz // 다운로드
# tar xvfz pcre-8.44.tar.gz // 압축풀기
# cd pcre-8.44 // /usr/local/pcre-8.44 로 이동
# ./configure --prefix=/usr/local/pcre
# make && make install // 컴파일 및 설치

사용된 명령어

cd : change directory 디렉토리 이동, 'cd ..'는 현 디렉토리의 부모 디렉토리로 이동하는 명령어이다. 참고로 '.'는 현 디렉토리 자기 자신을 뜻한다.

apt-get install : advanced pakaging tool(패키지 관리 명령어 도구) get 패키지 설치

wget : web get 웹에 있는 파일 다운로드

tar xvfz : tar.gz 확장자로 압축된 파일 압축해제

make : 컴파일

make install : 컴파일된 설치파일 설치

cf) '# ls .' 명령어를 사용하면 현재 위치한 디렉토리에 있는 폴더 및 파일을 확인할 수 있다.

 

 


아파치 설치

아파치 설치하기

최신 버전 확인하기 : httpd.apache.org/download.cgi

# 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 // /usr/local/httpd-2.4.46 파일로 이동
// configure 설정, 한 줄로 적고 Enter해야 함
# ./configure --prefix=/usr/local/apache2.4 
--enable-module=so
--enable-rewrite // mod_rewrite가 제공하는 규칙기반 URL 조작 기능을 사용
--enable-so // mod_so가 제공하는 DSO 기능을 사용. --enable-mods-shared 옵션을 사용 시, 해당 모듈 자동 포함
--with-apr=/usr/local/apr
--with-apr-util=/usr/loacl/apr-util
--with-pcre=/usr/local/pcre
--enable-mods-shared=all
# make
# make install

 

configure 설정 관련 명령어는 여기서 자세히 볼 수 있다.

아파치 실행하기

$ 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이나 curl이 없다고 나오면 apt-get으로 설치하면 된다.

 

sudo: netstat: command not found
sudo: curl: command not found

$ sudo apt-get install netstat curl

 

sudo -k start

아파치 실행 : -k start , start

아파치 종료 : -k stop , stop

ps -ef : process status 현재 실행중인 프로세스 목록 출력.

          모든 프로세스 출력(-e), 풀 포맷(UID, PID)으로 출력(-f)

 

sudo netstat -anp grep httpd

netestat -anp : 네트워크 관련 -연결상태, 라우팅 테이블, 인터페이스 상태 등- 정보 출력. 모든 네트워크 상태 출력(-a), 도메인 주소 숫자로 출력(-n), PID(processor)와 사용 중인 프로그램 이름 출력(-p)

 

sudo curl http://127.0.0.1

curl : url 주소의 HTML 정보 출력

 

127.0.0.1

브라우저에서 해당 주소를 입력해도 같은 결과가 나온다.

127.0.0.1은 IPv4에서 자기 자신 컴퓨터의 주소를 뜻한다.

 

alias 설정하기

alias란 가명, 별명, ~라 불리는 등의 뜻이 있다.

/usr/local/apache2.4/bin/httpd 경로를 httpd라는 닉네임으로 등록해놓으면 관련 작업을 할 때 용이하다.

// e.g. httpd 버전 확인하기
// alias 설정 전
$ /usr/local/apache2.4/bin/httpd -v
// alias 설정 후
$ httpd -v

~/.bashrc파일에 httpd의 alias를 추가하여 등록하면 된다.

$ vi ~/.bashrc // vim 편집기로 .bashrc 파일 열기

위 코드를 입력하면 .bashrc 파일을 열게 된다.

j(↓)와 l(→)를 눌러 파일 맨 끝으로 가 a를 눌려 편집을 시작한다.

아래의 코드를 입력해 httpd의 alias를 추가한다.

alias httpd="/usr/local/apache2.4/bin/httpd"

 

입력 후 ctrl+C 하면 맨 밑 줄에 변화가 생기고 :wq를 입력해 저장 후 종료한다. 저장하지 않고 종료하려면 :q!를 입력하면 된다.

 

마지막으로 변경사항을 반영하면 alias인 httpd를 사용할 수 있다.

 

$ source ~/.bashrc

 

이렇게 하면 터미널을 종료 후 다시 키거나 pc를 재부팅해도 httpd를 사용할 수 있다.

 

 

 


이전 글

[LAMP 서버구축]Linux 설치 (VMware / Ubuntu 20.04) (tistory.com)

다음 글

[LAMP 서버구축]MySQL 수동설치(컴파일설치) (tistory.com)

 

 


참고자료

APM 컴파일 설치하기 - Apache | sangminlog (sangm1n.github.io)

Ubuntu 18.04 + Apache 2.4.41 수동설치하기 (tistory.com)

컴파일 설치 - 제타위키 (zetawiki.com)

httpd.apache.org/download.cgi

httpd.apache.org/docs/current/en/install.html

apr.apache.org/

www.pcre.org/

IT_Dexter :: 리눅스 - configure, make, make install 개념 (tistory.com)

Ubuntu의 apt-get 명령어 정리 :: Outsider's Dev Story

configure - Configure the source tree - Apache HTTP Server Version 2.4

[코벤져스] 리눅스, 유닉스에서 환경변수 적용하는 법 - YouTube

[리눅스, 유닉스]vi (vim) 편집기 기본 사용법, 명령어, 단축키, 동작법 & 문제 (tistory.com)

Alias 설정하기 – 폭군길냥의 블로그 (hue9010.github.io)

 

 

 

공부하며 정리한 글입니다. 내용에 대한 피드백은 언제나 환영입니다.

 

댓글