ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ubuntu 16.04에 LAMP ( Apache2, MySQL , PHP7) 설치하는 방법
    개발 환경/WEB(Apache2, PHP, MySQL) 2018. 10. 2. 09:57


    Apache2 웹서버, MySQL 데이터베이스 서버, PHP를 Ubuntu에 설치하는 과정을 소개합니다.

    LAMP는  운영 체제와 오픈 소스 소프트웨어 스택의 조합으로 Linux, Apache, MySQL, PHP의 첫글자만 가지고 만든 약어입니다.

    본 포스팅에서는 Ubuntu 16.04 LTS가 설치되어 있는 PC에 LAMP 스택을 설치하는 방법을 설명합니다


    webnautes@webnautes-VirtualBox:~$ lsb_release -a

    No LSB modules are available.

    Distributor ID: Ubuntu

    Description: Ubuntu 16.04.5 LTS

    Release: 16.04

    Codename: xenial





    1.Apache2 웹서버 설치


    2.MySQL 서버 설치


    3.PHP 설치


    4. phpMyAdmin 설치(옵션)


    5. 참고




    마지막 업데이트: 2018. 10.  2





    설치하는 모든 과정을 터미널 기반으로 설명합니다. Ctrl + Alt + T를 누르면 터미널이 실행됩니다.





    패키지 설치를 시작하기 전에 저장소의 패키지 목록을 업데이트하고 기존에 설치되어 있던 패키지를 업그레이드 해줍니다.


    sudo apt update && sudo apt upgrade



    sudo와 함께 명령을 실행해야 하는 경우에는, 현재 로그인 중인 사용자의 암호를 입력해주어야 패키지 업그레이드가 진행 됩니다.




    1. Apache2 웹서버 설치

    웹서버(Web Server)는 웹브라우저 같은 클라이언트의 요청을 받아서 웹문서나 이미지 등을 전송해주는 역활을 합니다.



    1-1. Apache2 웹서버 패키지를 설치합니다.


    $ sudo apt install apache2



    y를 입력 후 엔터를 누르면 설치가 진행됩니다.





    1-2. 정상적으로 설치되었는지 확인하기 위해 웹 브라우저를 실행하고 웹 주소로 localhost 또는 서버 아이피 주소를 입력합니다.




    다음과 같은 웹페이지가 보이면 정상적으로 설치된 것입니다.





    1-3. Apache2의 디폴트 Document Root는 /var/www/html 입니다.

    이 경로에  HTML 또는 PHP 파일 등을 생성하면 웹 브라우저를 통해 해당 파일을 요청할 수 있습니다.




    /etc/apache2/apache2.conf 파일을 수정하면 디폴트 Document Root를 수정할 수 있습니다.

    변경할 디렉토리의 퍼미션과 소유자 지정 등이 추가로 필요합니다.


    <Directory /var/www/>
           Options Indexes FollowSymLinks
           AllowOverride None
           Require all granted
    </Directory>




    1-4. 방어벽 프로그램 ufw를 활성화 합니다. (테스트 목적이라면 꼭 할 필요없습니다.)


    webnautes@webnautes-VirtualBox:~$ sudo ufw enable
    방화벽이 활성 상태이며 시스템이 시작할 때 사용됩니다



    방어벽 기본 설정을 변경합니다.


    webnautes@webnautes-VirtualBox:~$ sudo ufw default deny incoming
    기본 incoming 정책이 'deny'로 바뀌었습니다
    (당신의 규칙에 따라 업데이트를 하시는 걸 명심하십시오)


    webnautes@webnautes-VirtualBox:~$ sudo ufw default allow outgoing
    기본 outgoing 정책이 'allow'로 바뀌었습니다
    (당신의 규칙에 따라 업데이트를 하시는 걸 명심하십시오)



    SSH 접속을 허용합니다.


    webnautes@webnautes-VirtualBox:~$ sudo ufw allow ssh
    규칙이 추가되었습니다
    규칙이 추가되었습니다 (v6)



    웹서버에서 사용할 포트 80(HTTP), 443(HTTPS)에 따라 다음 세가지 중 하나를 선택합니다.


    webnautes@webnautes-VirtualBox:~$ sudo ufw app info "Apache"
    프로필: Apache
    제목: Web Server
    설명: Apache v2 is the next generation of the omnipresent Apache web server.

    포트:
     80/tcp



    webnautes@webnautes-VirtualBox:~$ sudo ufw app info "Apache Secure"
    프로필: Apache Secure
    제목: Web Server (HTTPS)
    설명: Apache v2 is the next generation of the omnipresent Apache web server.

    포트:
     443/tcp


    webnautes@webnautes-VirtualBox:~$ sudo ufw app info "Apache Full"
    프로필: Apache Full
    제목: Web Server (HTTP,HTTPS)
    설명: Apache v2 is the next generation of the omnipresent Apache web server.

    포트:
     80,443/tcp



    선택한 프로필을 방어벽에 적용합니다.


    webnautes@webnautes-VirtualBox:~$ sudo ufw allow in "Apache Full"
    규칙이 추가되었습니다
    규칙이 추가되었습니다 (v6)



    현재 방어벽 정책은 다음처럼 확인할 수 있습니다.


    webnautes@webnautes-VirtualBox:~$ sudo ufw status numbered
    상태: 활성

        목적                      동작 출발
        --                      -- --
    [ 1] 22/tcp                     ALLOW IN Anywhere      
    [ 2] Apache Full                ALLOW IN Anywhere      
    [ 3] 22/tcp (v6)                ALLOW IN Anywhere (v6)      
    [ 4] Apache Full (v6)           ALLOW IN Anywhere (v6)



    자세한 ufw 사용법은 참고 [3]에서  확인하세요.




    2. MySQL 서버 설치


    MySQL은 관계형 데이터베이스 관리 시스템(relational database management system, RDBMS)입니다.

    다중 사용자가 다수의 데이터베이스에 접근할 수 있도록 서버를 구성합니다.


    2-1. MySQL 서버 패키지를 설치합니다.


    $ sudo apt install mysql-server





    2-2. MySQL 관리자( root ) 패스워드를 물어봅니다. 입력해주면 설치가 계속 진행됩니다.

     




    2-3. MySQL 서버에 로그인해봅니다.





    3. PHP 설치

    대부분의 웹서버는 PHP 같은 서버 사이드 스크립트 언어(Server-side scripting)를 지원합니다.

    단순한 HTML 문서에서는 할 수 없는 동적 웹페이지 생성이나 데이터베이스로부터 조회하거나 수정하는 등의 일을 할 수 있습니다.


    3-1. php 패키지를 설치합니다.


    $ sudo apt install php php-mysql




    추가로 다음 명령을 실행합니다.

    (참고 https://askubuntu.com/questions/973316/php7-on-16-04-not-working-after-reinstall-of-apache )


    $ sudo apt install libapache2-mod-php7.0  
    $ sudo a2enmod php7.0                     
    $ sudo systemctl restart apache2.service  




    3-2. PHP가 정상적으로 설치되었는지 확인하기 위해  /var/www/html경로에 info.php 파일을 편집기로 열어서


    $ sudo nano /var/www/html/info.php



    다음 내용을 입력합니다.  Ctrl + O를 누른 후, 엔터를 누르면 저장이 됩니다.

    Ctrl + X를 눌러서 빠져나옵니다.


    <?php phpinfo(); ?>




    3-3. 웹 브라우저를 실행하고 웹 주소로 localhost/info.php 또는 서버 아이피 주소/info.php를 입력합니다.




    문제 없으면 아래 캡쳐화면처럼 설치된 PHP 정보를 보여줍니다.





    4. phpMyAdmin 설치(옵션)

    phpMyAdmin은 MySQL 데이터베이스를 관리할 수 있는 웹 인터페이스 입니다.



    4-1. phpmyadmin 패키지를 설치합니다.


    $ sudo apt install phpmyadmin





    4-2. phpMyAdmin을 실행하기 위한 설정을 자동으로 할 웹서버를 선택합니다.

    스페이스바를 눌러서  apache2를 선택하고 엔터를 누르면 설치가 계속 진행됩니다.





    4-3. phpMyAdmin을 위한 설정을 데이터베이스에 적용하기 위해 예를 선택하고 엔터를 누릅니다.





    4-4. MySQL에 등록할 phpMyAdmin을 위한 암호를 입력해줍니다.






    4-5. 이제 웹 브라우저에서 localhost/phpmyadmin로 접속합니다.




    MySQL 관리자 계정(root) 정보를 입력하고 실행을 클릭합니다.






    4-6. 다음과 같은 화면을 볼 수 있습니다.

    데이터베이스 및 테이블 생성, SQL 질의등 다양한 작업을 웹기반으로 할 수 있습니다.





    5. 참고

    [1]


    [2] https://ko.wikipedia.org/wiki/웹_서버


    [3] https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04


    [4] http://kwonnam.pe.kr/wiki/database/mysql/charset



    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 후원 또는 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구 독 하 기
    후 원 하 기


    댓글 57

    • 이전 댓글 더보기
    • 2017.08.08 23:22


      비밀댓글입니다

    • php7.1과 php5.6 2017.08.10 11:53


      중에서 하나만 깔면 되나요?

    • 2017.08.22 10:56


      비밀댓글입니다

    • 주인장님 2017.11.16 00:27


      어쩔때는 libapache2-mod-php7.0을 깔아서 연동해야되고
      어쩔땐 자동으로 되던데, 왜 상황따라 다른건가요.?

    • 윤재영 2017.11.29 21:21


      안녕하세요 데이터 베이스 공부를 하구있는데요 관련 소스 코드로 wamp server프로그램을 이용하여 웹서버를 구현하였는데요.
      로컬 호스트 또는 서버 ip주소 /php파일 이름 이렇게 접속 시 한글이 깨지는현상이있는데 수정하는 방법 알 수 있을까요?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.11.30 12:39 신고


        다음 포스팅의 2.2에 나온대로 utf-8 인코딩으로 php 파일로 저장해야 합니다.

        Android PHP MySQL 예제(Windows 서버) - 데이터베이스에 데이터 입력하기
        http://webnautes.tistory.com/1151

    • 감사합니다 2017.12.15 17:11


      apache, mysql, php5.6 까지 설치완료했습니다. phpmyadmin도 설치되었다고 확인되는데 웹브라우져에서 실행이 안되네요. 404 error 생겨서요. 도와주세요.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.12.15 17:16 신고


        /var/www/html에 info.php파일을 생성하고 localhost/info.php를 테스트하셨나요?

      • 감사합니다 2017.12.15 18:05


        네. 확인했어요. 그래고 폴더 열어서 확인해보면 info.php 파일이 있는 것도 확인했고요.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.12.15 18:07 신고


        그냥 localhost하면 아파치 관련 글들이 보이지 않나요?

      • 감사합니다 2017.12.15 18:09


        메세지가

        not found

        the requested URL /phpmyadmin was not found on this server
        밑줄
        Apache/2.4.18 (Ubuntu) Server at localhost Port 80

        이라고 하는데요.

      • 감사합니다. 2017.12.15 18:10


        localhost 하면 아파치 관련 글들이 보여요.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.12.15 18:48 신고


        localhost/info.php로 접속은 되는데
        localhost/phpmyadmin로 접속안되는 거라면
        phpmyadmin을 재설치해보세요...

      • 감사합니다 2017.12.15 21:02


        재설치를 했더니 최신버전이 설치되어 있다고 하는군요. 처음부터 다시 해 보도록 할게요.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.12.15 21:10 신고


        다음 명령으로 삭제후 다시 설치해보세요..
        설정이 잘못되었을 수도 있습니다.

        $ sudo apt-get purge phpmyadmin

    • phpmyadmin 오류 나시는 분들 2017.12.27 03:15


      the requested URL /phpmyadmin was not found on this server
      이러한 오류가 발생하시면
      $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
      $ sudo /etc/init.d/apache2 reload
      명령어 처리 후
      브라우저에서 다시 phpmyadmin을 실행해보세요

    • Favicon of https://littlecold2.tistory.com BlogIcon 미 냉 2018.01.20 17:17 신고


      늘 잘보고 있습니다. 감사합니다.

    • 정윤규 2018.02.28 18:53


      오드로이드 xu4를 이용하여 apm을 설치 할려고 구글링을 많이 했지만 번번히 실패를 했는데 운영자님 Ubuntu 16.04에 LAMP ( Apache2, MySQL , PHP5 / PHP7) 설치하는 방법 예제를 따라 하니 정말 신기하게도 단 한번에 xe까지 설치하는 기적을 보았습니다.^^
      업데이트가 2018년 2월 27일자로 되어 있는게 단순히 올린 예제는 아닌듯 합니다.
      멈춤보다 천천히 라도 라는 대문 문구가 더 빛나 보이는 웹입니다. 고맙습니다.^^

    • 사용금지단어 2018.03.12 17:16


      지난버 포스팅 따라 설치해서 xe까지 성공 했는데 오늘다시 해보니 php5.6 패키지 설치가 안되네요
      아카이브를 받을수 없다고 나오네요! 어디를 손봐야 할까요?^^

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.03.12 17:28 신고


        어떤 에러가 뜨는 지요?
        포스팅에서 추가한 ppa 저장소 살펴보니 php5.6 패키지가 있어서요.

        apt-cache search php5.6하면 패키지가 안보이나요?

      • 사용금지단어 2018.03.12 18:05


        오류:1 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libmcrypt4 amd64 2.5.8-3.3
        403 Forbidden
        E: http://kr.archive.ubuntu.com/ubuntu/pool/universe/libm/libmcrypt/libmcrypt4_2.5.8-3.3_amd64.deb 파일을 받는데 실패했습니다 403 Forbidden

        E: 아카이브를 받을 수 없습니다. 아마도 apt-get update를 실행해야 하거나 --fix-missing 옵션을 줘서 실행해야 할 것입니다.

        이렇게 나오네요..!^^;

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.03.12 18:33 신고


        에러 메시지에 나온대로 다음 두 명령을 해보셨나요?

        apt-get update

        apt-get update --fix-missing

      • 사용금지단어 2018.03.12 19:05


        사실 제가 리눅스를 배우고 있는 중이라 메세지를 전확하게 이해하지 못했습니다. 옵션을 어떻게 주는지 잘 몰라서 오는 문제였습니다. 죄송합고, 고맙습니다. 저는 이렇게 부딫히며 배우는 스타일이라 누군가가 좀 피곤해 지기도 합니다.^^;

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.03.12 19:08 신고


        다 그러면서 배우는 거죠^^

      • 사용금지단어 2018.03.14 11:32


        운영자님 어려운 부탁을 드려도 될까요?^^;
        리눅스도 배워야 하지만 phpmyadmin 데이터 베이스 생성과 사용자 계정 추가 ftp연결 까지 관련글을 포스팅 해주실수 없을까? 조심스럽게 여쭤 봅니다.^^

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.03.15 20:54 신고


        mysql을 공부하세요...

        그러면 phpmyadmin은 저절로 사용법을 알게 됩니다.

        포스팅하기엔 내용이 많아서 힘들 듯합니다.

    • 학생 2018.04.28 23:10


      정말 감사합니다. 생활코딩에서 apache mysql php 설치세팅 관련 영상을 보고 해봤는데 도저히 안되서 다른방법을 찾다 이것 보고 전부 해결했습니다. 감사합니다.

    • hero 2018.06.06 03:31


      localhost/info.php 파일을 다른 기기 에서 (IP주소)/info.php로 접속하려고 하는데 혹시 뭘 공부해야할까요?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.06.06 06:24 신고


        공유기를 사용하여 내부망 접근하는 것이 아닌듯하네요..

        고정 아이피를 할당받아서 사용할 수 있는 서버를 빌리거나.

        공유기로 고정아이피를 사용할 수 있는지 찾아보세요

    • 감사합니다 2018.06.20 16:08


      올리신글 잘 보고 전부 설치를 완료했습니다.

      그런데 localhost/phpmtadmin 을 입력하고

      웹페이지로 들어가서 아이디 비번입력후에 데이터베이스를 새로 만들어보고 싶은데

      올리신 스샷과는 다르게 저에게는 [권한없음] 이라는게 새 데이터베이스 만들기 아래에 있어서 만들수가 없습니다.

      phpmyadmin로 로그인해서 그런걸까요? root로그인은 되질않아서요..

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.06.20 16:14 신고


        최근에 MYSQL 정책이 바뀌어서 root로 로그인이 안됩니다. 아래 포스팅처럼 sudo mysql로 db 생성하고 이후 과정은 사용자 계정으로 진행해야합니다.
        사용하신 툴로도 가능합니다.


        Ubuntu 18.04에 LAMP ( Apache2, MySQL , PHP 7) 설치하는 방법

        http://webnautes.tistory.com/1185

    • 알로베나 2018.06.28 11:06


      mysql said: mysql: [Warning] mysql: Empty value for 'port' specified.
      │ Will throw an error in future versions ERROR 1819 (HY000) at line 1:
      │ Your password does not satisfy the current policy requirements

      phpmyadmin 설치 와중에 이런 문구가 발생하여 설치가 되지않씁니다.. 어떻게 해야하나요?

    • thomas 2018.10.25 19:31


      좋은정보 감사합니다.

    • 감사합니다 2018.11.19 01:10


      쉽게 설명해주셔서 설치 무사히 끝냈어요
      좋은글 정말정말 감사합니다 !

    • 우앙 2019.01.03 16:55


      질문하나 드리겠습니다 .. 말씀하신대로 설치 잘 되었고 info.php까지 잘 나왔으나.
      mysql 연동 과정에서 connect라는 php파일을 만들어 연동하려고 했으나 localhost/connect.php 로 접속했을때
      빈화면만 뜹니다. 그래서 아무것도 표현이 안되나 싶어서 echo로 아무 글자나 출력해봤더니 글자는 잘 출력 되었습니다. 무엇이 문제일까요..?

    • 김선샘 2019.01.05 13:42


      안녕하세요 ^^ 항상 이쪽글보면서 VPS 셋팅해서 이용중인사람입니다.몇가지 질문이 있어서요 여러군데 구글링을 해보고 알아보아도 어려워서 문의드립니다.ㅠㅠ
      혹시 예전에는 php5.6 설치 방법이 있었는데. 작성글 업데이트되면서 5.6 설치방법을 몰라서요 ; 알려주시면 감사하겠습니다..ㅠㅠ

      질문이 두가지입니다.

      1. php5.6 설치방법
      2. 현제vps 를 사용하고있으나. VPS 에 홈페이지(웹사이트) 두개.새개를 붙여서 사용할수있다들었습니다.
      EX) 우분투16.04 서버(VPS) -> A홈페이지(도메인:http://aaa.com - B홈페이지(도메인:http://bbb.com <- (A.B 사이트 서로다른 사이트)
      지금 홈페이지 3개를 운영중이나 모두 VPS 호스팅 3개를 이용하고있습니다. 저방법좀알수있을까요 ?
      var/www/html 에 홈페이지셋팅하여 사용중입니다. 항상 감사드립니다^^;;

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.01.05 14:07 신고


        php 5.6 설치 방법은 아래 글을 참고하세요

        https://www.imthi.com/blog/linux/install-php-5-6-on-ubuntu-16-04.php


        VPS는 사용안해봐서.. 도움을 못드릴듯합니다.

    • asd 2019.02.25 11:13


      브라우저에 localhost/phpmyadmin 접속하기전에 apache configuration 파일에 include 해줘야 합니다
      sudo -H nano /etc/apache2/apache2.conf
      마지막줄에 추가:
      Include /etc/phpmyadmin/apache.conf
      서버 재시작
      /etc/init.d/apache2 restart

    • 캣피 2019.04.15 17:02


      정리가잘되어있네요

      잘보고갑니다!!

Designed by Tistory.