lighttpd
lighttpd는 적은 자원을 사용해서 높은 성능을 내는 오픈 소스 기반 웹 서버 애플리케이션이다.
공식 문서에 따르면 “라이티”라고 읽는다고 한다.
lighttpd 설치하기
sudo apt install lighttpd
서버 설정하기
웹 서버를 설정하는 명령어는 다음과 같다.
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를 설치하기 위해 아래의 명령어를 터미널에 입력한다.
sudo apt install php7.4-fpm
참고로 fpm은 FastCGI Process Manager 의 약자이다.
- CGI : Common Gateway Interface 의 약자로 웹 서버와 외부 프로그램을 연결하는 표준화 프로토콜이다. 정적 페이지가 아닌 동적 페이지를 처리해야 하는 경우에 사용한다. 클라이언트 요청마다 프로세스를 하나씩 생성하기 때문에 요청이 많아지면 서버 부담이 커진다.
- FastCGI : CGI의 단점을 보완하기 위해 하나의 프로세스로 여러 요청들을 처리하여 프로세스 생성 및 제거에 들어가는 부하를 줄인다. (멀티 스레딩) 클라이언트의 요청을 외부 PHP 프로그램에 전달하는 역할을 수행한다.
php와 lighttpd 연결하기
우선 lighttpd의 fastcgi 설정 파일을 연다.
sudo vim /etc/lighttpd/conf-available/15-fastcgi-php.conf
아래의 내용을 주석처리한다.
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/run/lighttpd/php.socket",
이후 아래 내용을 추가하고 저장한다.
"socket" => "/var/run/php/php7.4-fpm.sock",
아래의 명령어를 입력하여 lighttpd 를 재시작 한다.
sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php
sudo service lighttpd force-reload
방화벽 열기
lighttpd 설정 파일에 의하면 기본 포트는 80번으로 되어 있다.
현재 과제에서는 ufw 방화벽을 사용하고 있기 때문에 해당 포트 번호를 열어주어야 한다.
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 파일을 생성한다.
<!-- info.php -->
<?php
phpinfo();
?>
이후 로컬 컴퓨터 IP주소:8080/info.php 로 접속하면 아래와 같이 FPM/FastCGI 가 정상적으로 적용된 것을 확인할 수 있다.
php와 DB를 연동하기 위한 패키지를 설치한다.
sudo apt install php7.4-mysql
MariaDB
- MYSQL의 커뮤니티 버전을 포크한 RDBMS
- MySQL에서 사용하던 기능을 MariaDB에서도 사용할 수 있으며, 마이그레이션도 쉽게 진행할 수 있다.
MariaDB 설치 & 세팅
다음 명령어를 이용해 설치한다.
sudo apt install mariadb-server mariadb-client -y
mariadb-server: 실제로 서버에 데이터를 저장하는 프로그램mariadb-client: 클라이언트가 서버 데이터베이스에 접근할 때 사용하는 프로그램
DB를 시작하는 명령어도 있다.
sudo systemctl stop mysql.service # 서버 중지
sudo systemctl start mysql.service # 서버 시작
sudo systemctl enable mysql.service # 부팅 시 서버 실행
sudo systemctl disable mysql.service # 부팅 시 서버 실행 정지
아래의 명령어로 보안설정을 한다.
sudo mysql_secure_installation
이걸 보면서 보안 설정을 진행해 보자.
https://absorbed.tistory.com/entry/mysqlsecureinstallation명령어를-알고-계시나요absorbed.tistory.com보안 설정이 끝나면 서비스를 재시작한다.
sudo systemctl restart mysql.service
워드프레스와 연동시킬 DB 생성
아래의 명령어를 입력하여 MariaDB로 진입할 수 있다.
패스워드는 MariaDB 보안설정 시 설정한 패스워드와 동일하다.
# -u : 접속할 유저 이름
sudo mysql -u root
SQL 문법을 사용해서 DB를 생성하고, 계정을 만들고 DB 접근 권한을 부여한다.
# 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;