소개
Ubuntu 서버에 웹 개발 환경을 구축하는 것은 많은 개발자와 시스템 관리자에게 필수적인 작업입니다.
이 가이드에서는 Ubuntu의 모든 버전(16.04, 18.04, 20.04, 22.04 등)에서 작동하는 Nginx, PHP, MariaDB 설치 방법을 단계별로 알아보겠습니다.
특히 Ubuntu 코드네임을 자동으로 감지하여 적용하는 방법을 통해 어떤 버전에서도 쉽게 설치할 수 있습니다.
준비 사항
- Ubuntu 서버 (16.04 이상)
- root 또는 sudo 권한이 있는 사용자 계정
- 인터넷 연결
1. APT 저장소 최적화하기
1.1 기존 APT 저장소 초기화
먼저 기존에 등록되어 있는 APT 저장소를 초기화합니다:
sudo cat /dev/null > /etc/apt/sources.list
1.2 카카오 미러 저장소 등록
한국에서 접속 속도가 빠른 카카오 미러 저장소를 사용합니다:
echo "deb http://mirror.kakao.com/ubuntu `lsb_release -cs` main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu `lsb_release -cs`-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu `lsb_release -cs`-security main restricted universe multiverse" | sudo tee /etc/apt/sources.list
팁: lsb_release -cs 명령어는 현재 Ubuntu의 코드네임(예: bionic, focal, jammy 등)을 자동으로 가져옵니다. 이를 통해 Ubuntu 버전에 관계없이 적절한 저장소를 사용할 수 있습니다.
1.3 패키지 정보 업데이트
저장소 변경 후 패키지 정보를 업데이트합니다:
sudo apt update
1.4 APT 관리 도구 설치
추가 저장소 관리를 위한 도구를 설치합니다:
sudo apt install software-properties-common
2. Nginx 설치 및 설정
2.1 Nginx 저장소 인증키 등록
공식 Nginx 저장소의 인증키를 등록합니다:
sudo curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
2.2 Nginx 저장소 추가
안정적인(stable) 버전의 Nginx 저장소를 추가합니다:
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
3. MariaDB 설치 및 설정
3.1 MariaDB 저장소 인증키 등록
MariaDB 공식 저장소의 인증키를 등록합니다:
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
3.2 MariaDB 저장소 추가
MariaDB 10.5 버전(작성 시점 기준 안정 버전)을 추가합니다:
echo "deb [arch=amd64,arm64,ppc64el] https://mirror.yongbok.net/mariadb/repo/10.5/ubuntu `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb.list
참고: 다른 버전의 MariaDB를 설치하려면 URL의 10.5 부분을 원하는 버전(예: 10.6, 10.7 등)으로 변경하세요. MariaDB 저장소 설정 가이드에서 더 많은 정보를 확인할 수 있습니다.
4. PHP 설치 및 설정
4.1 PHP 저장소 추가
최신 PHP 버전을 제공하는 Ondřej Surý의 PPA를 추가합니다:
sudo add-apt-repository ppa:ondrej/php
4.2 저장소 패키지 정보 업데이트
모든 저장소를 추가한 후 패키지 정보를 업데이트합니다:
sudo apt update
5. 웹 서버 스택 설치하기
5.1 Nginx 설치
웹 서버로 Nginx를 설치합니다:
sudo apt install nginx
설치 후 Nginx 상태 확인:
sudo systemctl status nginx
5.2 MariaDB 설치
데이터베이스 서버로 MariaDB를 설치합니다:
sudo apt install mariadb-server
MariaDB 보안 설정 실행(권장):
sudo mysql_secure_installation
5.3 PHP-FPM 설치
PHP 8.0과 FPM을 설치합니다:
sudo apt install php8.0-fpm
팁: 다른 버전의 PHP를 설치하려면 php8.0-fpm을 원하는 버전(예: php7.4-fpm, php8.1-fpm 등)으로 변경하세요.
5.4 필수 PHP 확장 모듈 설치
웹 개발에 필요한 주요 PHP 확장 모듈을 설치합니다:
sudo apt install php8.0-mbstring php8.0-gd php8.0-curl php8.0-xml php8.0-mysql php8.0-xdebug php8.0-zip
6. 설정 및 연동
6.1 Nginx와 PHP-FPM 연동 설정
Nginx 설정 파일을 편집하여 PHP 처리를 활성화합니다:
sudo nano /etc/nginx/conf.d/default.conf
다음과 같이 PHP 처리 설정을 추가합니다:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
6.2 설정 테스트 및 서비스 재시작
Nginx 설정을 테스트하고 서비스를 재시작합니다:
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl restart php8.0-fpm
7. 설치 확인
PHP 정보 페이지를 생성하여 설치를 확인합니다:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
이제 웹 브라우저에서 http://서버 IP/info.php
에 접속하여 PHP 정보를 확인할 수 있습니다.
문제 해결 및 자주 묻는 질문
Q: Nginx와 PHP-FPM 연결 시 오류가 발생합니다.
A: PHP-FPM 소켓 경로를 확인하세요. sudo find / -name "php\*.sock"
으로 정확한 경로를 찾을 수 있습니다.
Q: MariaDB에 원격으로 접속할 수 없습니다.
A: MariaDB 설정 파일(/etc/mysql/mariadb.conf.d/50-server.cnf
)에서 bind-address
를 확인하고 필요에 따라 수정하세요.
결론
이 가이드를 통해 Ubuntu 서버에 Nginx, PHP, MariaDB를 성공적으로 설치했습니다.
각 구성 요소는 최신 버전으로 설치되었으며, Ubuntu 코드네임 자동 감지 기능을 통해 모든 Ubuntu 버전에서 동일하게 적용할 수 있습니다.
웹 서버 환경 구축에 대한 추가 질문이나 문제가 있으면 댓글로 알려주세요!
댓글