가상머신에 Wordpress를 설치하는 과정에 대해 적어보겠습니다.
저는 아래 그림에서 서버로는 lighttpd, CGI 프로그램으로는 PHP-fpm, 데이터베이스로는 Maria DB를 사용해서 Wordpress 웹사이트를 설치하였습니다.
💻 lighttpd 설치하기
우선, lighttpd에 대해서 알아보겠습니다. lighttpd는 경량 웹서버입니다. 적은 자원으로 높은 성능을 내는 것이 특징입니다. Apache와 NGINX가 가장 많이 쓰이는 웹서버이지만, 저는 가벼운 것을 사용하고 싶어서 lighttpd를 설치해서 사용하도록 하겠습니다.
우선, apt로 lighttpd를 설치합니다.
$ sudo apt install lighttpd
버전을 확인하여 lighttpd가 잘 설치되었는지 확인합니다.
$ lighttpd -v
systemctl 명령어로 lightpd 서버를 중지하고 다시 시작할 수 있습니다.
$ systemctl stop lighttpd.service
$ systemctl start lighttpd.service
$ systemctl enable lighttpd.service
마지막으로, lighttpd의 상태를 확인합니다.
$ systemctl status lighttpd
💻 PHP-fpm 설치하기
이제, php fpm을 설치할 단계입니다.
우선, php fpm에 대해서 간단하게 알아봅시다. PHP는 서버(웹서버) 측에서 해석되고 실행되는 서버 사이드 스크립트 언어입니다. PHP로 작성된 코드를 HTML 코드 안에 추가하면 동적 웹페이지를 생성할 수 있습니다. 하지만 요즘에는 PHP와 HTML을 각각 다른 파일에 작성하는 것이 일반적이라고 합니다. 그리고 따로 작성된 PHP는 PHP-fpm을 통해 실행됩니다. PHP-fpm은 PHP FastCGI Process Manager의 약자로, 여기서 CGI란 Common Gateway interface의 약자로 서버와 어플리케이션 간에 데이터를 주고 받는 방식을 말합니다. 여기서는 웹서버와 CGI 프로그램이 서로 데이터를 주고받습니다. 이 CGI 프로그램으로 우리는 PHP-fpm을 사용 하는 것입니다. FastCGI는 클라이언트의 요청을 전달할 때마다 새로운 프로세스를 생성하지 않고 이미 생성된 프로세스를 재활용하는 방식을 사용하여 처리가 빠릅니다.
저는 7.4버전의 php-fpm을 설치하였습니다.
$ sudo apt-get install php7.4-fpm
다음으로 /etc/php/7.4/fpm/php.ini 파일을 편집합니다.
💻 lighttpd와 PHP-fpm 연동하기
다음으로는 설치한 lighttpd의 Fastcgi 설정 파일(/etc/lighttpd/conf-available/15-fastcgi-php.conf)을 편집하여 lighttpd 서버와 PHP-fpm을 연동해줍니다. 원래 있던 "bin-path"와 "socket"을 주석 처리하고 "socket" => "/var/run/php/php7.4-fpm.sock,을 추가해주었습니다.
변경 사항을 적용합니다.
$ lighttpd-enable-mod fastcgi
lighttpd configuration 파일(/etc/lighttpd/lighttpd.conf)을 보면 기본 포트가 80으로 설정되어있는 것을 볼 수 있습니다.
따라서 방화벽에서 80포트로 연결할 수 있도록 ufw에 룰을 추가하여줍니다!
$ ufw allow 80
포트포워딩도 해줍니다. Guest Port를 80으로 Rule을 추가해주었습니다.
그리고 ssh 접속을 한 후에 [호스트ip]:[호스트 port]로 접속하면 다음과 같은 화면이 뜹니다.
이 화면은 lighttpd.conf파일의 server.document-root에 해당하는 디렉토리인 /var/www/html/의 index.lighttpd.html에 해당하는 페이지입니다. 아래가 index.lighttpd.html 파일입니다.
기본 페이지 말고, PH-fpm과 연동이 잘 되었는지 확인해볼 수 있는 페이지를 만들어보겠습니다. /var/www/html/info.php를 만들고 다음과 같이 작성해보겠습니다.
그리고나서 [호스트IP]:[호스트 포트]/info.php에 접속하면 다음과 같은 화면이 뜨고, PHP-fpm이 잘 연결되어 있는 것을 확인할 수 있습니다 😀
💻 MariaDB 설치 및 데이터베이스 생성
다음으로는 MariaDB를 설치하고 데이터베이스를 만들어보겠습니다.
$ apt-get install mariadb-server mariadb-client
다음 명령어를 입력하면 쉘 스크립트가 실행된는데 옵션은 모두 yes를 선택하여 진행하였습니다.
$ mysql_secure_installation
mysql을 재시작합니다.
$ systemctl restart mysql.service
mysql 쿼리로 데이터베이스를 생성하고 사용자를 만들어서 모든 권한을 부여합니다.
CREATE DATABASE WordPressDB;
CREATE USER username@localhost IDENTIFIED BY 'password';
GRANT ALL ON WordPressDB.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
💻 PHP와 DB 연동
PHP와 DB를 연동하기 위한 패키지를 설치합니다.
apt install php7.4-mysql
💻 Wordpress 설치
web에서 파일을 방아서 wordpress를 설치하기 위해 먼저 wget을 설치합니다.
$ apt-get install wget
wget으로 wordpress 웹페이지에서 압축파일을 다운받은 후, /var/www/html 디렉토리에 압축을 풀어줍니다.
$ wget -O /tmp/wordpress.tar.gz "http://wordpress.org/latest.tar.gz"
$ tar -xvzf /tmp/wordpress.tar.gz -C /var/www/html
/var/www/html/wordpress/wp-config-sample.php 파일을 수정해줍니다. 데이터베이스 이름와 사용자, 비밀번호를 앞에서 설정한 값으로 바꾸어주면 됩니다.
같은 파일의 아래부분에 아래 주소에 접속해서 나타나있는 값을 입력해줍니다. 이때, 가상머신에서는 복사붙여넣기가 되지 않으므로 ssh 접속해서 터미널에서 하시면 편리합니다!
https://api.wordpress.org/secret-key/1.1/salt/
그리고나서 (호스트 IP):(호스트 Port)/wordpress에 접속하시면 아래처럼 워드프레스 페이지를 보실 수 있습니다✨
참고한 페이지
'CS > OS' 카테고리의 다른 글
⚙️ LVM | LVM이란, LVM의 필요성 (0) | 2022.07.09 |
---|---|
sudo | sudo란? sudo의 필요성 (0) | 2022.07.09 |
가상머신에서 디스크 파티셔닝하기 | LVM | Virtual Box | Debian (0) | 2022.07.05 |
댓글