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/> |
1-4. 방어벽 프로그램 ufw를 활성화 합니다. (테스트 목적이라면 꼭 할 필요없습니다.)
webnautes@webnautes-VirtualBox:~$ sudo ufw enable |
방어벽 기본 설정을 변경합니다.
webnautes@webnautes-VirtualBox:~$ sudo ufw default deny incoming webnautes@webnautes-VirtualBox:~$ sudo ufw default allow outgoing |
SSH 접속을 허용합니다.
webnautes@webnautes-VirtualBox:~$ sudo ufw allow ssh |
웹서버에서 사용할 포트 80(HTTP), 443(HTTPS)에 따라 다음 세가지 중 하나를 선택합니다.
webnautes@webnautes-VirtualBox:~$ sudo ufw app info "Apache"
webnautes@webnautes-VirtualBox:~$ sudo ufw app info "Apache Full" |
선택한 프로필을 방어벽에 적용합니다.
webnautes@webnautes-VirtualBox:~$ sudo ufw allow in "Apache Full" |
현재 방어벽 정책은 다음처럼 확인할 수 있습니다.
webnautes@webnautes-VirtualBox:~$ sudo ufw status numbered |
자세한 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 |
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
'WEB > WEB 개발환경' 카테고리의 다른 글
AWS p2.xlarge (NVIDIA Tesla K80 GPU) 엔비디아 그래픽 카드 드라이버 설치 방법 (0) | 2023.10.13 |
---|---|
AWS 프리 티어 가입부터 EC2 생성 및 SSH 접속까지 (1) | 2021.05.03 |
Windows 10에서 Node.js 사용해보기 (0) | 2021.03.22 |
Ubuntu 18.04에 LAMP ( Apache2, MySQL , PHP 7) 설치하는 방법 (90) | 2018.06.07 |
Ubuntu 16.04에서 php7 + netbeans 개발환경 만들기 (0) | 2017.01.05 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!