42seoul Born2beRoot 과제의 보너스 파트 중 하나인 lighttpd, MariaDB, PHP를 이용해 WordPress를 구축하는 과정이다.
아래 명령어로 lighttpd 웹 서버를 설치한다.
$ sudo apt-get install lightpd -y
아래는 서버 중지, 시작, 부팅 시 활성화 명령어이다.
$ sudo systemctl stop lighttpd.service // 서버 중지
$ sudo systemctl start lighttpd.service // 서버 시작
$ sudo systemctl enable lighttpd.service // 서버 부팅 (enable with start up)
아래 명령어로 웹 서버와 연동할 PHP를 설치한다.
$ sudo apt-get install php7.4-fpm
PHP-FPM: PHP FastCGI Process Manager
설치 후 다음 명령어를 통해 php.ini
파일의 cgi.fix_pathinfo=1
이 적혀있는 행의 주석을 해제한다.
$ vi /etc/php/7.4/fpm/php.ini
이후 설치한 lighttpd의 Fastcgi 설정 파일을 편집한다.
$ vi /etc/lighttpd/conf-available/15-fastcgi-php.conf
해당 파일에서 "bin-path"
와 "socket"
이 존재하는 행을 주석처리하고, "socket" => "/var/run/php/php7.3-fpm.sock"
을 추가한다.
변경사항을 적용하고, lighttpd를 재시작 시킨다.
$ sudo lighttpd-enable-mod fastcgi
$ sudo lighttpd-enable-mod fastcgi-php
$ service lighttpd force-reload
lighttpd의 설정을 확인하면
$ vi /etc/lighttpd/lighttpd.conf
위 그림과 같이 기본 설정은 위와 같이 80번 포트로 되어 있다. Born2beroot 과제의 경우 ufw
방화벽을 사용하고, 기본 설정값이 deny
이기 때문에 다음 명령을 통해 80번 포트를 허용해준다.
$ ufw allow 80
가상머신에 포트포워딩을 통해 호스트 IP의 8080 포트를 가상환경의 80번 포트에 연결한 후 접속하면 아래와 같은 화면이 나타난다.
이 화면은 lighttpd.conf
파일의 server.document-root
에 해당하는 디렉토리인 /var/www/html/
의 index.lighttpd.html
에 의해 그려진 것이다.
이 초기 페이지를 변경하고 PHP 연동이 잘 되었는지 확인해 보기 위해 /var/www/html/info.php
를 만들고 다음과 같이 작성해 준다.
<?php
phpinfo();
?>
저장 후 (hostip):8080/info.php를 통해 접속해 보면 아래와 같이 FPM/FastCGI가 잘 적용되어있는 것을 확인할 수 있다.
마지막으로 추후 설치할 DB와 연동하기 위한 패키지를 설치한다.
$ sudo apt-get install php7.4-mysql
아래 명령어로 MariaDB를 설치한다.
$ sudo apt-get install mariadb-server mariadb-client
아래는 DB 중지, 시작, 부팅 시 활성화 명령어이다.
$ sudo systemctl stop mysql.service // DB 중지
$ sudo systemctl start mysql.service // DB 시작
$ sudo systemctl enable mysql.service // DB 부팅 (enable with start up)
설치 후 아래 명령어를 통해 보안 설정을 한다.
$ sudo mysql_secure_installation
DB의 root 계정 비밀번호 설정 등 여러 설정 사항을 묻는데, 필요한 사항을 체크하면 된다. 기본적으로 다 Y
로 진행해도 무방하다.
보안 설정을 마치면 재시작 시킨다.
$ sudo systemctl restart mysql.service
아래 명령어를 실행하고 MariaDB의 보안설정에서 설정한 패스워드를 입력하면 MariaDB로 진입할 수 있다.
$ sudo mysql -u root -p
진입 후 SQL 문법을 이용해 DB를 생성, 계정 생성 후 권한을 부여한다.
CREATE DATABASE <DBname>;
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
GRANT ALL ON <DBname>.* TO '<username>'@'localhost' IDENTIFIED BY '<passwd>' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
lighttpd 설정 파일(/etc/lighttpd/lightpd.conf
)을 보면 아래와 같이 되어 있다.
여기에서 server.document-root
은 웹 페이지를 불러올 디렉토리로 여기에 WrodPress를 설치하면 된다.
$ sudo apt-get install wget
$ sudo wget -O /tmp/wordpress.tar.gz "http://wordpress.org/latest.tar.gz"
$ sudo tar -xvzf /tmp/wordpress.tar.gz -C /var/www/html
설치 후 (hostip):8080/wordpress에 접속하면 아래와 같이 DB에 관한 설정을 진행하는 페이지가 표시된다.
이 곳에서 DB에 관한 설정을 진행할 수 있지만 여기에서는 CLI 환경에서 WordPress에 DB를 연결해 볼 것이다.
설치한 WordPress와 MariaDB를 연동하기 위해 WordPress를 설치한 경로에 있는 config
파일을 편집해야한다.
$ vi /var/www/html/wordpress/wp-config-sample.php
wp-config-sample.php
인 샘플 설정 파일에서 생성한 DB와 계정, 패스워드를 편집해준다.
그 다음 동일한 파일 밑부분에 인증키를 설정해준다.
인증키는 아래 주소에서 나오는 키를 그대로 복사해 붙여넣으면 된다.
https://api.wordpress.org/secret-key/1.1/salt/
편집한 내용을 저장한 후 wq-config-sample.php
파일의 이름을 wp-config.php
로 변경시킨다.
$ mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
이제 다시 접속하면 아래와 같이 WordPress가 설치된 것을 볼 수 있다.