Wordpress는 PHP를 기반으로 한 설치형 블로그이다. 따라서 의존성이 있는 php패키지들을 설치하여야 한다. 나는 링크에서 제안하는 php패키지들과 php-fpm을 설치하였다.
wp-cli
는 Wordpress의 커맨드라인 인터페이스이다. 웹브라우저 없이 CLI 환경에서 Wordpress를 설정할 수 있게 해준다. 컨테이너 이미지를 설계할 때 유용하다.
링크의 가이드를 따라 설치하자.
curl
명령어로 wp-cli.phar
을 다운로드하는데 이를 실행 파일이 있는 경로 /usr/bin
으로 옮겨 실행할 수 있다.
명령어를 실행할 때마다 매번 wp-cli.phar
를 타이핑하는 것은 번거롭기 때문에 심볼릭링크 wp
을 생성해줬다. 링크를 따라 설정해도 문제가 없다.
wp core download
명령어에서 알 수 있듯이 Wordpress의 핵심 파일을 다운로드한다. 필요한 옵션을 추가했다.
--path
: 설치할 경로를 지정할 수 있다. 도커의 볼륨으로 마운트한 /var/www/html/wordpress
에 설치를 진행하였다.--allow-root
: wp-cli
는 보안의 문제 때문에 root권한으로 실행되는 것을 막고 있다. 하지만 우리는 독립된 컨테이너 안에서 명령이 실행되기 때문에 크게 위험한 부분이 없기 때문에 --allow-root
옵션을 주자. (관련 내용)이 두 옵션은 wp-cli
를 사용할 때마다 매번 필요하다.
다음으로 워드프레스가 사용할 데이터베이스를 받아 설정파일을 생성해준다.
wp config create \
--dbname=$MYSQL_DATABASE \
--dbuser=$MYSQL_USER \
--dbpass=$MYSQL_USER_PASSWORD \
--dbhost=$MYSQL_HOST
이제 생성된 데이터베이스에 워드프레스 테이블을 설치해줄 수 있다. 여기서 관리자계정의 정보를 기입한다.
wp core install \
--url=$WP_URL \
--title=$WP_TITLE \
--admin_user=$WP_ADMIN \
--admin_password=$WP_ADMIN_PASSWORD \
--admin_email=$WP_ADMIN_EMAIL
관리자 외에 일반 계정을 하나 추가했다.
wp user create $WP_USER $WP_USER_EMAIL \
--user_pass=$WP_USER_PASSWORD \
--role=author
--role=author
: author는 오직 자신의 게시물만 관리할 수 있다.
이로써 기본적인 Wordpress의 설정은 마쳤다.
php-fpm
은 웹서버(nginx
)의 요청을 기다리고 요청받은 동적 컨텐츠
를 처리하는 역할을 한다.
설정파일 /etc/php7/php-fpm.d/www.conf
을 수정하여 주자.
listen = 127.0.0.1
-> listen = 9000
listen
은 어떤 TCP/IP의 요청을 기다릴지 설정해줄수 있다. 9000
번 포트로 들어오는 모든 요청에 응답하도록 수정해준다.
php-fpm7 -F
로 php-fpm 데몬을 실행한다. -F
옵션은 데몬이 포그라운드에서 실행되도록 한다.