이번 주차에서는 워드프레스를 위한 웹 서버 선택부터 설치, PHP 설정까지 단계별로 알아보겠습니다.
지난 주에 오라클 클라우드에 컴퓨트 인스턴스를 성공적으로 생성했습니다.
이제 워드프레스를 실행하기 위한 웹 서버와 PHP 환경을 구축할 차례입니다.
1. 워드프레스를 위한 웹 서버 선택
워드프레스를 호스팅하기 위해서는 웹 서버가 필요합니다. 가장 많이 사용 되는 두 가지 웹 서버는 Apache와 Nginx입니다. 각 서버의 특징을 비교해보겠습니다:
특징 | Apache | Nginx |
---|---|---|
구조 | 프로세스/스레드 기반 | 이벤트 기반 |
메모리 사용 | 상대적으로 많음 | 적음 (리소스 효율적) |
동시 연결 처리 | 연결당 스레드/프로세스 생성 | 비동기 이벤트 처리 |
설정 용이성 | .htaccess 파일로 쉬운 설정 | 중앙 집중식 구성 |
워드프레스 호환성 | 매우 높음 (기본적으로 지원) | 추가 설정 필요할 수 있음 |
확장성 | 모듈 시스템으로 확장 가능 | 모듈식이지만 다소 제한적 |
성능 | 정적 컨텐츠 처리 시 다소 느림 | 정적 컨텐츠 처리 우수 |
초보자와 일반적인 워드프레스 사이트에는 Apache가 설정이 간편하고 워드프레스와의 호환성이 높아 권장됩니다.
하지만 이 가이드에서는 더 높은 성능과 리소스 효율성을 위해 Nginx를 사용하겠습니다.
2. LEMP 스택 설치 (Linux, Nginx, MySQL, PHP)
워드프레스는 일반적으로 LAMP(Linux, Apache, MySQL, PHP) 또는 LEMP(Linux, Nginx, MySQL, PHP) 스택 위에서 실행됩니다.
이번 주차에서는 Nginx와 PHP를 설치하고, 다음 주차에서 MySQL을 설치하겠습니다.
1. 시스템 업데이트 확인
먼저 시스템 패키지를 최신 상태로 업데이트합니다:
sudo apt update
sudo apt upgrade -y
2. Nginx 웹 서버 설치
Nginx 웹 서버를 설치합니다:

sudo apt install nginx -y
설치 후 Nginx 서비스를 시작하고 부팅 시 자동 실행되도록 설정합니다:
sudo systemctl start nginx
sudo systemctl enable nginx
Nginx 상태를 확인합니다:
sudo systemctl status nginx
3. PHP 및 필요 모듈 설치
워드프레스는 PHP 기반 CMS이므로 PHP와 필요한 확장 모듈을 설치해야 합니다. 최신 PHP 버전을 설치하겠습니다:
sudo apt install php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y
이 명령어는 다음 PHP 모듈을 설치합니다:
php-fpm: PHP FastCGI Process Manager (Nginx와 함께 사용)
php-mysql: MySQL 데이터베이스 연결
php-curl: URL 관련 기능
php-gd: 이미지 처리
php-intl: 국제화 지원
php-mbstring: 멀티바이트 문자열 처리 (한글 등)
php-soap: SOAP 프로토콜 지원
php-xml 및 php-xmlrpc: XML 처리
php-zip: ZIP 아카이브 처리
4. PHP-FPM 설정
PHP-FPM(FastCGI Process Manager)은 Nginx와 PHP의 연동을 위한 중요한 구성 요소입니다. 설정 파일을 확인합니다:

sudo nano /etc/php/*/fpm/pool.d/www.conf
파일에서 다음 라인을 찾아 확인합니다:
user = www-data
group = www-data
listen = /run/php/php*-fpm.sock
이 설정이 이미 기본값으로 되어있을 것입니다. 확인 후 PHP-FPM 서비스를 재시작합니다:
sudo systemctl restart php*-fpm
sudo systemctl enable php*-fpm
5. Nginx와 PHP 연동 설정
이제 Nginx가 PHP 파일을 처리할 수 있도록 설정합니다:
sudo nano /etc/nginx/sites-available/wordpress
다음 내용을 입력합니다:
server {
listen 80;
server_name _; # 도메인이 없는 경우 기본값
root /var/www/html;
index index.php index.html index.htm;
location / {try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock; # PHP 버전에 맞게 수정
}
location ~ /\.ht {
deny all;
}
}
PHP-FPM 소켓 경로는 PHP 버전에 따라 다를 수 있습니다. 정확한 경로를 찾으려면
find /run/php -name "*.sock"
결과에 따라 fastcgi_pass
라인을 수정합니다 (예: fastcgi_pass unix:/run/php/php8.1-fpm.sock;
).
심볼릭 링크를 생성하여 설정을 활성화합니다:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default # 기본 설정 제거
Nginx 설정이 올바른지 테스트합니다:
sudo nginx -t
문제가 없다면 Nginx를 재시작합니다:
sudo systemctl restart nginx
6. 워드프레스 파일을 위한 디렉토리 준비
워드프레스 파일을 저장할 디렉토리의 권한을 설정합니다:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
7. PHP 정보 확인 페이지 생성
설치가 제대로 되었는지 확인하기 위해 PHP 정보 페이지를 생성합니다:
sudo nano /var/www/html/info.php
다음 내용을 입력합니다:
<?php
phpinfo();
?>
이제 웹 브라우저에서 http://[인스턴스_공개IP]/info.php
에 접속하여 PHP 정보 페이지가 표시되는지 확인합니다. 표시된다면 PHP와 Nginx가 올바르게 연동된 것입니다.
중요: 정보 확인 후 보안을 위해 이 파일을 삭제하는 것이 좋습니다:
sudo rm /var/www/html/info.php
3. PHP 설정 최적화
워드프레스 실행을 위해 PHP 설정을 최적화합니다:
sudo nano /etc/php/*/fpm/php.ini
다음 값들을 찾아 수정합니다:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
설정을 변경한 후 PHP-FPM을 재시작합니다:
sudo systemctl restart php*-fpm
4. 성능 향상을 위한 Nginx 캐싱 설정
워드프레스 성능을 향상시키기 위해 Nginx 캐싱을 설정할 수 있습니다:
sudo nano /etc/nginx/sites-available/wordpress
server
블록 내에 다음 내용을 추가합니다:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
이 설정은 정적 파일(이미지, CSS, JavaScript 등)에 대해 30일간의 브라우저 캐싱을 적용합니다.
변경 후 Nginx를 재시작합니다:
sudo systemctl restart nginx
다음 주차 예고
이번 주차에서는 워드프레스를 실행하기 위한 웹 서버(Nginx)와 PHP 환경을 구축했습니다.
다음 주차에서는 워드프레스 데이터베이스를 위한 MySQL 설치 및 구성, 그리고 데이터베이스와 워드프레스 연동 방법에 대해 알아보겠습니다.