핵심 요약
- 터미널 창에서 sudo apt-get install tasksel과 sudo tasksel install lamp-server 명령어를 입력합니다.
- 새 MySQL 데이터베이스를 보호하려면 sudo mysql_secure_installation을 입력한 후 관리자(root) 비밀번호를 설정합니다.
- Apache 테스트: Firefox 주소창에 https://localhost를 입력합니다. 'It Works' 문구와 Ubuntu 로고가 보이면 설치가 성공한 것입니다.
이 가이드는 Ubuntu 데스크톱 버전(20.04 LTS까지 지원)에서 LAMP 웹 서버를 가장 쉽게 설치하는 방법을 안내합니다. LAMP는 Linux, Apache, MySQL, PHP의 약자입니다.
Tasksel을 사용해 LAMP 웹 서버 설치하기
LAMP 스택 전체를 설치하는 것은 생각보다 매우 간단하며, 단 2개의 명령어만으로 완료할 수 있습니다.
온라인의 다른 튜토리얼들은 각 구성 요소를 개별적으로 설치하는 방법을 보여주지만, 실제로는 모든 구성 요소를 한 번에 설치할 수 있습니다.
먼저 터미널 창을 열어야 합니다. Ctrl + Alt + T 키를 동시에 누르면 됩니다.
터미널 창에 다음 명령어를 입력합니다:
sudo apt-get install tasksel
sudo tasksel install lamp-server위 명령어는 tasksel이라는 도구를 설치한 다음, tasksel을 사용하여 lamp-server라는 메타 패키지를 설치합니다.
MySQL 비밀번호 설정하기
이전 단계의 명령어를 실행하면 Apache, MySQL, PHP에 필요한 패키지들이 다운로드되고 설치됩니다. 이제 새 MySQL 데이터베이스를 보호하고 관리자 비밀번호를 추가해야 데이터베이스를 관리할 수 있습니다.
터미널을 다시 열고 다음 명령어를 실행하여 MySQL의 내장 보안 스크립트를 시작합니다:
sudo mysql_secure_installation
스크립트가 비밀번호 검증 설정을 묻습니다. N을 누르세요. 그렇지 않으면 보안 플러그인이 나중에 PHPMyAdmin 같은 도구와 충돌할 수 있습니다.
관리자(root) 비밀번호를 입력하라는 메시지가 나타납니다. 이 비밀번호는 로그인 비밀번호와 다르며, 원하는 값으로 설정할 수 있습니다. 이 비밀번호의 소유자는 사용자 생성·삭제, 권한, 스키마, 테이블 등 데이터베이스 서버 전체를 관리할 수 있으므로 최대한 안전하게 만드는 것이 좋습니다.
비밀번호를 입력한 후에는 서버를 보호하기 위한 몇 가지 추가 질문이 나옵니다. 모두 Y로 답변하세요.
명령 프롬프트로 돌아오면 서버가 정상 작동하는지 테스트할 수 있습니다.
Tasksel이란 무엇인가?
Tasksel은 여러 패키지를 한 번에 설치할 수 있게 해주는 도구입니다. 앞서 설명했듯이 LAMP는 Linux, Apache, MySQL, PHP의 약자이며, 하나를 설치하면 나머지도 함께 설치하는 경우가 일반적입니다.
tasksel 명령어는 다음과 같이 단독으로 실행할 수 있습니다:
sudo tasksel
그러면 설치 가능한 패키지 또는 패키지 그룹 목록이 담긴 창이 나타납니다. 예를 들어 KDE 데스크톱, Lubuntu 데스크톱, 메일 서버, openSSH 서버 등을 설치할 수 있습니다.
tasksel로 소프트웨어를 설치하면 하나의 패키지가 아니라, 하나의 큰 기능을 이루는 관련 패키지들의 집합을 설치하는 것입니다. 우리의 경우 그 '큰 기능'이 바로 LAMP 서버입니다.
Apache 서버에 대한 몇 가지 참고 사항
Apache는 Linux에서 사용할 수 있는 여러 웹 서버 중 하나입니다. 그 외에도 Lighttpd, NGINX 등이 있습니다.
MySQL은 정보를 저장하고 표시함으로써 웹 페이지를 인터랙티브하게 만들어주는 데이터베이스 서버입니다.
마지막으로 PHP(Hypertext Preprocessor)는 서버 측 코드와 웹 API를 만드는 데 사용되는 스크립팅 언어로, HTML, JavaScript, CSS 같은 클라이언트 측 언어에서 호출하여 사용할 수 있습니다.
이 글에서는 웹 개발을 배우려는 초보 개발자가 자신의 작업물을 위한 개발 환경이나 테스트 환경을 구축할 수 있도록 Ubuntu 데스크톱 버전에 LAMP를 설치하는 방법을 소개합니다. Ubuntu 웹 서버는 가정용 내부 웹 페이지(인트라넷)로도 활용할 수 있습니다.
웹 서버를 전 세계에 공개할 수도 있지만, 가정용 컴퓨터로는 현실적이지 않습니다. 일반적으로 인터넷 제공업체(ISP)는 컴퓨터의 IP 주소를 수시로 변경하기 때문에 DynDNS 같은 서비스를 이용해 고정 IP를 확보해야 하며, 가정용 인터넷 회선의 대역폭도 웹 페이지 서비스에는 부족할 가능성이 높습니다.
또한 웹 서버를 외부에 공개하면 Apache 서버 보안, 방화벽 설정, 모든 소프트웨어의 패치 관리까지 직접 책임져야 합니다.
전 세계 누구나 볼 수 있는 웹사이트를 만들고 싶다면, 이런 번거로운 작업을 대신 처리해주는 CPanel 호스팅을 제공하는 웹 호스팅 업체를 이용하는 것이 좋습니다.
Apache 테스트 방법
Apache가 정상 작동하는지 확인하는 가장 쉬운 방법은 다음과 같습니다:
런처의 아이콘(위에서 3번째)을 클릭해 Firefox를 실행합니다.
주소창에 https://localhost를 입력합니다.
아래 이미지와 같은 웹 페이지가 나타나야 합니다. 페이지에 'It Works' 문구와 함께 Ubuntu 로고 및 Apache 단어가 보이면 설치가 성공적으로 완료된 것입니다.
현재 보이는 페이지는 임시(플레이스홀더) 페이지이며, 직접 디자인한 웹 페이지로 교체할 수 있습니다. 자신의 웹 페이지를 추가하려면 /var/www/html 폴더에 파일을 저장해야 합니다.
현재 보이는 페이지의 이름은 index.html입니다. 이 페이지를 편집하려면 /var/www/html 폴더에 대한 권한이 필요합니다. 권한을 부여하는 방법은 여러 가지가 있지만, 다음 방법을 권장합니다.
터미널 창을 열고 다음 명령어를 입력합니다:
sudo gpasswd -a username www-data
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R g+rwx /var/www/html첫 번째 명령어의 "username"을 실제 사용자 이름으로 바꾸세요. 권한이 적용되려면 로그아웃 후 다시 로그인해야 합니다. 그래도 적용되지 않으면 컴퓨터를 재시작하세요.
PHP 설치 확인 방법
다음 단계는 PHP가 올바르게 설치되었는지 확인하는 것입니다.
터미널 창을 열고 다음 명령어를 입력합니다:
sudo nano /var/www/html/phpinfo.php
Vim, Emacs 또는 Gedit을 선호한다면 Nano 대신 해당 편집기를 사용해도 됩니다.
nano 편집기 안에 다음 내용을 입력합니다:
<?php phpinfo(); ?>
Ctrl + O로 파일을 저장하고, Ctrl + X로 편집기를 종료합니다.
다음으로, 서버가 파일에 접근하고 실행할 수 있도록 권한과 소유권을 변경합니다.
sudo chown www-data:www-data /var/www/html/phpinfo.php
sudo chmod +x /var/www/html/phpinfo.phpFirefox 브라우저를 열고 주소창에 다음을 입력합니다:
https://localhost/phpinfo.php
PHP가 올바르게 설치되었다면 위 이미지와 유사한 페이지가 표시됩니다.
PHPInfo 페이지에는 설치된 PHP 모듈 목록, 실행 중인 Apache 버전 등 다양한 정보가 포함되어 있습니다.
개발 중에는 이 페이지를 열어두고 프로젝트에 필요한 모듈이 설치되어 있는지 수시로 확인하는 것이 좋습니다.
MySQL Workbench 소개
MySQL은 명령줄만으로 관리하기가 까다롭기 때문에 다음 두 가지 도구를 추가로 설치하는 것을 권장합니다:
- MySQL Workbench
- PHPMyAdmin
MySQL 테스트는 터미널 창에서 다음 간단한 명령어로 할 수 있습니다:
sudo mysqladmin -u root -p status
비밀번호를 입력하라는 메시지가 나오면 Ubuntu 비밀번호가 아닌 MySQL root 사용자의 비밀번호를 입력해야 합니다.
MySQL이 실행 중이라면 다음과 같은 출력이 표시됩니다:
Uptime: 6269 Threads: 3 Questions: 33 Slow queries: 0 Opens: 112 Flush tables: 1 Open tables: 31 Queries per second avg: 0.005
MySQL Workbench를 설치하려면 터미널을 열고 다음 명령어를 실행합니다:
sudo apt install mysql-workbench
만약 Ubuntu가 최신 릴리스용 MySQL Workbench 패키지를 아직 제공하지 않는다면 공식 다운로드 페이지를 확인하세요. 경우에 따라 이전 Ubuntu 릴리스용 패키지를 설치해도 정상 작동합니다.
패키지를 받았다면 apt로 설치합니다. 패키지 이름과 버전 번호는 실제 다운로드한 파일명으로 바꿔주세요:
cd ~/Downloads
sudo apt install ./mysql-workbench-community_X.X.XX-ubuntuXX.XX_amd64.debMySQL Workbench를 실행하기 전에 관리용 사용자 계정이 필요합니다. 보안상 root로 로그인할 수 없으므로 별도의 사용자를 만들어야 합니다. 가장 좋은 방법은 관리하려는 데이터베이스(또는 데이터베이스 그룹)마다 새 사용자를 생성하는 것입니다. 예를 들어 WordPress 사이트를 구축한다면 다음과 같이 합니다:
sudo mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER `wpadmin`@`localhost` IDENTIFIED BY 'userpassword';
GRANT ALL ON wordpress.* TO `wpadmin`@`localhost`;
FLUSH PRIVILEGES;
\q이 명령어는 WordPress용 새 데이터베이스와, 이를 관리할 비밀번호 'userpassword'를 가진 'wpadmin'이라는 MySQL 사용자를 생성합니다.
설치가 완료되면 런처에서 Applications(응용 프로그램) 아이콘을 누르고 검색창에 'MySQL'을 입력합니다.
돌고래 아이콘이 MySQL Workbench를 나타냅니다. 아이콘이 나타나면 돌고래 아이콘을 선택하세요.
MySQL Workbench를 처음 열면 창 하단에 기본 연결 항목이 표시됩니다. 이를 선택한 후, MySQL Connections 바로 위에 있는 렌치(편집) 아이콘을 누릅니다.
새 창이 열리며 연결 정보를 수정할 수 있습니다. Username의 root를 앞서 생성한 사용자 이름으로 변경하세요.
연결할 때마다 비밀번호를 입력하기 싫다면 Password 옆의 Store in Keychain을 선택하고 데이터베이스 사용자의 비밀번호를 입력합니다. 완료되면 창을 닫습니다.
연결 항목을 다시 선택하면 데이터베이스에 접속됩니다.
MySQL Workbench는 상당히 강력한 도구이지만 다소 느린 편입니다.
왼쪽 사이드바에서 MySQL 서버의 어떤 부분을 관리할지 선택할 수 있습니다:
- 서버 상태 확인
- 클라이언트 연결 목록 조회
- 사용자 및 권한 관리
- 시스템 변수 관리
- 데이터 내보내기
- 데이터 가져오기
서버 상태 옵션에서는 서버 실행 여부, 가동 시간, 서버 부하, 연결 수 등 다양한 정보를 확인할 수 있습니다.
클라이언트 연결 옵션은 현재 MySQL 서버에 접속 중인 연결 목록을 보여줍니다.
사용자 및 권한 메뉴에서는 새 사용자를 추가하거나 비밀번호를 변경하고, 사용자별로 데이터베이스 스키마에 대한 권한을 설정할 수 있습니다.
MySQL Workbench 화면 좌측 하단에는 데이터베이스 스키마 목록이 있습니다. 마우스 오른쪽 버튼을 클릭하고 Create Schema를 선택하면 새 스키마를 추가할 수 있습니다.
스키마를 클릭하면 테이블, 뷰, 저장 프로시저, 함수 같은 객체 목록을 펼쳐서 볼 수 있습니다.
객체를 오른쪽 클릭하면 새 테이블 같은 새 객체를 생성할 수 있습니다.
MySQL Workbench의 오른쪽 패널에서 실제 작업을 수행합니다. 예를 들어 테이블을 만들 때 컬럼과 데이터 타입을 추가할 수 있으며, 저장 프로시저 생성 시 기본 템플릿이 에디터에 제공되어 실제 코드를 작성하면 됩니다.
PHPMyAdmin 설치 방법
MySQL 데이터베이스 관리에 널리 쓰이는 도구가 PHPMyAdmin입니다. 이 도구를 설치하면 Apache, PHP, MySQL이 모두 올바르게 작동하는지 최종적으로 확인할 수 있습니다.
터미널 창을 열고 다음 명령어를 입력합니다:
sudo apt install phpmyadmin
설치된 웹 서버가 무엇인지 묻는 창이 나타납니다.
기본값이 이미 Apache로 설정되어 있으므로 tab 키로 OK 버튼을 선택한 후 Enter(return)를 누릅니다.
PHPMyAdmin과 함께 사용할 기본 데이터베이스를 생성할지 묻는 창이 나타납니다.
tab 키로 Yes를 선택한 후 Enter를 누릅니다.
PHPMyAdmin이 데이터베이스를 관리할 사용자 이름을 요청합니다. 기본값은 'phpmyadmin'이며, 그대로 두거나 기억하기 쉬운 이름으로 변경할 수 있습니다.
마지막으로 PHPMyAdmin 데이터베이스의 비밀번호를 설정합니다. PHPMyAdmin에 로그인할 때마다 사용할 안전한 비밀번호를 입력하세요.
설치가 진행되고 완료되면 명령 프롬프트로 돌아옵니다.
다음 단계는 필요할 수도 있고 아닐 수도 있습니다. Ubuntu 20.04 LTS 테스트 환경에서는 필요하지 않았습니다. 먼저 PHPMyAdmin을 사용해보고, 바로 작동하지 않을 때 이 단계로 돌아오세요.
PHPMyAdmin을 위해 Apache를 구성하려면 다음 명령어들을 실행합니다:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo systemctl reload apache2.service위 명령어는 /etc/phpmyadmin 폴더의 apache.conf 파일에 대한 심볼릭 링크를 /etc/apache2/conf-available 폴더에 생성합니다.
두 번째 줄은 Apache 내에서 phpmyadmin 설정 파일을 활성화하고, 마지막 줄은 Apache 웹 서비스를 다시 로드합니다.
이제 PHPMyAdmin을 통해 다음과 같이 데이터베이스를 관리할 수 있습니다:
- Firefox를 엽니다
- 주소창에 https://localhost/phpmyadmin을 입력합니다
- 비밀번호 필드에 PHPMyAdmin 비밀번호를 입력하고 Go 버튼을 누릅니다
PHPMyAdmin 관리 인터페이스에 접속되며, 여기서 데이터베이스를 관리할 수 있습니다.
PHPMyAdmin은 MySQL 데이터베이스를 관리하기 위한 웹 기반 도구입니다.
왼쪽 패널에는 데이터베이스 스키마 목록이 표시됩니다. 스키마를 클릭하면 데이터베이스 객체 목록이 펼쳐집니다.
상단 아이콘 바에서는 다음과 같은 다양한 MySQL 기능을 관리할 수 있습니다:
- 데이터베이스
- SQL 편집기
- 서버 상태
- 사용자 계정
- 데이터 내보내기
- 데이터 가져오기
- 설정
- 복제(Replication)
- 변수
- 문자셋
- 엔진
- 플러그인
추가 학습 자료
이제 데이터베이스 서버가 가동 중이므로, 본격적인 웹 애플리케이션 개발을 시작할 수 있습니다.
HTML, CSS, ASP, JavaScript, PHP를 배우기에 좋은 출발점은 W3Schools입니다.
이 사이트에는 클라이언트 측과 서버 측 웹 개발에 대한 방대하면서도 따라 하기 쉬운 튜토리얼이 있습니다.
심도 깊은 전문 지식까지 얻기는 어렵지만, 기본기와 핵심 개념을 충분히 익혀 개발 여정을 시작하기에 충분합니다.