[Born2beRoot] WordPress 구축

bolee·2022년 4월 13일
0

42seoul

목록 보기
11/27

42seoul Born2beRoot 과제의 보너스 파트 중 하나인 lighttpd, MariaDB, PHP를 이용해 WordPress를 구축하는 과정이다.

  • WordPress: PHP로 작성된 온라인 오픈소스 웹사이트 제작 도구이다. 즉, 쉽게 블로그나 웹사이트를 만들수 있는 도구 또는 플랫폼
  • Lighttpd: 오픈소스 경량 웹 서버
  • MariaDB: 오픈소스 관계형 데이터베이스 관리 시스템
  • PHP: 대표적인 서버 측에서 실행되는 서버 사이드 스크립트 언어

Lighttpd 설치

아래 명령어로 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 설치 및 연동

아래 명령어로 웹 서버와 연동할 PHP를 설치한다.

$ sudo apt-get install php7.4-fpm

PHP-FPM: PHP FastCGI Process Manager

  • CGI(Common Gateway Interface): 웹서버와 외부 프로그램을 연결해주는 표준화된 프로토콜
  • FastCGI: 하나의 요청에 하나의 프로세스를 생성하는 CGI와는 달리 하나의 프로세스로 요청들을 처리하여 프로세스를 생성하고 제거하는 부하를 경감

설치 후 다음 명령어를 통해 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 설치

아래 명령어로 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

WordPress에 연동할 DB 생성

아래 명령어를 실행하고 MariaDB의 보안설정에서 설정한 패스워드를 입력하면 MariaDB로 진입할 수 있다.

$ sudo mysql -u root -p

진입 후 SQL 문법을 이용해 DB를 생성, 계정 생성 후 권한을 부여한다.

  • DB 생성: CREATE DATABASE <DBname>;
  • 계정 생성 및 패스워드 설정: CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
  • 생성한 DB에 대해 생성한 계정에 full access 부여: GRANT ALL ON <DBname>.* TO '<username>'@'localhost' IDENTIFIED BY '<passwd>' WITH GRANT OPTION;
  • 설정을 마침: FLUSH PRIVILEGES;
  • 종료: EXIT;

WordPress 설치

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와 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가 설치된 것을 볼 수 있다.

https://nostressdev.tistory.com/11?category=868783

0개의 댓글