WordPress 구축
WordPress를 웹에 구축하기 위해 PHP, lighttpd, MariaDB의 설치가 필요하다.
- PHP
대표적인 서버 사이드 스크립트 언어
웹개발에 특화되어 있다.- 서버 사이드 언어?
온라인 기반 서비스를 백엔드와 프론트엔드로 구분하였을 때, 백엔드에서 서버 동작을 정의하기 위한 언어
- 서버 사이드 언어?
lighttpd
저자원 고성능의 오픈소스 웹서버 애플리케이션
속도가 빠르며 용량이 낮다.- MariaDB
오픈소스 RDBMS.
MySQL 출신 개발자들이 개발.
우분투, 데비안, RHEL, 페도라 등에서 기본DB로 지원.
lighttpd 설정
lighttpd 웹서버 설치
sudo apt install lighttpd -y
lighttpd 관련 명령어
1 2 3
sudo systemctl start lighttpd.service # 서버 시작 sudo systemctl stop lighttpd.service # 서버 중지 sudo systemctl enable lighttpd.service # 부팅시 서버 시작
PHP 설정
PHP-FPM(PHP FastCGI Process Manager)설치
sudo apt install php7.4-fpm
- PHP-FPM : 하나의 프로세스로 요청을 처리하여 프로세스를 생성, 제거하는 부하를 경감해줌.
php.ini 파일 내용 수정
vim /etc/php/7.4/fpm/php.ini
cgi.fix_pathinfo=1
부분 주석 해제Fastcgi 파일 내용 수정
vim /etc/lighttpd/conf-available/15-fastcgi-php.conf
bin-path, socket 행 주석처리
"socket" => "/var/run/php/php7.4-fpm.sock",
추가변경사항 적용 후 lighttpd 재시작
1 2 3
sudo lighttpd-enable-mod fastcgi sudo lighttpd-enable-mod fastcgi-php service lighttpd force-reload
ufw 방화벽의 웹서버용 포트 허용
ufw allow 80
포트포워딩
가상머신의 환경설정을 통해 포트포워딩 규칙 추가.- Host Port : 8000(임의로)
- Guest Port : 80(위에서 허용한 포트)
이후 http://localhost:8000 (또는 http://127.0.0.1:8000)에 접속하면 아래와 같은 화면을 볼 수 있다.
PHP 연동 확인
vim /var/www/html/info.php
으로 아래 내용 입력한 뒤, http://localhost:8000/info.php 접속1 2 3
<?php phpinfo(); ?>
위와 같이 FPM/FastCGI가 제대로 적용되었음을 알 수 있다.
- MariaDB와 연동할 패키지 설치
sudo apt install php7.4-mysql
MariaDB 설정
DB 설치
sudo apt install mariadb-server mariadb-client
- DB 관련 명령어
1 2 3
sudo systemctl start mysql.service # DB 시작 sudo systemctl stop mysql.service # DB 중지 sudo systemctl enable mysql.service # 부팅시 DB 시작
DB 보안설정
sudo mysql_secure_installation
비밀번호 설정이 처음이면 current pw는 엔터로 넘기고 뒤에서 등록. 대부분 Y로 설정.
sudo systemctl restart mysql.service
로 DB 재시작WordPress에 연동할 DB 생성
sudo mysql -u root -p
: 비밀번호 입력 후 mysql 진입1 2 3 4 5 6 7
CREATE DATABASE [dbname]; -- DB 생성 CREATE USER '[username]'@'localhost' IDENTIFIED BY '[password]'; -- 계정 및 패스워드 생성 GRANT ALL ON [dbname].* TO '[username]'@'localhost' IDENTIFIED BY '[passwd]' WITH GRANT OPTION; -- 생성한 DB에 대해 생성한 계정에 full access 부여 FLUSH PRIVILEGES; -- 설정 종료 EXIT; -- 종료
위의 SQL문법을 사용해 아래와 같이 DB생성
1 2 3 4 5
CREATE DATABASE mydb; CREATE USER 'taehooki'@'localhost' IDENTIFIED BY 'db-pw'; GRANT ALL ON mydb.* TO 'taehooki'@'localhost' IDENTIFIED BY 'db-pw' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;
WordPress 설정
WordPress 설치
lighttpd.conf에 나와있는 경로인 /var/www/html에 wordpress를 설치.1 2 3
sudo apt install wget # wget 설치 sudo wget -O /tmp/wordpress.tar.gz "http://wordpress.org/latest.tar.gz" # WP 압축파일 다운로드 sudo tar -xvzf /tmp/wordpress.tar.gz -C /var/www/html # 해당 압축파일을 원하는 경로에 설치
- wget(Web Get) : 웹 상의 파일을 받을 때 사용하는 명령어
설치를 마치고 http://localhost:8000/wordpress 에 접속하면 아래와 같이 DB를 생성하라는 화면이 보임.
이 페이지에서 DB를 직접 생성하는 대신 위에서 생성한 DB를 연결.
WordPress - MariaDB 연동
vim /var/www/html/wordpress/wp-config-sample.php
db이름, db유저명, db암호를 위에서 설정한 대로 변경
아래에 auth key 설정하는 부분은 아래의 주소로 접속해서 키를 생성한 뒤 그대로 입력하면 된다.
(주의사항 : 다시 접속하면 새로 생성된다!)
https://api.wordpress.org/secret-key/1.1/salt/저장 후 파일명을 아래와 같이
wp-config.php
로 변경
mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
http://localhost:8000/wordpress/ 재접속
계정 설정
사이트 생성 완료
사이트 설정
http://localhost:8000/wordpress/ 에 재접속하면 다음과 같은 화면이 나옴.
FTP 설정
미완성
vsftpd 설치
sudo apt install vsftpd
dpkg -l | grep vsftpd
: 설치 확인21번 포트를 통한 incoming 접속 허용
sudo ufw allow 21
포트포워딩
가상머신의 환경설정을 통해 포트포워딩 규칙 추가.
- Host Port : 7000(임의로)
- Guest Port : 21(위에서 허용한 포트)
- vsftpd 설정
FTP 쓰기 명령 허용
sudo vim /etc/vsftpd.conf
위와 같이 31번줄의write_enable=YES
를 주석해제.FTP 연결의 루트 폴더를 특정 유저로 설정
sudo mkdir -p /home/[username]/ftp/files
디렉토리 소유권 변경
root 계정으로 생성한 폴더는 사용자가 이미지를 업로드하는 등의 이용이 불가능하므로 권한을 root에서 nobody로 변경하는 것.
sudo chown nobody:nogroup /home/[username]/ftp
- 모든 사용자에게서 쓰기권한 제거
sudo chmod a-w /home/[username]/ftp
sudo vim /etc/vsftpd.conf
마지막에 아래 내용 추가1 2
user_sub_token=$USER local_root=/home/$USER/ftp
유저가 파일에 접근하거나 디렉토리 트리(?) 밖에서 명령하는것을 제한.
sudo vim /etc/vsftpd.conf
114번줄의chroot_local_user=YES
주석 해제
FTP 화이트리스트 지정
sudo touch /etc/vsftpd.userlist
echo <username> | sudo tee -a /etc/vsftpd.userlist
sudo vim /etc/vsftpd.userlist
아래 내용 추가1 2 3
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
vsftpd.conf 수정
sudo vim /etc/vsftpd.conf
에서 마지막에 아래 내용 추가1 2 3
pasv_enable=Yes pasv_max_port=11001 pasv_min_port=11050
- FTP를 통해 서버 접속
로컬 cmd에서 아래와 같이 입력해서 VM에 FTP로 연결ftp
open 127.0.0.1. 7000 # open <ip address> <port>
- 파일 송수신
1 2
cd files # ~/ftp/files/ 로 파일 경로 설정 put d:\[dirname]~\[filename] # 파일 업로드
앞부분까지는 잘 되다가 파일 업로드를 하려고 하면 아래와 같은 에러가 발생한다.
1 2
500 Illegal PORT command. 425 Use PORT or PASV first.
Ref.
https://velog.io/@jen133/b2br-Wordpress-구축
https://github.com/hanshazairi/42-born2beroot