Apache는 Apache 재단에서 만든 HTTP 웹서버로, 세계에서 가장 많이 쓰이는 웹 서버 중 하나다.
Apache의 역할은 서비스 사용자가 URL을 입력하면 URL에 해당하는 서버에 설치된 apache가 실행되고, 사용자가 요청한 URL에 따라서 html, image와 같은 파일을 제공해준다.(종업원 역할)(이러한 파일을 '리소스'라고 부른다.)
Php는 Apache와 같이 웹페이지를 제공하는 역할을 한다.(주방장역할)
Apache는 파일 형식으로 된 html을 수동적으로 전달하는 역할을 하는 반면,
Php는 프로그래밍적 요소를 더해서 동적으로 웹페이지를 생성해내는 것이다.
Mysql 같은 데이터베이스에서 데이터를 꺼내서 제공하는 역할도 한다.
Mysql은 데이터베이스(냉장고역할) 제품 중 하나이고, 데이터를 관리하는 역할을 해준다. 원래는 파일에다가 데이터를 저장하지만, 파일들이 많아지고, 많은 양의 데이터를 관리해야하는 상황에서 효율적인 데이터 관리를 제공한다.
윈도우에서 다른 운영체제를 사용하기 위한 도구가 바로 가상머신이다.
리눅스는 오라클에서 배포하는 무료 시스템 운영체제이며 오픈소스이다.
오픈 소스이기 때문에 수많은 리눅스의 재배포 버전들이 나왔으며, 대표적인 예로 Ubuntu(우분투), CentOS(센트OS), RedHat 등이 있다.
Ubuntu OS를 Virtual Box(가상 머신)에 설치했다.
다운로드는 www.virtualbox.org/wiki/Downloads 에 들어가서 설치해줬고 실행해줬다.
새로 만들기에서 이름과 폴더를 지정한 후에, 메모리 크기는 2기가를 할당해줬고 하드 다스크 크기는 40G로 설정하였다. (디스크 용량 기본값이 10G이던데 mysql 설치시에 많은 디스크 용량이 필요해서 애먹었다 ㅜ....)
우분투 설치 완료 !
우분투 설치가 완료되었으면 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에 설치하는 것이 관례이다.
APR(Apache Portable Runtime), PCRE(Perl Compatible Regular Expreesions)와 같은 의존성 패키지를 설치해준다.
먼저 APR을 설치한다.
APR은 아파치 웹 서버를 위한 지원 라이브러리다.
먼저 리눅스에 소스코드를 저장할 디렉토리를 미리 만들어둔다.
/usr/local/ 여기가 Mysql, Php, Apache 등과 같은 어플리케이션들을 소스코드로 설치할 때 사용되는 디렉토리이다.
usr/local/ 디렉토리에 apache라는 이름의 디렉토리를 만들었다.
그 후에, /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 소스 설치를 해준다.
설치 전에 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을 까먹음 ㅠ)
실행: 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