
오라클 클라우드에 웹 서버 설치하고 워드프레스 연결하기 : Nginx
목차
Nginx
Nginx(엔진엑스)를 웹서버로 선택한 이유는 가볍고 빠른 성능을 갖고 있기 때문이에요.
물론 유명한 Apache(아파치) 서버도 있지만 최신 트렌드에 맞게 골라봤어요.
Nginx 설치
간단하게 명령어만 입력하면 설치가 돼요.
sudo apt install nginx
Nginx 서버 구성
#간단 설명
Nginx는 워드프레스와 설치 경로가 달라요.
- 경로 : /etc/nginx/
- 기본 설정 파일 : /etc/nginx/nginx.conf
- 가상 호스트 설정 파일 : /etc/nginx/site-available/ 하위에 위치
Nginx에 워드프레스 설정 파일 생성
Nginx 설정에 워드프레스의 정보를 입력해서 서버와 워드프레스를 연결 할 거에요.
이 설정 파일을 수정할 일이 많을 예정이니 위치를 잘 기억하세요.
https를 설정할 때나 도메인을 연결하는 등 각종 서버 설정을 할 때마다 수정을 해야 돼요.
변경해야 할 부분
- server_name : 도메인 주소 또는 오라클 클라우드의 고정 IP
- root : 워드프레스 의 최상위(root) 폴더
ex) /var/www/html/wordpress - fastcgi_pass : /etc/php/ 폴더에서 확인할 수 있는 php 버전을 {버전} 부분에 입력해야 해요.
ex) php8.3-fpm.sock
->Ctrl + s : 저장 | Ctrl + x : 종료 를 눌러서 저장해요.
# Nginx에 wordpress 설정 파일 생성
sudo nano /etc/nginx/sites-available/wordpress
# 예시
server {
listen 80;
server_name IP; # 오라클 서버 고정 IP 또는 도메인 입력
root /var/www/html/wordpress; # 웹 사이트의 루트 디렉토리
index index.php index.html index.htm; # 기본 인덱스 파일 설정
location / { # 루트 URL에 대한 요청 처리
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ { # .php로 끝나는 URL에 대한 요청 처리
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php{버전}-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht { # .ht로 시작하는 파일에 대한 요청 처리
deny all;
}
}
Nginx 활성화
Nginx가 WordPress를 사용할 수 있게 활성화 해줘요.
ln -s 명령어를 통해서 Nginx가 WordPress를 로드 할 수 있게 /etc/nginx/sites-enabled/ 폴더에
링크를 지정하는 과정이에요. /sites-enabled/ 폴더의 내용은 직접 수정하면 안돼요.
대신 /sites-available/ 폴더 아래에 있는 파일을 수정하시면 돼요.
*링크 : 심볼릭 링크 or 소프트 링크 라고 불려요.
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
Nginx 재시작 – 설정 적용
변경된 설정을 적용하기 위해서 Nginx를 재시작하고
Ubuntu도 재시작해요.
터미널과 연결이 끊기고 나서 약 1~3분 정도 후에 터미널에 접속해보면 연결이 될거에요.
sudo systemctl restart nginx
sudo reboot

웹 브라우저에 지정했던 server_name을 입력하면 Nginx에 설정했던 root 경로의 워드프레스 웹페이지가 나와요. (root /var/www/html/wordpress)
이제 설정을 해서 워드프레스 운영을 진행하면 돼요.
이제 워드프레스 설치가 마무리 됐어요. 앞으로 남은 것들은 보안 설정 부분들이 있어요.
보안이 충분히 설정되지 못하면 해커들의 먹잇감이 될 수 있으니 조심해야해요.
앞으로 포스팅 될 글들도 많이 찾아주세요.
감사합니다!
나만의 무료 홈페이지 사이트를 가져보자 – 0. 오라클 프리티어 & 워드프레스 세팅 및 설치 – SmartPICK
#간단설명 -기본설정
- listen 80
-80번 포트에서 들어오는 HTTP 요청을 웹 서버가 수신하도록 설정 - server_name smartpick.website(예시)
-이 서버가 처리할 도메인 이름 지정 - root /var/www/html/wordpress (예시)
-웹사이트의 루트 디렉토리 설정
-WordPress의 경우에는 파일들이 이 경로에 알맞게 위치해야 함. - index index.php index.html index.htm
-기본 인덱스 파일 지정
-요청된 디렉토리에 대한 파일을 찾을 때 우선 순위를 가짐
#기본 위치 설정
- location /
- 루트 URL (
/
)에 대한 요청 처리
- 루트 URL (
- try_files $uri $uri/ /index.php?$args (예시)
$uri
에 해당하는 파일이 있는지 확인하고, 없다면$uri/
디렉토리가 있는지 확인- 만약 두 경우 모두 해당하지 않으면
/index.php
를 요청하면서 쿼리 스트링($args
)을 함께 전달- 즉, 존재하지 않는 페이지에 대한 요청을
index.php
로 전달하여 WordPress의 내부 라우팅 시스템이 이를 처리하게 함
- 즉, 존재하지 않는 페이지에 대한 요청을
#PHP 파일 처리
- location ~ .php$
.ph
p
로 끝나는 URL에 대한 요청 처리
- include snippets/fastcgi-php.conf
- 일반적으로 PHP 설정에 필요한 기본 FastCGI 설정 포함
- fastcgi_pass unix:/var/run/php/php8.1-fpm.sock (예시)
- PHP-FPM 소켓 경로를 지정합니다.
- PHP-FPM이 이 소켓을 통해 Nginx와 통신
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:
- FastCGI 서버에 전달되는
SCRIPT_FILENAME
매개변수 설정 - 이는 실제 PHP 파일의 경로를 가리킴
$
document_root
는root
디렉토리 (예:/var/www/html/wordpress
)$
fastcgi_script_name
은 요청된 PHP 파일의 경로
- FastCGI 서버에 전달되는
- include fastcgi_params
- FastCGI 매개변수 포함
- 일반적으로 FastCGI 서버와의 통신에 필요한 추가 설정이 포함되어 있음
#.ht 파일 접근 차단
- location ~ /.ht
.ht
로 시작하는 파일에 대한 요청 처리
- deny all
- 모든 접근 차단
- 이는
.htaccess
파일에 대한 접근을 방지하여 보안을 강화하기 위함