태그 보관물: 설정

우분투 20.04에 워드프레스 사이트 구축하기

이번에 이 워드프레스 블로그를 구축하면서 참고한 글과 내용을 정리. 전체적인 프로세스는 다음 글을 참조했는데, 이 글을 바탕으로 갖가지 문제 상황은 그때그때마다 찾아보면서 해결했다. 인터넷에 정보가 많지만 늘 새롭게 업데이트되고 예측하지 못한 문제가 생긴다.

이 글을 바탕으로 이 사이트는 아래와 같은 환경으로 설정돼 있다.

  • 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

하위 폴더에 워드프레스를 설치하고 루트에서 리디렉션하기

  1. 하위 디렉터리에 워드프레스를 설치
  2. 워드프레스 주소와 사이트 주소를 설정
    • 워드프레스 주소: https://uncategorized.xyz/wordpress/
    • 사이트 주소: https://uncategorized.xyz/
  3. 워드프레스 설치 폴더의 index.php.htaccess 파일을 루트로 복사.
  4. 루트로 복사한 index.php 파일을 다음과 같이 수정
    require('./wordpress/wp-blog-header.php');
  5. 워드프레스 사이트에 로그인한 후 '설정' → '고유주소'로 이동한 후 '변경사항 저장' 클릭. .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

그라바타 이미지 삭제

워드프레스를 처음 설치하면 이메일 주소에 따라 원치 않은 그라바타 이미지가 표시되는 경우가 있는데, '설정' -> '토론' -> '아바타' 항목을 통해 비활성화할 수 있다.