[Server] Ubuntu에서 Apache 소스 설치하기/컴파일설치/수동설치

    Ubuntu에서 Apache 소스를 설치해보도록 하자.

     

    💡 APM(Apache, PHP, Mysql) ?

     

    APM은 Apache, MySQL, PHP 세 가지가 연동되어 운영되도록 만든 환경이며,

    Apache, MySQL, PHP는 각각 독립된 프로젝트지만 서로간 호환성이 좋아 주로 세 프로그램을 묶어 서버 개발에 사용한다고 한다.

     

    💡 Apache

     

    Apache는 Apache 재단에서 개발하고 오픈소스로 배포한 웹서버엔진으로,

    정확한 표현은 "Apache HTTP 서버"이다. 

     

    우선 웹 서버는 웹 브라우저와 같은 클라이언트들로 부터 HTTP요청을 받아들이고, HTML 문서와 같은 웹페이지를 반환하는 일종의 컴퓨터 프로그램이다. 웹 서버에 주된 기능으로는 웹 페이지를 클라이언트로 부터 전달해주는 역할을 하는 것인데 대표적인 웹서버는 Apache, Nginx 등이 이에 속합니다.

     

    웹 서버에는 정적인 방식과 동적인 방식 두가지가 있는데,  정적인 웹 서버는 단순히 HTML 문서만을 사용자에게 제공하기 때문에 아파치 웹 서버 하나면 된다. 반면 동적인 웹 페이지 사용자의 요구에 따라서 다양한 웹 페이지를 제공해주고, 이를 구성하기 위해 php와 mySQL 데이터 베이스를 연계해 사용하는데, 우리는 이를 APM이라 한다!

     

     

    💡 소스 설치

    이제 APM에 대해서 알았으니, APM 소스 설치에 대해서 알아보자!

     

    APM을 설치할 때 패키지 관리자를 사용하여 패키지들을 쉽게 설치할 수 있지만

    직접 웹에서 압축파일을 받고 압축파일을 풀어 소스를 컴파일하여 설치하는 방법도 있다.

     

    하지만 그냥 패키지 관리자를 통해서 설치하면 안되나??? 하고 의문이 들었다.

     

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

     

    하지만 초보자인 나의 입장에서는 리눅스 환경에 더 빠르게 적응할 수 있다는 점이 가장 큰 장점이었다!

     

    💡 가상머신 

     

    가상머신 윈도우/맥에서 다른 운영체제를 사용하기 위한 도구이다.

    한마디로 "난 맥북을 쓰고 있는데, 윈도우랑 리눅스도 쓰고 싶어!"로 설명할 수 있겠다

    가상머신 종류는 Virtual Box, VMWare, Parallels 등이 있다. 본인의 경우 M1을 사용하고 있어 Parallels을 설치하였다. 

     

    리눅스 기반 OS는 대표적으로 Ubuntu(우분투), CentOS(센트OS), RedHat 등이 있으며, 이제 본격적으로 Apache 소스 설치를 해볼 것이다!

     

    1. Parallels 설치

     

    본인은 맥북 M1을 사용하고 있기에 vmware, virtual box 대신에 Parallels 체험판을 설치하였다.

    M1의 경우 UTM과 Parallels 둘 중 하나를 선택하면 되는데, Parallels가 레퍼런스가 좀 더 많았다.

     

    Parallels 체험판은 아래의 링크에서 설치할 수 있다.

     

     

    Parallels Desktop 17 for Mac - Mac에서 Windows

    구독 보너스 Parallels Toolbox 30가지 이상의 원터치 도구를 사용하면 클릭 한 번으로 드라이브를 정리하고, 스크린샷을 찍고, 동영상을 다운로드하는 등 다양한 작업을 수행할 수 있습니다.

    www.parallels.com

     

     

    2. Unbuntu 18.04 설치 → 20.04

     

    이제 우분투를 설치해보겠다! 나 같은 경우 아래의 사이트에서 ubuntu-18.04.ios 파일을 다운받아주었고,

     

    Ubuntu 18.04.6 LTS (Bionic Beaver)

     

    Ubuntu 18.04.6 LTS (Bionic Beaver)

    Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what m

    releases.ubuntu.com

     

    [Parallels Desktop] - [파일] - [새로 만들기...]를 클릭하여 아래와 같은 창을 띄웠다.

    이때 Parallels가 컴퓨터에 있는 이미지 파일들을 자동으로 찾아서 조회하여 우분투를 인식한다.

     

     

    하지만 하지만 갑자기 마주쳐버린 당황스러운 문구.. (?)

    "Mac에 Intel 기반 운영 체제를 지원하지 않는 Apple M1 칩이 장착되어 있기 때문에 지정된 이미지를 사용할 수 없습니다."

     

     

    찾아보니까 M1 칩은 지원하지 않기 떄문에 AMD가 아닌 ARM으로 설치해주어야 된다고 하였다.

    내가 깔아준 버전은 AMD64였기에 ARM 버전을 깔아주자..!

     

    그래서 우분투 18.04 ARM을 찾는데 20.04밖에 보이지 않았다…

    어떤 외국인도 m1에서 우분투 18.04 설치할 수 없냐는 글을 올리긴 했는데 ..

    → (parallels ubuntu 18.04 intallation으로 서치하였음)

     

    하지만 18.04를 설치할 수 없는 것 같았다 ..

    How to install Ubuntu 18.04 on MacBook m1?

     

    How to install Ubuntu 18.04 on MacBook m1?

    I searched on the net enough and couldn't find an arm64 iso image of Ubuntu / kubuntu / Xubuntu 18.04. I read somewhere that WE CANNOT install...

    www.reddit.com

     

    그래서 대안은 20.04 ,,,, 일단 깔아보자!

     

    20.04 ARM을 설치하고 선택해주었더니 다음과 같은 창으로 무사히 이동하였다.

    이름과 비밀번호를 설정해주었고, 드디어 우분투 창을 만나게 되었다. 👋👋👋

    이후에 아까 설정해두었던 이름과 비밀번호를 입력하여 로그인해주었고, 로그인을 마치 면 아래와 같은 창을 만나게 된다.

     

    이후 터미널을 켜서 lsb_release -a 명령어를 입력해주었고, 다음처럼 20.04 버전이 설치된 것을 확인할 수 있었다.

    jeon-yejin@ubuntu:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04.4 LTS
    Release:	20.04
    Codename:	focal

     

    3. Apache 설치

     

    3-1 ) 필수 패키지 설치

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

     

    3-2 ) apache 폴더 생성

    경로 : /usr/local

    $ sudo su
    $ cd /usr/local # 처음에 cd usr/local을 해주었더니 없는 디렉토리라고 나왔다.. /을 꼭 붙여주자
    $ mkdir apache # 해당 디렉토리에 apache 폴더를 생성

     

    3-3) apr 과 apr-util 을 다운 및 압축 해제

     

    경로 : /usr/local

     

    [ Issue 1 🔥 ]

    아래와 같은 코드를 입력했는데, wget: unable to resolve host address ftp.pcre.org.. 라는 에러가 발생하였다.

    $ wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz

     

     

    그래서 구글링을 하였을 때 nameserver 8.8.8.8 로 설정해주면 된다고 하였는데, 나의 경우 해결되지 않았다.

    $ sudo vi /etc/resolv.conf
    $ nameserver 8.8.8.8 #추가 후 저장 :wq 하고 나오기!

     

    많은 포스팅을 보던 와중 /etc/hosts 에 hostname 이 잘못 기록되었을 때 발생하는 것을 알게 되었다.

     

    그래서 /etc/hosts를 살펴보았더니, 

    $ vi /etc/hosts

     

    나의 호스트네임이 unbuntu임에도 불구하고, 이렇게 127.0.0.1(localhost) 이 localhost 라는 hostname을 가르키고 있었다

    127.0.0.1 localhost
    127.0.1.1 ubuntu

     

    그래서 다음과 같이 변경해준 후 다시 설치를 해주었더니 정상 작동하였다!ㅎㅎ

     

    여기까지하면 apr, apr-util 까지 설치하고 압축해제까지 완료된다. 

    $ 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

     

    3-4) pcre 설치

     

    다음으로 prec 설치를 하면된다.

     

    [ Issue 2 🔥 ]

    구글링을 하면 여러 블로그에서 다운로드 경로를 ftp:// ~~~로 설정하였었다. 그래서 그대로 설치를 해주었는데 아까와 같은 wget: unable to resolve host address ftp.pcre.org 에러가 발생하였다..

    $ wget ftp://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz

     

    그래서 nameserver, hostname 두개 다 설정해주었는데 왜 똑같은 오류가 날까? 라고 고민하다가.. 

    구글링을 하던 와중 어떤 분이 왜 wget 명령어로 ftp: //~이런식으로 접근하냐! 라는 댓글을 보게 되었다.

     

    그래서 직접 https:// ~~ 다운로드 경로를 지정해주고 다운로드를 받고 압축을 해제해주었다.

    $ wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gz 
    $ tar xvfz pcre-8.44.gar.gz # 압축 풀기
    $ cd usr/local/pcre-8.44 # 해당 폴더로 이동

     

     

    3-5 ) Apache 2.4.54 설치

    경로 : /usr/local

     

    이제 진짜 아파치를 설치해보자…

    아래 사이트에서 Stable Release - Latest Version 에서 최신버전을 확인할 수 있다.

     

    https://httpd.apache.org/download.cgi

     

    Download - The Apache HTTP Server Project

    Downloading the Apache HTTP Server Use the links below to download the Apache HTTP Server from our download servers. You must verify the integrity of the downloaded files using signatures downloaded from our main distribution directory. The signatures can

    httpd.apache.org

     

    /usr/local 에 apache 최신 버전을 다운로드 받고, 압축을 풀어주면 된다

    $ wget https://downloads.apache.org//httpd/httpd-2.4.54.tar.gz
    $ tar xvfz httpd-2.4.54.tar.gz

     

    $ cd 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/bin/pcre-config \
    --enable-mods-shared=all
    
    $ make
    $ make install

     

    [ 삽질 1 🔥 ]

     

    위의 매우 긴 명령어를 치는데 자꾸 apr-util 부분에서 자꾸 에러가 나서 다 설치해줬는데 왜 ???엉??? 이러고 있었는데

    --with-apr-util=/usr/lcoal/apr-util \ 이렇게 오타 냈던 것임.. 나부터 의심하자! ^^ 오타를 잘 확인하자 ^^

     

    [ Issue 3 🔥 ]

     

    error : Did not find pcre-config script at /usr/local

    아파치 설정파일을 설정하는 중 pcre 부분에서 자꾸 config가 없다고 어쩌구 하면서 make 명령어가 안먹었다.

    찾아보니 pcre 부분을 찾은 다음 pcre-config 파일이 있는 경로를 직접 지정해주면 된다고 하였다. 

    그래서 /usr/local/pcre 경로를 /usr/local/pcre/bin/pcre-config로 변경해주었다!

    그 후 make -> make install을 해주면 된다!

     

    --with-pcre=/usr/local/pcre \ --with-pcre=/usr/local/pcre/bin/pcre-config \

     

    여기서 잠깐 👋

     

    configure, make, make install은 뭘까?

     

    1) configure

     

    configure소스파일에 대한 환경설정을 해주는 명령어.

    소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내 컴퓨터는 어떤 기종이고,

    컴파일에 필요한 시스템 파일들은 어디에 위치해 있으며, 어떤 곳에 설치하겠다! 라고 지정하는 것

     

    2) make

     

    make는 소스를 컴파일 하는 것이다. 

    컴파일이란 것은 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다. 

    make 과정이 끝나고 나면 설치파일(Setup 파일 같은 것)이 생성된 상태라고 볼 수 있다.

     

     

    3) make install

     

    make installmake를 통해 만들어진 설치파일(setup)을 설치를 하는 과정이다.

    한마디로 build된 프로그램을 실행 할 수 있게 파일들을 알맞은 위치에다가 복사를 한다.

     

     

    configure, make, make install 에 대해서 잘 설명해주신 블로그이다 : )

    https://itdexter.tistory.com/325

     

    리눅스 - configure, make, make install 개념

    1. configure configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음) 서버환경에 맞쳐 makefile을 생성해주는 과정이다. 소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내

    itdexter.tistory.com

     

    3-6 ) Apache 실행

     

    이제 아파치를 실행하자!

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

     

    하지만 명령어를 입력하였더니 에러가 발생하였다.

     

    [ Issue 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을 정하라고 뜨는데 에러는 아니였다. 그래도 ServerName을 지정해보자!

     

    다음과 같은 명령어로 편집기를 열고 서버네임을 지정해주면 된다.

    $ vi /usr/local/apache2.4/conf/http.conf
    
    ServerName localhost

     

    이후 다음과 같이 진행하면 된다.

    $ ps -ef | grep httpd | grep -v grep
    $ netstat -anp | grep httpd
    
    #netstat 이 없을시 아래의 명령어로 설치
    $ apt-get install net-tools
    
    $ curl http://127.0.0.1
    
    # curl 이 없을시 아래의 명령어로 설치
    $ apt-get install curl

     

    curl 명령어를 입력해주었더니 다음과 같이 html 정보를 출력해주었다. 

     

    curl http://127.0.0.1 를 실행해 보면 ... It Works!가 뜨면 성공이다! 후후

     

    참고자료

     

    https://velog.io/@cxxerry/Ubuntu-Ubuntu%EC%97%90-APM-%EC%86%8C%EC%8A%A4-%EC%88%98%EB%8F%99-%EC%84%A4%EC%B9%98

     

    [Ubuntu] Ubuntu에 APM 소스 수동 설치(1) - Ubuntu&Apache

    APM(Apache, PHP, Mysql)이란? Apache는 Apache 재단에서 만든 HTTP 웹서버로, 세계에서 가장 많이 쓰이는 웹 서버 중 하나다. Apache의 역할은 서비스 사용자가 URL을 입력하면 URL에 해당하는 서버에 설치된 apa

    velog.io

    https://koras02.tistory.com/226

     

    [Apache] 아파치란 무엇인가? - 웹 서버 기본상식

    웹 서버를 세팅하면서 제일 많이 들어보셨을 Nginx와 Apache에 대해 알아보는 시간을 가져보도록 하겠습니다. 먼저 이 두가지를 알기위해 웹 서버의 기본적인 상식부터 정리해봅시다. 웹 서버? 웹

    koras02.tistory.com

    https://itdexter.tistory.com/325

     

    리눅스 - configure, make, make install 개념

    1. configure configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음) 서버환경에 맞쳐 makefile을 생성해주는 과정이다. 소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내

    itdexter.tistory.com

     

    댓글