Ubuntu 22.04에서 LEMP 스택으로 워드프레스 설치하기: 단계별 가이드

LEMP 스택 설치를 마쳤다면, 이제 워드프레스를 설치하여 웹사이트를 구축할 차례입니다. 이 가이드는 Ubuntu 22.04에서 LEMP 스택을 사용하여 워드프레스를 설치하는 방법을 단계별로 설명합니다. 데이터베이스 설정부터 파일 권한 구성까지 모든 과정을 자세히 안내하여, 초보자도 쉽게 따라할 수 있습니다. 이 가이드를 통해 여러분의 워드프레스 사이트를 빠르고 안전하게 구축해 보세요.

Ubuntu 22.04에서 LEMP 스택으로 워드프레스 설치하기: 단계별 가이드

1. 워드프레스용 MariaDB 데이터베이스 및 사용자 만들기

LEMP 스택을 설치 한 후 워드프레스를 설치하기 위한 첫 번째 작업은 워드프레스용 데이터베이스와 사용자를 만드는 작업입니다. 다음 단계를 따라 진행하세요.

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 40
Server version: 10.6.16-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE wordpress_database DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'wordpress_password';
MariaDB [(none)]> GRANT ALL ON wordpress_database.* TO 'wordpress_user'@'localhost';
MariaDB [(none)]> EXIT;

2. 추가 PHP 확장 설치하기

LEMP 스택을 설치할 때 PHP가 MariaDB와 통신하기 위해서는 아주 최소한의 확장 기능만 필요합니다. 워드프레스와 많은 플러그인은 추가 PHP 확장을 활용하며, 이 HowTo 문서에서는 몇 가지 추가 확장을 사용하게 됩니다. 워드프레스에서 가장 많이 사용되는 PHP 확장 프로그램을 다운로드하여 설치해 보겠습니다.

$ sudo apt update
$ sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y

참고: 워드프레스 플러그인마다 고유한 요구사항이 있습니다. 일부 플러그인은 추가 PHP 확장 패키지를 설치해야 할 수도 있습니다. 플러그인 설명서를 확인하여 해당 플러그인의 PHP 요구 사항을 확인하세요. 해당 패키지를 사용할 수 있는 경우 위에 설명된 대로 apt를 사용하여 설치할 수 있습니다.

확장 기능 설치가 완료되면 실행 중인 PHP 프로세서가 새로 설치된 기능을 활용할 수 있도록 PHP-FPM 프로세스를 다시 시작합니다.

$ sudo systemctl restart php8.3-fpm

3. Nginx 구성하기

이제 Nginx 서버 블록을 작성해 보겠습니다. 서버의 도메인 이름 또는 IP 주소에 응답하도록 구성하고 TLS/SSL 인증서로 보호 하려면 /etc/nginx/sites-available/ 디렉터리에 사이트 구성 파일이 있어야 합니다. 여기서는 /etc/nginx/sites-available/your-domain 을 예시로 사용하겠습니다. 또한 이 가이드에서는 워드프레스 설치의 루트 디렉터리로 /var/www/your-domain 을 사용하겠습니다.
그리고 /etc/nginx/sites-available/default 는 사용하지 않도록 설정하겠습니다.

$ sudo unlink /etc/nginx/sites-enabled/default
$ sudo vi /etc/nginx/sites-abailable/your-domain
server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

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

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location ~ /\.ht {
        deny all;
    }
}

$ sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginx

4. 워드프레스 다운로드 및 설치하기

이제 서버가 구성되었으니 워드프레스를 다운로드하고 설정해 보겠습니다. 보안상의 이유로 항상 프로젝트 웹사이트에서 최신 버전의 워드프레스를 직접 다운로드하는 것이 좋습니다.

$ cd /tmp
$ curl -LO https://wordpress.org/latest.tar.gz
$ tar xzvf latest.tar.gz
$ cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
$ sudo mkdir /var/www/your-domain
$ sudo cp -a /tmp/wordpress/. /var/www/your_domain
$ sudo chown -R www-data:www-data /var/www/your_domain

5. 워드프레스 구성 파일 설정하기

다음으로 기본 워드프레스 구성 파일을 몇 가지 변경해 보겠습니다. 워드프레스 비밀 키 생성기에서 보안 값을 가져오려면 다음과 같이 입력합니다.

$ curl -s https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY',         '8j[2{,_kJ#8<BH~s~|`07XN9*-B|.kuJ9k,mr$_/EPcFDlvd8)hA0v4=#w7z6A_e');
define('SECURE_AUTH_KEY',  'y]|zhq0l%T-m].|~i@d#CnsV&PvG$02q?7t#ZO <#`M)hMBVlnNS1&xFYm=5Fq}S');
define('LOGGED_IN_KEY',    '{QwiXvS,E2)Ii!oSk?zYMTKx|l;qtcOb.Y lX?fVeQ9`smaZz.F;)+B!@!ksav#z');
define('NONCE_KEY',        'L?_qsu3Zn_ATrha7bH;]vhgpik+ Ovnm0 p_). ajfh},dMQV8.3>4,(7qvbtf?@');
define('AUTH_SALT',        '_?`7X.!v<#T(t#dA%tmxt2qt &?`-{WfX-9g2JvR9Tw4@^GL Yf^Q8~WQKz$)f$u');
define('SECURE_AUTH_SALT', '/|_s<IJ=eR LL[W,|~H/qu-rYBp,W9.u+=^|Wi2a>e`VjCRs{)-a?_q}K:2SshW6');
define('LOGGED_IN_SALT',   '|A?[]>6hke7|-!.IkEXN}|37Mq7E:97#xxL%40HWMRU37&CT_1YI&Dka{mgrmW(*');
define('NONCE_SALT',       'bKM+&PAb bvIb-AlEoa]h@5ux;BL.T@-*k-ZtoHi|`=5,1|#}2G}]!f7D!|lS0e_');

위 출력 결과는 보안 키를 설정하기 위해 구성 파일에 직접 붙여넣을 수 있는 구성 줄입니다. 출력 결과를 복사합니다. 이제 워드프레스 설정 파일을 엽니다.

$ sudo vi /var/www/your_domain/wp-config.php
...
define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
...

이 부분을 카피한 내용으로 교체 합니다. 그리고 나서 데이터베이스 접속 정보를 설정합니다. 같은 파일(wp-config.php)에서 수정합니다.

define( 'DB_NAME', 'wordpress_database' );

/** MySQL database username */
define( 'DB_USER', 'wordpress_user' );

/** MySQL database password */
define( 'DB_PASSWORD', 'wordpress_password' );

이것으로 서버에서 수행하는 작업은 끝났습니다. 웹 브라우저로 접속해서 워드프레스를 사용하시면 됩니다. 가능하면 웹 브라우저로 접속하셔서 초기 설정을 신속히 마무리 하세요.

$ curl -4 icanhazip.com
64.*.*.*

웹 브라우저로 접속
http://64.*.*.*

언어를 선택하세요.

워드프레스 언어설정

사이트 타이틀과 관리자의 로그인 계정을 설정합니다.

워드프레스 사이트 타이틀 및 관리자 계정 설정

성공 메세지를 확인 하셨으면 “Log In” 버튼을 클릭해서 방금 설정한 계정으로 로그인 합니다.

워드프레스 로그인 계정 생성 완료

6. 마무리

이제 LEMP 스택 설치부터 워드프레스 설정까지 모든 과정을 마쳤습니다. 이 가이드를 따라오면서 최신 버전의 Ubuntu 22.04에서 워드프레스를 성공적으로 실행할 수 있었을 것입니다. 웹 서버, 데이터베이스, PHP 구성 및 최종 워드프레스 설정까지 각 단계를 신중하게 따라오셨다면, 안정적이고 빠르게 동작하는 워드프레스 사이트를 운영할 준비가 완료되었습니다.

앞으로 더 작업해야 할 사항들이 있습니다:

  • 도메인 구매 및 설정: 도메인 등록업체를 통해 도메인을 구매하고 설정을 마무리하세요.
  • Nginx HTTPS 설정: 보안 접속을 위해 Nginx에서 HTTPS를 설정해야 합니다.
  • Let’s Encrypt 설정: 무료 SSL 인증서를 발급받아 HTTPS를 구현하세요.

이러한 추가 작업들은 워드프레스 사이트의 보안과 안정성을 더욱 강화해 줄 것입니다. 각 항목에 대해서도 추가적인 블로그 HowTo 글을 참고하여 차근차근 진행하시기 바랍니다.

Leave a Comment