이번에 이 워드프레스 블로그를 구축하면서 참고한 글과 내용을 정리. 전체적인 프로세스는 다음 글을 참조했는데, 이 글을 바탕으로 갖가지 문제 상황은 그때그때마다 찾아보면서 해결했다. 인터넷에 정보가 많지만 늘 새롭게 업데이트되고 예측하지 못한 문제가 생긴다.
이 글을 바탕으로 이 사이트는 아래와 같은 환경으로 설정돼 있다.
- Ubuntu 20.04.2 LTS
- Apache/2.4.41
- PHP 7.4.3
- MariaDB 10.3.30
포트 활성화
방화벽의 80번, 443번 포트를 활성화
$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -I OUTPUT -p tcp --sport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
$ sudo iptables -I OUTPUT -p tcp --sport 443 -j ACCEPT
iptables 규칙 저장 및 재부팅 후에도 규칙이 적용되도록 설정
$ service iptables save
$ sudo apt-get install iptables-persistent netfilter-persistent
$ netfilter-persistent save
$ netfilter-persistent start
데이터베이스 사용자 추가 및 권한 부여
mysql> create user <사용자명>@localhost identified by <비밀번호>;
mysql> grant all privileges on <DB명>.* to <사용자명>@localhost;
mysql> flush privileges;
certbot을 이용한 SSL 인증서 발급
# snapd 설치
$ sudo apt update
$ sudo apt install snapd
# 최신 버전 확인
$ sudo snap install core; sudo snap refresh core
# certbot 설치
$ sudo snap install --classic certbot
# certbot 명령어 준비
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 인증서 설치
$ sudo certbot --apache
# 자동 리뉴얼 테스트
$ sudo certbot renew --dry-run
리뉴얼 테스트하는 중에 문제가 생기는 경우가 있었는데 /var/www/html
디렉터리의 권한을 수정해서 해결했다. (참고: 웹서비스를 위한 퍼미션 문제)
sudo chown -R www-data:www-data /var/www/html
하위 폴더에 워드프레스를 설치하고 루트에서 리디렉션하기
- 하위 디렉터리에 워드프레스를 설치
- 워드프레스 주소와 사이트 주소를 설정
- 워드프레스 주소:
https://uncategorized.xyz/wordpress/
- 사이트 주소:
https://uncategorized.xyz/
- 워드프레스 주소:
- 워드프레스 설치 폴더의
index.php
와.htaccess
파일을 루트로 복사. - 루트로 복사한
index.php
파일을 다음과 같이 수정require('./wordpress/wp-blog-header.php');
- 워드프레스 사이트에 로그인한 후 '설정' → '고유주소'로 이동한 후 '변경사항 저장' 클릭.
.htaccess
파일이 업데이트됨
이 작업을 하고 나서 고유주소를 '글 이름'으로 설정했는데 특정 글로 이동하지 못하는 문제가 발생했다. 아래 설정 파일의
/etc/apache2/apache2.conf
AllowOverride
설정을 All
로 수정해서 해결했다.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
아파치 MPM 최적화(event 타입으로)
# MPM 유형 확인
$ apachectl -V
# php-fpm 설치
$ apt-get install php-fpm
# 설치된 MPM 모듈 확인
$ ls -a /etc/apache2/mods-available/mpm*
# php 모듈과 mpm_prefork 모듈 비활성화
$ sudo a2dismod php7.4
$ sudo a2dismod mpm_prefork
# php-fpm 모듈과 mpm_event 모듈 활성화
$ sudo a2enmod mpm_event
$ sudo a2enconf php7.4-fpm
$ sudo a2enmod proxy_fcgi
# 아파치 웹 서버 재구동
$ sudo service apache2 restart
$ apachectl -V
postfix와 지메일을 이용해 메일 시스템 설정
# postfix 재설정 명령어
$ sudo dpkg-reconfigure postfix
우분투 자동 업데이트 및 재시작 설정
각종 문제 해결
PPA 리포지토리 추가/삭제
$ sudo add-apt-repository ppa:ondrej/php
$ sudo add-apt-repository --remove ppa:PPA_Name/ppa
그라바타 이미지 삭제
워드프레스를 처음 설치하면 이메일 주소에 따라 원치 않은 그라바타 이미지가 표시되는 경우가 있는데, '설정' -> '토론' -> '아바타' 항목을 통해 비활성화할 수 있다.