우분투 워드프레스 설치, Apache, MariaDB, PHP8(FPM) 그리고 SSl 보안 인증서 Let’s Encrypt 설치까지 전 과정을 요약해 정리했습니다.
우분투 워드프레스 설치 환경은 “아마존 라이트세일”과 “오라클 클라우드 인스턴스” 우분투 20.04에서 진행했습니다.
우분투는 설치되어 있다는 가정하에 진행되면 PHP8 “FastCGI Process Manager” php-fpm을 설치할 것입니다.
그리고, 도메인이 준비돼 있어야 하며 오라클 클라우드의 경우 방화벽 설정(80, 443)이 돼있어야 합니다.
오라클 클라우드 포트 개방은 수신 규칙과 우분투 방화벽 두 가지를 설정해야 합니다.
우분투 워드프레스 설치 개요
우분투 워드프레스 설치 과정은 5단계로 진행되며 빠른 진행을 위해 구체적인 설명은 생략합니다.
- Apache 설치
- PHP8(php-fpm) 설치
- MariaDB 설치
- Let’s Encrypt 설치
- 워드프레스 설치
Apache 설치
최신 아파치 설치
sudo apt install software-properties-common # 이미 설치했다면 무시
sudo add-apt-repository -y ppa:ondrej/apache2
Apache2 패키지와 libapache2-mod-fcgid 모듈을 설치합니다.
sudo apt update
sudo apt install apache2 libapache2-mod-fcgid -y
그리고 워드프레스 필수 패키지도 설치합니다.
sudo apt install imagemagick ghostscript -y
Apache 가상호스트 설정
새로운 가상호스트 설정 파일을 만들 것입니다. 아래 명령문에서 파일명을 수정해 실행합니다.
참고로 80번 포트에 대해서만 만듭니다. 443 포트는 SSL 보안 인증서 설치 시 자동으로 생성할 것입니다.
sudo vi /etc/apache2/sites-available/파일명.conf
# 예) sudo vi /etc/apache2/sites-available/wordpress.conf
아래 가상호스트 예제에서 4곳을 수정해 입력해 줍니다.
- ServerName example.com : 각자의 도메인명으로 수정
- ServerAlias www.example.com : 상동
- DocumentRoot /var/www/wordpress : 루트 경로
- redirection www to non-www : 리디렉션 필요 없으면 삭제
가상호스트 설정 파일
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/wordpress
# redirection www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^[0-9]+.[0-9]+.[0-9]+.[0-9]+(:[0-9]+)?$
RewriteCond %{REQUEST_URI} !^/\.well-known
RewriteRule ^(.*)$ http://%1$1 [R=301,L]
# END: redirection www to non-www
<Directory /var/www/wordpress>
Options +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
기본 가상호스트는 비활성화하고 새로운 가상호스트를 활성화합니다.
# 기본 사이트 비활성화
sudo a2dissite 000-default.conf
# 새로운 사이트 활성화
sudo a2ensite wordpress.conf
PHP8(php-fpm) 설치
PHP 8 버전을 설치할 것입니다. 다른 버전을 설치하려면 php8.0을 php8.1등으로 수정해 설치합니다.
PHP 설치와 워드프레스에서 요구하는 권장 모듈을 설치합니다. PHP 설치 시 기본적으로 포함된 모듈은 제외합니다.
워드프레스 홈 확장 모듈 가이드에서 확인할 수 있습니다.
pHP 최신 버전
sudo apt install software-properties-common # 이미 설치했다면 무시
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install -y php8.0-{curl,dom,imagick,mbstring,xml,zip,bcmath,gd,intl,mcrypt,simplexml,xmlreader,ssh2}
# 위 명령이 안될 경우 아래 실행
sudo apt install -y php8.0-curl php8.0-dom php8.0-imagick php8.0-mbstring php8.0-xml php8.0-zip php8.0-bcmath php8.0-gd php8.0-intl php8.0-mcrypt php8.0-simplexml php8.0-xmlreader php8.0-ssh2
필수적인 모듈과 php8.0-fpm 구성 설정 그리고 기본적으로 사용할 모듈을 활성화합니다.
# 필수 모듈 | php8.0-fpm 구성 활성화
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php8.0-fpm
# 기본 모듈 활성화
sudo a2enmod rewrite ssl http2
# 서버 재시작
sudo systemctl restart apache2
MariaDB 설치
설치가 완료되면 MariaDB 서비스가 자동으로 시작됩니다.
sudo apt install mariadb-server -y
설치가 완료되면 디비에 접속해 root 계정의 암호를 설정합니다. 명령창에 mysql -u root -p
를 입력 후 패스워드 입력이 나타나면 엔터를 치고 넘어갑니다.
그리고 새로운 버번을 설정해 줍니다.
sudo mysql -u root -p
# Enter password: 엔터
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('새 비밀번호');
데이터 베이스 생성
워드프레스에 사용할 디비를 생성합니다. 여기서 디비 이름을 “wordpress”로 했으며 CHARACTER은 “utf8mb4” 그리고 COLLATE는 “utf8mb4_unicode_ci”로 했습니다.
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
새로운 사용자 추가
워드프레스 디비를 관리할 사용자를 추가합니다. 아래 코드에서 디비명과 사용자명 그리고 비밀번호를 각자에 맞게 수정해 실행합니다.
GRANT ALL PRIVILEGES ON 디비명.* TO '사용자'@'localhost' IDENTIFIED BY '비밀번호';
# 예) GRANT ALL PRIVILEGES ON wordpress.* TO 'abcdb'@'localhost' IDENTIFIED BY 'a123b567@89';
새로운 사용자가 워드프레스 디비를 사용할 수 있도록 권한을 부여하고 최종적으로 설정을 적용합니다.
GRANT ALL PRIVILEGES ON 디비명.* TO '사용자명'@'localhost';
# GRANT ALL PRIVILEGES ON wordpress.* TO 'abcdb'@'localhost';
FLUSH PRIVILEGES; # 설정 적용
Let’s Encrypt 설치
SSL 보안 인증 Let’s Encrypt 설치 그리고 90일에 한 번씩 자동 갱신되도록 하기 위한 패키지를 설치합니다.
sudo apt install certbot python3-certbot-apache -y
패키지 설치가 완료되었다면 certbot를 실행해 Let’s Encrypt 인증서를 받을 것입니다.
sudo certbot --apache
인증서 발급 절차는 다섯 가지 설문에 답변하는 것으로 진행됩니다. 아래 그 질문과 답변을 요약했습니다.
보다 자세한 사항은 Let’s Encrypt 발급 상세 편에서 확인합니다.
1. 이메일 입력 : your_email@gmail.com
2. 서비스 약관 동의 : A
3. 구독(뉴스 및 기타정보) : N
4. 등록할 도메인 - 보기에 나와 있는 숫자 입력, 둘 이상인 경우 콤마로 구분, 모든 도메인 경우 엔터
5. http -> https 리디렉션 : 2
모든 설치 과정을 끝마친 후 웹서버를 재시작합니다.
# 서버 재시작
sudo systemctl restart apache2
워드프레스 설치
워드프레스는 다운로드만 하고 설치는 브라우저상에서 진행할 것입니다.
# 워드프레스 한글 버전 다운로드
wget https://ko.wordpress.org/latest-ko_KR.tar.gz
tar -xvzf latest-ko_KR.tar.gz # 압축 풀기
sudo rm latest-ko_KR.tar.gz # 압축 파일 삭제
# 워드프레스 파일을 루트로 사용할 경로로 이동
sudo mv wordpress /var/www/wordpress
# 소유자 | 그룹 변경
sudo chown -R www-data:www-data /var/www/html/
워드프레스 설치를 위한 모든 준비가 끝났습니다.
브라우저를 열고 자신의 도메인 주소로 접속해 설치를 시작합니다.
위에서 생성한 데이터베이스 정보를 입력합니다.
“데이터베이스 호스트”와 “테이블 접두어”는 기본 값으로 두고 “데이터베이스 이름”과 “사용자명” 그리고 “비밀번호”만 입력합니다.
마지막으로 사이트 제목과 사용자이름 그리고 비밀번호등을 입력 후 워드프레스 설치를 진행합니다.
성공 메시지 창에서 로그인을 클릭하면 워드프레스 관리자페이지로 이동할 수 있습니다.
이상으로 우분투 워드프레스 설치 과정을 간략하게 요약해 보았습니다.