웹사이트 검색

Ubuntu 18.04에서 Nginx와 함께 WordPress 설치


WordPress는 Drupal 또는 Joomla와 같은 다른 CMS와 비교할 때 무려 60%의 시장 점유율을 자랑하는 가장 인기 있는 오픈 소스 콘텐츠 관리 시스템(CMS) 중 하나입니다. WordPress는 블로그, 소기업 또는 대기업을 위한 모든 종류의 웹 사이트를 개발하는 데 사용할 수 있습니다. 무료 및 프리미엄 플러그인과 테마를 통해 WordPress 사이트를 빠르게 확장하여 고급 기능을 제공할 수 있습니다. WordPress 사이트에 고유한 기능을 포함하는 사용자 정의 테마 및 플러그인을 처음부터 개발하는 것도 가능합니다. 이 튜토리얼에서는 Ubuntu 18.04에서 LEMP 스택, 즉 NGINX를 웹 서버로 사용하여 WordPress CMS를 설치하는 방법을 다룹니다.

전제 조건

  • 루트 또는 sudo 활성화 사용자를 사용하여 Ubuntu 18.04 서버에서 SSH 세션을 열 수 있습니다.
  • WordPress 설치를 가리키는 등록된 도메인 이름 또는 하위 도메인.
  • 서버의 IP 주소를 가리키는 도메인 DNS A 레코드

이 자습서에서는 도메인 이름을 사용해야 합니다. SUBDOMAIN, DOMAIN 또는 TLD 변수가 표시될 때마다 고유한 도메인 이름 값으로 바꾸십시오.

Ubuntu 18.04 업데이트

NGINX 설치를 시작하기 전에 항상 Ubuntu 18.04를 최신 버전으로 업그레이드하는 것이 좋습니다. 다음 apt-get 명령을 사용하면 됩니다.

# apt-get update 
# apt-get upgrade

첫 번째 명령은 사용 가능한 패키지 목록과 해당 버전을 업데이트하고 두 번째 명령은 보유한 패키지의 최신 버전을 실제로 설치합니다. 시스템 업그레이드가 완료되면 다음 명령을 사용하여 Ubuntu 시스템의 릴리스 버전을 확인하십시오.

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic

우분투에서 NGINX로 워드프레스 설치하기

Ubuntu 서버에 NGINX와 함께 WordPress를 설치하려면 아래 단계를 따르십시오.

1단계: NGINX 설치

NGINX는 Ubuntu의 기본 리포지토리에서 사용할 수 있으며 아래와 같이 한 줄 명령으로 설치할 수 있습니다.

# apt-get install nginx

NGINX가 설치되면 자동으로 실행됩니다. 다음 systemctl 명령으로 확인할 수 있습니다.

 # systemctl status nginx
 ● nginx.service - A high-performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-02-12 09:12:08 UTC; 11s ago
     Docs: man:nginx(8)
  Process: 17726 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 17714 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 17729 (nginx)
    Tasks: 2 (limit: 1152)
   CGroup: /system.slice/nginx.service
           ├─17729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─17732 nginx: worker process

위 명령의 출력은 NGINX가 PID 17729로 로드되고 활성화되었음을 확인합니다.

2단계: MariaDB 설치

MariaDB는 Ubuntu의 기본 저장소에서 사용할 수 있습니다. 별도의 MariaDB 저장소에서 설치하는 것도 가능합니다. 그러나 우분투의 기본 저장소에서 설치하는 것을 고수할 것입니다. 터미널에서 다음 명령을 실행하여 설치하고 선택적으로 mysql_secure_installation을 실행하여 보안을 설정할 수 있습니다.

# apt-get install mariadb-server 
# systemctl enable mariadb.service
# mysql_secure_installation

MariaDB 루트 사용자의 기본 암호는 비어 있습니다. 루트 사용자의 비밀번호를 업데이트하려면 MySQL 프롬프트를 가져오고 MySQL 쉘에서 다음 명령을 실행하여 비밀번호를 업데이트하십시오.

$ mysql -u root -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user SET PASSWORD=PASSWORD("Passw0rd!") WHERE USER='root';

Ubuntu 18.04 시스템에서 MariaDB 설치가 완료되었습니다. 이제 다음 단계에서 PHP 설치를 진행합니다.

3단계: PHP 설치

최신 버전의 PHP(7.2)는 Ubuntu 18.04의 리포지토리에서 사용할 수 있으며 기본 설치 후보이므로 터미널에서 다음 명령을 실행하여 설치하십시오.

# apt-get install php7.2 php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

php7.2를 설치하는 것 외에도 위의 apt-get 명령은 MySQL, XML, Curl 및 GD 패키지와 같은 몇 가지 다른 패키지도 설치하고 WordPress 사이트가 데이터베이스와 상호 작용하고 XMLRPC를 지원하며 자르기를 할 수 있는지 확인합니다. 이미지 크기를 자동으로 조정합니다. 또한 WordPress 설치의 PHP 페이지를 처리하려면 NGINX에서 php-fpm(Fast Process Manager) 패키지가 필요합니다. FPM 서비스는 PHP 설치가 끝나면 자동으로 실행됩니다.

4단계: WordPress 데이터베이스 생성

MariaDB가 서버에 설치 및 구성되면 특히 WordPress 설치를 위한 사용자 및 데이터베이스를 생성합니다. 이렇게 하려면 mysql -u root -p 명령을 사용하여 MariaDB 서버에 로그인하고 아래 설명된 단계를 완료합니다.

$ mysql -u root -p
Enter password:

MariaDB [mysql]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> GRANT ALL ON wordpress_db.* TO 'wpuser'@'localhost' IDENTIFIED BY 'Passw0rd!' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

'wpuser' 데이터베이스 사용자를 생성하는 명령이 없다고 놀라지 마십시오. 위의 GRANT 명령으로 자동 생성됩니다. 나는 최근에 이것에 대해 배웠고 이 튜토리얼을 읽는 사람을 놀라게 할 것이라고 생각했습니다. :)

5단계: WordPress용 NGINX 구성

이제 WordPress 도메인을 제공하도록 NGINX 서버 블록 구성을 진행하겠습니다. 시작하려면 WordPress 설치를 위한 루트 폴더를 만듭니다.

# mkdir -p /var/www/html/wordpress/public_html

WordPress 도메인에 대한 NGINX 서버 블록을 생성하려면 /etc/nginx/sites-available 폴더로 이동합니다. 이것은 NGINX 서버 블록의 기본 위치입니다. 선호하는 편집기를 사용하여 NGINX 서버 블록에 대한 구성 파일을 생성하고 아래와 같이 편집합니다.

# cd /etc/nginx/sites-available
# cat wordpress.conf
server {
            listen 80;
            root /var/www/html/wordpress/public_html;
            index index.php index.html;
            server_name SUBDOMAIN.DOMAIN.TLD;

	    access_log /var/log/nginx/SUBDOMAIN.access.log;
    	    error_log /var/log/nginx/SUBDOMAIN.error.log;

            location / {
                         try_files $uri $uri/ =404;
            }

            location ~ \.php$ {
                         include snippets/fastcgi-php.conf;
                         fastcgi_pass unix:/run/php/php7.2-fpm.sock;
            }
            
            location ~ /\.ht {
                         deny all;
            }

            location = /favicon.ico {
                         log_not_found off;
                         access_log off;
            }

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

다음을 사용하여 위 구성 파일의 정확성을 확인하십시오.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

서버 블록을 활성화하려면 /etc/nginx/sites-enabled 폴더 안에 위 구성 파일의 심볼릭 링크를 만듭니다.

# cd /etc/nginx/sites-enabled
# ln -s ../sites-available/wordpress.conf .

NGINX를 다시 로드하여 새 WordPress 도메인 설정을 적용합니다.

# systemctl reload nginx

6단계: WordPress 다운로드 및 구성

이 단계에서는 wget을 사용하여 보관된 WordPress 파일을 다운로드하고 이전 단계에서 생성한 WordPress 설치 루트에 압축을 풉니다. 이를 달성하려면 터미널에서 다음 명령을 실행하십시오.

# cd /var/www/html/wordpress/public_html
# wget https://wordpress.org/latest.tar.gz
# tar -zxvf latest.tar.gz
# mv wordpress/* .
# rm -rf wordpress

소유권을 변경하고 추출된 WordPress 파일 및 폴더에 올바른 권한을 적용합니다. 그렇게 하려면 터미널에서 다음 명령을 사용하십시오.

# cd /var/www/html/wordpress/public_html
# chown -R www-data:www-data *
# chmod -R 755 *

이제 이전에 생성한 MariaDB 데이터베이스에 연결할 수 있도록 WordPress 구성 파일에 데이터베이스 이름, 데이터베이스 사용자 및 암호를 제공합니다. 기본적으로 WordPress는 샘플 구성 파일을 제공하며 이를 사용하여 자체 구성 파일을 만듭니다. 이렇게 하려면 먼저 샘플 WordPress 구성 파일의 이름을 wp-config.php로 바꾸고 선호하는 편집기로 편집합니다.

# cd /var/www/html/wordpress/public_html
# mv wp-config-sample.php wp-config.php
# vi wp-config.php
 ...
 ...
 define('DB_NAME', 'wordpress_db');
 define('DB_USER', 'wpuser');
 define('DB_PASSWORD', 'Passw0rd!');
 ...
 ...

WordPress 사이트를 보호하려면 이 링크를 통해 보안 키를 생성하여 데이터베이스 구성 옵션 바로 뒤에 위의 WordPress 구성 파일에 보안 키를 추가하십시오.

이제 선호하는 브라우저를 사용하여 WordPress 사이트를 설치할 준비가 되었습니다.

7단계: 워드프레스 설치

WordPress 설치를 완료하려면 즐겨 사용하는 웹 브라우저에서 SUBDOMAIN.DOMAIN.TLD를 가리키고 아래 설명된 단계를 따르십시오.

설치 프로그램에서 언어를 선택하라는 메시지가 표시됩니다. 언어를 선택하고 '계속'을 클릭합니다.

이제 사이트 제목, 사용자 이름, 비밀번호, 이메일과 같은 사이트 정보를 제공하고 'WordPress 설치' 버튼을 클릭합니다.

WordPress 사이트 설치가 완료되었습니다. '로그인'을 클릭하여 대시보드에 로그인하고 사이트에 대한 플러그인 및 테마 구성을 진행합니다.

처음으로 로그인하기 위해 이전에 입력한 사용자 이름과 비밀번호를 제공하십시오.

축하해요! WordPress 웹 사이트가 설치되었으며 요구 사항에 따라 사용자 지정할 수 있습니다.

결론

WordPress는 가장 인기 있는 CMS이며 Ubuntu 서버에서 NGINX와 함께 설치하는 방법을 배웠습니다. 이제 더 진행하여 웹사이트를 만들 수 있습니다.