VirtualBox Debian - lighttpd, mariaDB, php로 wordpress 구축

2021. 6. 10. 21:55Linux \ UNIX

 

워드프레스를 설치하려면 PHP를 사용할 수 있는 웹서버데이터베이스 서버가 필요하다.

 

웹 서버는 Lighttpd, 데이터베이스 서버는 MariaDB 로 진행!

 

 

웹 서버, CGI, FastCGI - PHP를 사용하는 이유?

< 웹 서버 > 소프트웨어 측면에서의 웹 서버란, 웹 브라우저와와 같은 클라이언트로부터 HTTP 요청을 받아들이고, 이를 HTML 문서 와 같은 정적 페이지로 처리해 반환 하는 프로그램이다. 정적이

nostressdev.tistory.com

 

 

< Lighttpd 설치 >

 

다음 명령어를 통해, lighttpd 웹 서버를 설치한다.

sudo apt-get install lighttpd


서버를 중지, 시작, 부팅 시 활성화 하는 명령어.

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.3-fpm


PHP-FPM 은 PHP FastCGI Process Manager의 약자.

 

설치 후, 다음 명령어를 통해 php.ini 파일의

cgi.fix_pathinfo=1 행 주석을 해제한다!

vi /etc/php/7.3/fpm/php.ini 

 



/etc/php/7.3/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"

을 추가한다.

/etc/lighttpd/conf-available/15-fastcgi-php.conf


변경사항을 적용하고, lighttpd 재시작.

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

 

 

이제, 다음 명령을 통해 lighttpd 의 설정을 확인해보자.

vi /etc/lighttpd/lighttpd.conf

/etc/lightpd/lighttpd.conf

 

기본 설정은 위와 같이 80번 포트로 되어 있다.

ufw 방화벽이 켜져 있어서,

다음 명령을 통해 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 가 잘 적용되었음을 확인할 수 있다. 



 

 

< MariaDB 설치 >

웹 서버와 PHP가 정상적으로 동작하는 것을 확인하였으니,

데이터베이스 서버를 설치할 차례.

sudo apt-get install mariadb-server mariadb-client

 

sudo systemctl stop mysql.service
sudo systemctl start mysql.service
sudo systemctl enable mysql.service		#enable with start up

 

 

설치를 마치고, 다음 명령어를 통해 보안 설정을 진행.

 

sudo mysql_secure_installation

데이터베이스의 root 계정 비밀번호 설정이나

여러가지 설정 사항을 묻는데,

잘 읽어보면서 필요한 사항을 체크할 것.

기본적으로 다 Y 로 진행해도 무방.

 

설정을 마친 뒤 재시작.

sudo systemctl restart mysql.service

 

 

 

 

 

 

< Wordpress에 연동할 DB 생성 > 

 

다음 명령을 실행하고,

위 mysql_secure_installation에서 설정한 비밀번호를 입력하면,

MariaDB 로 진입할 수 있다.

sudo mysql -u root -p

 


진입한 뒤에는 SQL 문법을 통해

DB를 생성하고, 계정을 만들고, 권한을 부여할 수 있다!

 


데이터베이스 생성.

CREATE DATABASE <DBname>;

 

계정과 암호 생성.

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

 

생성한 DB에 대한 full access 를 부여.

GRANT ALL ON <DBname>.* TO '<username>'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;

 

설정을 마치고 종료.

FLUSH PRIVILEGES;

EXIT;

 

 

 

 

< Wordpress 설치 >

 

위 lighttpd 설정 과정에서,

/etc/lighttpd/lightpd.conf

 

server.document-root 가 설정되어 있던 디렉토리이다.

info.php 를 작성하는 과정에서 알 수 있었겠지만,

웹 페이지를 불러올 디렉토리.

 

해당 디렉토리에 Wordpress를 설치해주자.

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

로 접속해보니...

 

PHP를 설치할 때 DB와 연동하기 위해 필요한 패키지를 빼먹었나보다.

설치해주자.

sudo apt-get install php7.3-mysql 

 

 

php-mysql 패키지 설치를 마치고 다시 접속해보면

다음과 같이 DB에 관한 설정을 진행하는 페이지가 표시된다.

 

 

이 페이지를 통해 진행할 수도 있지만,

CLI 환경에서 Wordpress 에 DB 를 연결해보자.

 

 

< Wordpress 와 MariaDB 연동 >

설치한 Wordpress

아까 생성했던 DB를 연동하기 위해,

 

Wordpress 를 설치한 경로에 있는

config 파일을 편집해야 한다.

 

vi /var/www/html/wordpress/wp-config-sample.php

 

샘플 설정 파일이 있다.

설정 파일에서, 다음 부분을 위에서 생성한 데이터베이스와 계정, 암호로 편집해주자.

 

wp-config-sample.php

 

 

밑으로 조금 더 내려보면, 인증 키를 설정하는 부분이 있다.

 

wp-config-sample.php > secret-key 설정

https://api.wordpress.org/secret-key/1.1/salt/


위 주소로 접속하면 나오는 키를 그대로 복붙만 하면 된다!

secret-key

 

편집 사항을 저장한 뒤

sample 파일의 이름을

wp-config.php 로 변경.

mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

 

이제 다시 접속해보면 ...

 

Wordpress 초기 화면

 

Wordpress 설치 완료!