wordpress with nginx on virtualization, jail
DESCRIPTION
FreeBSD 에서 가상화서버를 구축하고, 그 안에 wordpress를 구축하는 방법에 대해 설명하고 있습니다.TRANSCRIPT
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
가상화를 이용한 wordpress 서버 구축
hackartist, DarkKye
th!nkh@ck
September 4, 2014
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
1 Jail 서버 생성ZFS 생성GuestOS 생성
2 Jail 환경설정네트워크 설정
Jail 서비스도메인 설정
방화벽 설정
3 Nginx/wordpress 서버 구축패키지 설치
php-fpm 설정mysql 관리wordpress 설치nginx 설정
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
ZFS 생성
현재 서버환경이 FreeBSD에 ZFS로 되어 있기때문에 ZFS를 쓸 수 있음.
ZFS를 사용하면 개별관리 기능이 아주 용이함(특히 스냅샷)
ZFS 생성
zfs create zroot/jails/va-jail
zroot : zpool의 이름jails : zroot 아래에 있는 zfs의 이름va-jail : 생성하고자하는 ZFS의 이름
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
GuestOS 생성
FreeBSD 10.0 base 파일 다운로드
wgetftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/base.txzwgetftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/lib32.txz
Base 파일 압축해체 및 설치
tar -JxvC /jails/jail-server-name/ -f base.txztar -JxvC /jails/jail-server-name/ -f lib32.txz
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
네트워크 설정
수동설정과 자동설정이 있음
수동설정은 운영체제가 재부팅될때마다 다시 설정을 해줘야함
ifconfig로 수동설정
ifconfig lo1 createifconfig lo1 inet 10.0.0.2 netmask 255.255.255.0ifconfig lo1 inet 10.0.0.254 netmask 255.255.255.0 alias0
자동설정은 운영체제가 재부팅되면 자동으로 설정이 됨
/etc/rc.conf 설정
cloned interfaces=“lo1”ifconfig lo1=“inet 10.0.0.2 netmask 255.255.255.0”ifconfig lo1 alias0=“inet 10.0.0.254 netmask 255.255.255.0”
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
Jail 서비스 설정 및 시작
Jail 서비스설정
/etc/rc.conf 설정
jail list=“va”jail va rootdir=“/usr/jails/va-bsd”jail va hostname=“va”jail va devfs enable=“YES”jail va interface=“lo1”jail va ip=“10.0.0.2”
Jail 서비스시작
service jail start va
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
도메인 설정
가상서버에 접속하기 위한 도메인을 설정해주는 단계
가상서버의 웹 서버를 구축하면 80번으로 ip기반 방화벽에서는 80번포트로 운영되기 힘듬HostOS에서 리다이렉팅을 해주는 방법으로 80번포트 접속시 설정된포트로 임의로 보내는 방법을 사용
HostOS의 nginx.conf 수정
server {listen 80;server name openssl.va.thinkhack.org;rewrite ∧.(.*) http://wordrpess.va.thinkhack.org:20080$1 permanent;}
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
방화벽 설정
FreeBSD에서 사용하는 방화벽은 pf를 사용함NAT 설정과 포트포워딩을 설정해주어야 함
/etc/pf.conf 파일 수정
ext if=“em0”jail ip=“10.0.0.0/24”va jail ip=“10.0.0.2”va jail ports=“{20022,20080,20081,20443}”jail proto=“{tcp,udp}”nat pass on $ext if inet from $jail ip to any -> $ext ip rdr pass on $ext if inetproto $jail proto from any to $ext ip port $va jail ports -> $va jail ip
ping과 같은 Raw 패킷을 허용하려면 아래의 sysctl을 변경해야함
security.jail.allow raw sockets=1
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
패키지 설치
nginx 설치
pkg install nginx
php-fpm 설치
cd /usr/ports/lang/php5make config-recursivemake -DBATCH=yes install cleancd /usr/ports/lang/php5-extensionsmake configmake install clean
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
php-fpm 설정
fastcgi를 사용하기 위해 두가지 통신방법이 있음socket 통신방법unixsocket 통신방법
/usr/local/php-fpm.ini 설정
listen = 127.0.0.1:9000 //socket 통신listen = /var/run/php-fpm.sock //파일기반의 unixsocket 통신
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
mysql 관리
mysql 설치
pkg install mysql
mysql 서비스 실행
echo ’mysql enable=“YES” ’ >> /etc/rc.confservice mysql-server start
database 설정
mysqladmin -u root -p password 1234mysql -u root -pcreate user ’wpuser’@’localhost’ identified by ’password’;create database wordpress;revoke all privileges, grant option from wpuser;grant all on wordpress.* to wpuser;
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
wordpress 설치
진행순서
wordpress 최신버전 다운로드웹서버를 운영할 디렉토리에 압축풀기wp-config.php 데이터베이스 설정
wget https://wordpress.org/latest.tar.gztar -xvf latest.tar.gz /usr/local/www/cp /usr/local/www/wordpresscp wp-config-sample.php wp-config.phpvi wp-config.php
wp-config.php 일부 수정
define(’DB USER’, ’wpuser’);define(’DB PASSWORD’, ’password’);
가상화를
이용한
wordpress서버 구축
hackartist,DarkKye
Jail 서버생성
ZFS 생성
GuestOS생성
Jail환경설정
네트워크
설정
Jail 서비스
도메인 설정
방화벽 설정
Nginx/wordpress서버 구축
패키지 설치
php-fpm설정
mysql 관리
wordpress설치
nginx 설정
nginx 설정
/usr/local/etc/nginx/nginx.conf 설정
server {listen 20080;server name wordpress.va.thinkhack.org;
location / {root /usr/local/www/wordpress;index index.html index.htm index.php;
}
location ∼ .php$ {root /usr/local/www/wordpress;fastcgi pass 127.0.0.1:9000;fastcgi index index.php;include fastcgi params;
}}
/usr/local/etc/nginx/fastcgi params 에 추가할 내용
fastcgi param SCRIPT FILENAME $document root$fastcgi script name;