열렬히.뛰기

born2beroot - 보너스 (1)

école 42 > born2beroot > born2beroot - 보너스 (1)

lighttpd

lighttpd는 적은 자원을 사용해서 높은 성능을 내는 오픈 소스 기반 웹 서버 애플리케이션이다.

공식 문서에 따르면 “라이티”라고 읽는다고 한다.

lighttpd 설치하기

bash
sudo apt install lighttpd

서버 설정하기

웹 서버를 설정하는 명령어는 다음과 같다.

bash
sudo systemctl stop lighttpd.service
sudo systemctl start lighttpd.service
sudo systemctl enable lighttpd.service
sudo systemctl disable lighttpd.service

PHP

  • 워드프레스는 DB와 정보를 주고 받기 위해 PHP를 사용한다.
  • PHP는 Personal HomePage tools 의 줄임말로 서버 사이드 프로그래밍 언어이다.
  • 주로 HTML 코드를 동적으로 생성하기 위해 사용한다.

PHP를 설치하기 위해 아래의 명령어를 터미널에 입력한다.

bash
sudo apt install php7.4-fpm

참고로 fpm은 FastCGI Process Manager 의 약자이다.

  • CGI : Common Gateway Interface 의 약자로 웹 서버와 외부 프로그램을 연결하는 표준화 프로토콜이다. 정적 페이지가 아닌 동적 페이지를 처리해야 하는 경우에 사용한다. 클라이언트 요청마다 프로세스를 하나씩 생성하기 때문에 요청이 많아지면 서버 부담이 커진다.
  • FastCGI : CGI의 단점을 보완하기 위해 하나의 프로세스로 여러 요청들을 처리하여 프로세스 생성 및 제거에 들어가는 부하를 줄인다. (멀티 스레딩) 클라이언트의 요청을 외부 PHP 프로그램에 전달하는 역할을 수행한다.

php와 lighttpd 연결하기

우선 lighttpd의 fastcgi 설정 파일을 연다.

bash
sudo vim /etc/lighttpd/conf-available/15-fastcgi-php.conf

아래의 내용을 주석처리한다.

bash
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/run/lighttpd/php.socket",

이후 아래 내용을 추가하고 저장한다.

bash
"socket" => "/var/run/php/php7.4-fpm.sock",

아래의 명령어를 입력하여 lighttpd 를 재시작 한다.

bash
sudo lighttpd-enable-mod fastcgi 
sudo lighttpd-enable-mod fastcgi-php
sudo service lighttpd force-reload

방화벽 열기

lighttpd 설정 파일에 의하면 기본 포트는 80번으로 되어 있다.

현재 과제에서는 ufw 방화벽을 사용하고 있기 때문에 해당 포트 번호를 열어주어야 한다.

bash
sudo ufw allow 80

VirtualBox 의 포트포워딩에서 다음과 같이 추가한다.

  • Host IP / Host Port : 로컬 컴퓨터 IP 주소, 8080
  • Guest IP / Guest Port : 가상 머신 IP 주소, 80

로컬 컴퓨터의 브라우저에서 로컬 컴퓨터 IP주소:8080 를 주소창에 입력하면 다음과 같은 페이지가 뜬다.

위의 페이지는 ligthttpd.conf 파일의 server.document-root 에 해당하는 디렉토리인 /var/www/html/ 의 index.lighttpd.html 파일을 보여준 것이다.

해당 초기 페이지를 변경하고 PHP와 연동을 하기 위해 /var/www/html/ 경로에 info.php 파일을 생성한다.

php
<!-- info.php -->
<?php
	phpinfo();
?>

이후 로컬 컴퓨터 IP주소:8080/info.php 로 접속하면 아래와 같이 FPM/FastCGI 가 정상적으로 적용된 것을 확인할 수 있다.

php와 DB를 연동하기 위한 패키지를 설치한다.

bash
sudo apt install php7.4-mysql

MariaDB

  • MYSQL의 커뮤니티 버전을 포크한 RDBMS
  • MySQL에서 사용하던 기능을 MariaDB에서도 사용할 수 있으며, 마이그레이션도 쉽게 진행할 수 있다.

MariaDB 설치 & 세팅

다음 명령어를 이용해 설치한다.

bash
sudo apt install mariadb-server mariadb-client -y
  • mariadb-server : 실제로 서버에 데이터를 저장하는 프로그램
  • mariadb-client : 클라이언트가 서버 데이터베이스에 접근할 때 사용하는 프로그램

DB를 시작하는 명령어도 있다.

bash
sudo systemctl stop mysql.service			# 서버 중지
sudo systemctl start mysql.service		# 서버 시작
sudo systemctl enable mysql.service		# 부팅 시 서버 실행
sudo systemctl disable mysql.service	# 부팅 시 서버 실행 정지

아래의 명령어로 보안설정을 한다.

bash
sudo mysql_secure_installation

이걸 보면서 보안 설정을 진행해 보자.

https://absorbed.tistory.com/entry/mysqlsecureinstallation명령어를-알고-계시나요absorbed.tistory.com

보안 설정이 끝나면 서비스를 재시작한다.

bash
sudo systemctl restart mysql.service

워드프레스와 연동시킬 DB 생성

아래의 명령어를 입력하여 MariaDB로 진입할 수 있다.

패스워드는 MariaDB 보안설정 시 설정한 패스워드와 동일하다.

bash
# -u : 접속할 유저 이름
sudo mysql -u root

SQL 문법을 사용해서 DB를 생성하고, 계정을 만들고 DB 접근 권한을 부여한다.

sql
# DB 생성
CREATE DATABASE wpdb;
# 계정 생성 및 패스워드 설정
CREATE USER 'wp-user'@'localhost' IDENTIFIED BY 'wp-pw';
# 계정이 DB에 접근할 수 있는 모든 권한 부여
GRANT ALL ON wpdb.* TO 'wp-user'@'localhost' IDENTIFIED BY 'wp-pw' WITH GRANT OPTION;
# 설정을 마침
FLUSH PRIVILEGES;
# 종료
EXIT;