[linux] 우분투 워드프레스 설치와 설정 - Ubuntu LAMP
셀프호스팅으로 워드프레스를 설치하는 방법을 안내합니다. 우분투 22.04 LTS를 기준으로 설치를 합니다.
독립 웹 호스팅 공간을 임대해서 원격 설치를 할 때는 SSH로 접속해서 관리자 권한으로 커맨드를 실행해야 합니다.
워드프레스를 설치하려면 먼저 LAMP 스택이 설치되어 있어야 합니다. 웹서버인 Apache, 또는 Nginx, 그리고 DB인 MySQL, 워드프레스 기반 언어인 PHP를 순서대로 설치합니다.
설치 과정은 다음 포스트를 참고하면 됩니다.
한번에 APM 스택을 빠르게 설치하려면 다음 커맨드로 설치할 수 있습니다.
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
MySQL 설정
MySQL 보안 설정
MySQL은 설치 직후에는 아무런 설정이 되어 있지 않기 때문에 보안 설정을 먼저 해야 합니다. 다음 MySQL 설정 스크립트를 실행해서 추가적인 보안 설정을 합니다.
서비스용으로 워드프레스를 구성할 때는 root 계정의 원격 접속을 제한해서 보안 문제가 생기지 않도록 해야 합니다.
sudo mysql_secure_installation
MySQL 콘솔로 들어가서 워드프레스용 데이터베이스를 생성하고 권한을 부여합니다. 앞서의 MySQL 보안 설정에서 패스워드가 보안성을 만족(예: 영문대문자, 숫자, 특수문자 반드시 1개 이상 포함)하는 경우에만 사용할 수 있도록 설정한 경우 "wpuser_password" 패스워드를 "Wpuser12@"처럼 보안성을 만족하느 패스워드로 수정해야 합니다.
CREATE DATABASE wordpress;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wpuser_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
워드프레스 설치
워드프레스 파일 복사
웹서버에서 구성한 웹 루트 디렉토리에 워드프레스를 설치합니다. 아파치, 또는 Nginx를 설치하면 기본 구성되는 웹 사이트 루트인 "/var/www/html"에 설치하는 방법을 안내합니다. 워드프레스 설치 폴더를 다르게 하고 싶으면 첫 행의 경로를 변경하면 됩니다. 설치 경로가 달라지면 웹 서버의 웹사이트 구성 정보도 함께 변경해야 합니다.
cd /var/www/html
sudo curl -O https://wordpress.org/latest.tar.gz
sudo tar xzvf latest.tar.gz
sudo mv wordpress/* .
sudo chown -R www-data:www-data /var/www/html
파일 복사 작업이 완료되면 "html" 디렉토리에는 다음과 같은 파일/디렉토리들이 들어있게 됩니다.
-rw-r--r-- 1 www-data www-data 612 Mar 23 01:44 index.nginx-debian.html
-rw-r--r-- 1 www-data www-data 405 Feb 6 2020 index.php
-rw-r--r-- 1 www-data www-data 24482912 Mar 23 11:15 latest.tar.gz
-rw-r--r-- 1 www-data www-data 19915 Jan 1 2023 license.txt
-rw-r--r-- 1 www-data www-data 7399 Jul 5 2023 readme.html
drwxr-xr-x 2 www-data www-data 4096 Mar 23 11:15 wordpress/
-rw-r--r-- 1 www-data www-data 7211 May 12 2023 wp-activate.php
drwxr-xr-x 9 www-data www-data 4096 Jan 30 19:27 wp-admin/
-rw-r--r-- 1 www-data www-data 351 Feb 6 2020 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 2323 Jun 14 2023 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 3013 Nov 15 17:47 wp-config-sample.php
drwxr-xr-x 4 www-data www-data 4096 Jan 30 19:27 wp-content/
-rw-r--r-- 1 www-data www-data 5638 May 30 2023 wp-cron.php
drwxr-xr-x 27 www-data www-data 12288 Jan 30 19:27 wp-includes/
-rw-r--r-- 1 www-data www-data 2502 Nov 26 2022 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3927 Jul 16 2023 wp-load.php
-rw-r--r-- 1 www-data www-data 50927 Jan 16 03:23 wp-login.php
-rw-r--r-- 1 www-data www-data 8525 Sep 16 2023 wp-mail.php
-rw-r--r-- 1 www-data www-data 26409 Oct 10 14:05 wp-settings.php
-rw-r--r-- 1 www-data www-data 34385 Jun 19 2023 wp-signup.php
-rw-r--r-- 1 www-data www-data 4885 Jun 22 2023 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3154 Sep 30 07:39 xmlrpc.php
파일 복사 과정이 끝났으므로 불필요한 압축 파일인 latest.tar.gz
은 삭제합니다.
sudo rm latest.tar.gz
설정 파일 생성
먼저 워드프레스가 제공하는 샘플 설정 파일을 서비스용 파일로 복사한 후, wp-config.php
파일을 텍스트 편집기에서 열어서 앞서 생성한 MySQL 접속 계정 정보를 입력하고 저장합니다.
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php
"wp-config.php" 상단의 DB접속 정보 3가지 항목만 앞서 MySQL 설정에서 입력했던 내용으로 수정하면 됩니다. 패스워드는 반드시 보안성을 충족할만큼 복잡한 것으로 만들어서 사용해야 합니다.
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'wpuser_password' );
워드프레스용 PHP 모듈 설치
워드프레스 구동에 필요한 PHP 모듈 6개를 설치하고 웹서버를 재 시작합니다. Nginx를 사용할 경우 "apache2" 대신 "nginx"를 입력하면 됩니다.
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip
sudo systemctl restart apache2
워드프레스 설치 마법사 접속
웹 브라우저에서 "http://IP주소/wp-admin/install.php"를 입력해 설치UI를 통한 워드프레스 설치를 시작합니다. 언어 선택 화면이 표시되지 않으면 설치 프로그램이 로딩되지 않는 것입니다.
데이터베이스 연결을 확인하라는 에러 메시지가 표시되면 워드프레스 웹사이트 루트의 wp-config.php
파일에서 DB 연결 정보를 올바르게 입력했는지 다시 확인해보시기 바랍니다.
다음처럼 언어 선택 화면이 표시되면 워드프레스 설치가 가능한 상태입니다.
사이트 기본 정보를 입력하는 폼을 채운 후 "워드프레스 설치" 버튼을 눌러 설치를 시작합니다. 폼에 입력한 내용은 설치 후 관리자 화면에서 변경할 수 있습니다. 관리자 패스워드만 잊지 않도록 주의하면 됩니다. 또한 DB계정 패스워드와 같은 것을 사용하는 것도 피해야 합니다.
잠시 기다리면 설치가 완료되고 성공 페이지가 표시됩니다.
이제 관리자 페이지로 로그인해서 나머지 추가 설정과 테마 설치를 하면 됩니다. 워드프레스 로그인 페이지는 "http://사용도메인/wp-login.php" 입니다.