리눅스(Linux) 환경에 APM 설치하기
APM이란?
웹 개발을 위한 세 가지 필수 도구인 Apache(웹 서버), PHP(언어), MySQL(데이터베이스) 를 묶어서 흔히 APM이라고 부릅니다. 리눅스에서는 이 조합을 특히 LAMP 스택 이라고도 부릅니다.
현업에서는 대부분 리눅스 서버 위에서 웹 서비스를 운영합니다. 로컬 개발 환경을 리눅스로 구성하면 실제 서버 환경과 동일하게 실습할 수 있는 장점이 있습니다.
1. Ubuntu에 APM 설치하기
가장 널리 쓰이는 리눅스 배포판인 Ubuntu 24.04 LTS를 기준으로 설명합니다. Debian 기반의 다른 배포판도 동일한 명령어를 사용합니다.
터미널을 열고 아래 명령어를 순서대로 입력합니다.
$ sudo apt update
$ sudo apt install apache2 php libapache2-mod-php php-mysql php-mbstring php-xml php-curl mysql-server
패키지 설명
apache2: 웹 서버php: PHP 언어 본체 (Ubuntu 24.04에서는 PHP 8.3이 설치됩니다)libapache2-mod-php: Apache와 PHP를 연결하는 모듈php-mysql: PHP에서 MySQL을 사용하기 위한 확장php-mbstring,php-xml,php-curl: 한글 처리, XML, HTTP 요청 등에 필요한 확장
2. MySQL 초기 보안 설정
설치 직후의 MySQL은 보안 설정이 취약한 상태입니다. 아래 명령어로 보안 설정 마법사를 실행합니다.
$ sudo mysql_secure_installation
터미널에서 몇 가지 질문이 나옵니다. 아래를 참고하여 진행하세요.
# 1. 비밀번호 강도 검증 플러그인 사용 여부를 묻습니다.
Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y [y 입력]
# 2. 비밀번호 강도를 선택합니다. (0: 낮음, 1: 중간, 2: 높음)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 [1 입력]
# 3. 새로운 MySQL root(관리자) 비밀번호를 설정합니다.
# 입력 시 화면에 아무것도 표시되지 않습니다. 당황하지 말고 타이핑 후 엔터를 치세요.
New password: [암호 입력]
Re-enter new password: [암호 입력]
# 4. 익명(anonymous) 사용자를 삭제합니다. (보안을 위해 삭제 권장)
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y [y 입력]
Success.
# 5. root 계정의 원격 접속을 차단합니다.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y [y 입력]
Success.
# 6. 기본으로 생성된 테스트 데이터베이스를 삭제합니다.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y [y 입력]
Success.
# 7. 변경한 권한 설정을 즉시 적용합니다.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y [y 입력]
Success.
All done!
3. 정상 설치 확인
각 프로그램이 제대로 설치됐는지 버전으로 확인합니다.
# Apache 버전 확인
$ apache2 -v
Server version: Apache/2.4.x (Ubuntu)
# PHP 버전 확인
$ php -v
PHP 8.3.x (cli) ...
# MySQL 버전 확인
$ mysql --version
mysql Ver 8.0.x ...
(출력되는 버전 정보는 설치 시점에 따라 다를 수 있습니다. 오류 메시지 없이 정보가 출력되면 정상입니다.)
브라우저에서 localhost를 열어 Apache 기본 페이지가 보이면 웹 서버도 정상 동작 중입니다.
4. PHP 파일 만들어보기
웹 서버의 홈 디렉토리는 /var/www/html 폴더입니다. 이 폴더에 파일을 저장하면 브라우저에서 볼 수 있습니다.
$ echo '<?php echo "안녕하세요, PHP!";' | sudo tee /var/www/html/test.php
브라우저에서 localhost/test.php를 열면 "안녕하세요, PHP!"가 출력됩니다.
5. 웹 서버 관리 명령어
$ sudo systemctl start apache2 # 웹 서버 시작
$ sudo systemctl stop apache2 # 웹 서버 중지
$ sudo systemctl restart apache2 # 웹 서버 재시작
$ sudo systemctl status apache2 # 웹 서버 현재 상태 확인
PHP 설정을 변경했거나 서버가 멈췄을 때는 restart 명령어로 재시작하면 됩니다.
꼭 알아두어야 할 기본 지식
홈 디렉토리
| 경로 | 설명 |
|---|---|
/var/www/html | PHP 파일을 저장하는 홈 디렉토리 |
'localhost'의 의미
localhost는 네트워크 상에서 '내 컴퓨터 자신'을 가리키는 특별한 주소입니다. IP 주소로는 127.0.0.1과 같습니다. 리눅스 서버의 IP 주소를 직접 입력해도 동일하게 접근할 수 있습니다.
컴퓨터 재시작 후
Ubuntu는 기본적으로 재시작 후에도 Apache와 MySQL이 자동으로 켜집니다. 만약 자동 시작이 꺼져 있다면 아래 명령어로 활성화할 수 있습니다.
$ sudo systemctl enable apache2
$ sudo systemctl enable mysql