๐Ÿ“ ์˜ค๋ผํด ํด๋ผ์šฐ๋“œ(OCI)๋กœ ๋ฌด๋ฃŒ ์›Œ๋“œํ”„๋ ˆ์Šค ๋ธ”๋กœ๊ทธ ๊ตฌ์ถ•ํ•˜๊ธฐ (์‹ค์ „ + ์—๋Ÿฌ ํ•ด๊ฒฐ ์ด์ •๋ฆฌ)

โ€”

์ œ๊ณต

์•ˆ

์ด ๋ฌธ์„œ๋Š” ์‹ค์ œ ๊ตฌ์ถ• ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Oracle Cloud ๋ฌด๋ฃŒ VM์„ ์‚ฌ์šฉํ•ด ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์‚ฌ์ดํŠธ๋ฅผ HTTPS๊นŒ์ง€ ์„ค์ •ํ•˜๊ณ ,
๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•œ ๋ชจ๋“  ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ์ฑ…์„ ํ•จ๊ป˜ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงฐ ์ค€๋น„๋ฌผ

  • โœ… ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ (์˜ˆ: film862.com)
  • โœ… ์‚ฌ์šฉํ•  ์„œ๋ธŒ๋„๋ฉ”์ธ (์˜ˆ: jaehyun.film862.com)
  • โœ… Oracle Cloud Free Tier ๊ณ„์ •
  • โœ… Ubuntu 22.04 VM
  • โœ… SSH ์ ‘์† ํ™˜๊ฒฝ (Mac/Linux/WSL ๋“ฑ)
  • โœ… ๊ธฐ๋ณธ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด ์ˆ™์ง€

1๏ธโƒฃ Oracle Cloud ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ๋„คํŠธ์›Œํฌ ์„ค์ •

  1. VCN/Subnet์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์„ฑํ•ด๋„ OK
  2. SSH Key โ†’ โ€œGenerate key pair for meโ€ ์„ ํƒ ํ›„ .key ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
   chmod 600 ~/Downloads/ssh-key-XXXX.key
  1. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ํ›„ โ†’ VNIC โ†’ Private IP โ†’ Ephemeral Public IP ํ• ๋‹น
  2. Security List ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ์ถ”๊ฐ€
  • TCP 22, 80, 443 โ†’ 0.0.0.0/0
  1. Route Table์— Internet Gateway ๊ฒฝ๋กœ ์ถ”๊ฐ€
  • 0.0.0.0/0 โ†’ Internet Gateway

2๏ธโƒฃ SSH ์ ‘์† & Nginx ์„ค์น˜

ssh -i ~/Downloads/ssh-key-XXXX.key ubuntu@<๊ณต์ธIP>

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

๋ธŒ๋ผ์šฐ์ €์—์„œ http://<๊ณต์ธIP> ์ ‘์† ์‹œ Nginx Welcome ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ์ •์ƒ โœ…

โ— ์ ‘์†์ด ์•ˆ๋œ๋‹ค๋ฉด Security List, Public IP, IGW ์„ค์ •์„ ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.


3๏ธโƒฃ MariaDB & PHP ์„ค์น˜

โœ… MariaDB

sudo apt install -y mariadb-server
sudo mysql_secure_installation

DB ์ƒ์„ฑ:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '๊ฐ•๋ ฅํ•œ_๋น„๋ฐ€๋ฒˆํ˜ธ';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;

โœ… PHP

sudo apt install -y php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-zip php-imagick

์—…๋กœ๋“œ/๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์กฐ์ •(๊ถŒ์žฅ):

sudo sed -i 's/^upload_max_filesize.*/upload_max_filesize = 64M/' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/^post_max_size.*/post_max_size = 64M/' /etc/php/8.1/fpm/php.ini
sudo sed -i 's/^memory_limit.*/memory_limit = 256M/' /etc/php/8.1/fpm/php.ini
sudo systemctl restart php8.1-fpm

4๏ธโƒฃ ์›Œ๋“œํ”„๋ ˆ์Šค ์„ค์น˜ ๋ฐ Nginx ์„ค์ •

cd /var/www
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mv wordpress myblog
sudo chown -R www-data:www-data myblog
sudo find myblog -type d -exec chmod 755 {} \;
sudo find myblog -type f -exec chmod 644 {} \;

Nginx ์„œ๋ฒ„ ๋ธ”๋ก ์ƒ์„ฑ:

sudo nano /etc/nginx/sites-available/myblog

์•„๋ž˜ ๋‚ด์šฉ ์ž‘์„ฑ:

server {
    listen 80;
    server_name jaehyun.film862.com;

    root /var/www/myblog;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    location ~* /\.(git|svn|hg|env|ht|user.ini) {
        deny all;
    }

    client_max_body_size 64m;
}

ํ™œ์„ฑํ™” ๋ฐ ํ…Œ์ŠคํŠธ:

sudo ln -s /etc/nginx/sites-available/myblog /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

5๏ธโƒฃ DNS ์„ค์ • (๋„๋ฉ”์ธ ์—ฐ๊ฒฐ)

DNS A ๋ ˆ์ฝ”๋“œ ์˜ˆ์‹œ:

์ด๋ฆ„ํƒ€์ž…๊ฐ’(IP)
jaehyunA<๊ณต์ธ IP ์ฃผ์†Œ>

6๏ธโƒฃ HTTPS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ (Certbot)

sudo apt install -y certbot python3-certbot-nginx

sudo certbot --nginx -d jaehyun.film862.com

์ด๋ฉ”์ผ ์ž…๋ ฅ โ†’ ์•ฝ๊ด€ ๋™์˜ โ†’ ์ž๋™ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์ ์šฉ ์™„๋ฃŒ โœ…

ํ…Œ์ŠคํŠธ:

sudo certbot renew --dry-run

7๏ธโƒฃ ์›Œ๋“œํ”„๋ ˆ์Šค ๋„๋ฉ”์ธ ์„ค์ • & SSL ๊ณ ์ •

WP-CLI ์„ค์น˜:

cd ~
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

๋„๋ฉ”์ธ ๊ณ ์ •:

php ~/wp-cli.phar --path=/var/www/myblog option update siteurl 'https://jaehyun.film862.com'
php ~/wp-cli.phar --path=/var/www/myblog option update home    'https://jaehyun.film862.com'
php ~/wp-cli.phar --path=/var/www/myblog cache flush

8๏ธโƒฃ wp-config.php ์ˆ˜์ • (SSL ์„ค์ • ๋ฐ SALT ๋ถ„๋ฆฌ)

sudo nano /var/www/myblog/wp-config.php

/* That's all, stop editing! Happy publishing. */ ๋ฐ”๋กœ ์œ„์— ์•„๋ž˜ ๋‚ด์šฉ ์ถ”๊ฐ€:

define('WP_HOME',    'https://jaehyun.film862.com');
define('WP_SITEURL', 'https://jaehyun.film862.com');
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '', 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}
define('COOKIE_DOMAIN', false);
require_once __DIR__ . '/wp-salts.php';

SALT ํŒŒ์ผ ์ƒ์„ฑ:

( echo "<?php"; curl -s https://api.wordpress.org/secret-key/1.1/salt/ ) | sudo tee /var/www/myblog/wp-salts.php >/dev/null
sudo chown www-data:www-data /var/www/myblog/wp-salts.php
sudo chmod 640 /var/www/myblog/wp-salts.php

๐Ÿ›  ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ & ํ•ด๊ฒฐ

โŒ 80 ํฌํŠธ ์ ‘์† ๋ถˆ๊ฐ€

๐Ÿ‘‰ Security List ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ํ™•์ธ (80/443 ์—ด๋ ค์žˆ๋Š”์ง€), Public IP ํ• ๋‹น, IGW ์„ค์ • ์—ฌ๋ถ€ ํ™•์ธ


โŒ .key.pub ํŒŒ์ผ๋งŒ ์žˆ๊ณ  .pem ์—†์Œ

๐Ÿ‘‰ Oracle Cloud์—์„œ โ€œGenerate key pair for meโ€ ์„ ํƒ ํ›„ ๊ฐœ์ธํ‚ค(.key) ์ €์žฅ. .pub๋Š” SSH ์ ‘์†์— ํ•„์š” ์—†์Œ.


โŒ curl: (7) Failed to connect ... No route to host

๐Ÿ‘‰ ๋Œ€๋ถ€๋ถ„ ๋„คํŠธ์›Œํฌ/๋ฐฉํ™”๋ฒฝ ๋ฌธ์ œ. ์ธ์Šคํ„ด์Šค ๋ณด์•ˆ ๋ชฉ๋ก๊ณผ ๋ผ์šฐํŒ… ํ™•์ธ.


โŒ ์›Œ๋“œํ”„๋ ˆ์Šค ๋กœ๊ทธ์ธ ๋ฌดํ•œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ

๐Ÿ‘‰ wp-config.php ์— HTTPS ๊ณ ์ • ์„ค์ • ์ถ”๊ฐ€ (FORCE_SSL_ADMIN + X_FORWARDED_PROTO ์ฒ˜๋ฆฌ).
๐Ÿ‘‰ ์ฟ ํ‚ค ๋ฌธ์ œ ์‹œ COOKIE_DOMAIN false ์„ค์ • ์ถ”๊ฐ€.


โŒ SALT ํ‚ค๊ฐ€ ํŽ˜์ด์ง€์— ๋…ธ์ถœ๋จ

๐Ÿ‘‰ wp-salts.php ํŒŒ์ผ์— <?php ํƒœ๊ทธ๊ฐ€ ๋น ์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ.
โ†’ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์„œ ํ•ด๊ฒฐ.


๐Ÿ ๋งˆ๋ฌด๋ฆฌ

์ด์ œ https://jaehyun.film862.com/wp-login.php ๋กœ ์ ‘์†ํ•ด ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ํ›„
ํ”Œ๋Ÿฌ๊ทธ์ธ, ํ…Œ๋งˆ, ๊ณ ์ •๋งํฌ(โ€œ๊ธ€ ์ด๋ฆ„โ€) ์„ค์ • ๋“ฑ์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค โœ…

์ด ๋ฌธ์„œ๋ฅผ ๋”ฐ๋ผ ํ•˜๋ฉด, ๋‹ค์Œ ๋ฒˆ์—๋Š” ๋ณ„๋‹ค๋ฅธ ์‚ฝ์งˆ ์—†์ด
Oracle Cloud + ์›Œ๋“œํ”„๋ ˆ์Šค๋กœ ๋ฌด๋ฃŒ HTTPS ๋ธ”๋กœ๊ทธ๋ฅผ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿš€


์ฝ”๋ฉ˜ํŠธ

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค