이전 포스트에서 nginx, php7-fpm, mariadb 설치 하는 과정을
적어 보았다
이제 가상 호스트 설정 하는 방법을 알아 보자
가상 호스트는 한 서버에서
여러 도메인을 사용 할 수 있는 기능을 말한다.
예를 들어 그누보드, 워드프레스, xe, 마젠토등을 설치하고
각각의 사이트에 도메인을 부여해서 운영 할 수 있는 방법이다.
이전 포스트를 보았다면 # 표시는 명령어가 아니고
터미널 표시인것을 알았을 것이다
그러므로 아래 내용에서 # 이 있는 줄의 내용은
그대로 복사해서(#은빼고) 터미널에 붙여 넣고 엔터를 치면 된다.
# sudo -i
위 명령어로 root 권한을 얻는다. 당연히 root 비밀번호를 입력해야 한다.
워드 프레스 가상 호스트를 만들어 보자
# adduser wordpress
위 명령어로 비밀번호를 입력하고 이름 같은건 대충 알아서 입력하면 된다.
# mkdir /home/wordpress/www
# mkdir /home/wordpress/log
# chown www-data.www-data /home/wordpress/
# chown www-data.www-data /home/wordpress/*
위 명령어로 웹의 최상위 디렉토리 www 를 만들고
접속 로그 기록을 위한 log 디렉토리를 만들고
wordpress 디렉토리에 www-data 권한을 주었다
php-fpm 은 www-data 권한으로 실행한다.
자 이제 php-fpm pool 파일을 작성해야 한다.
뭔 내용인지 모르면 그냥 따라 하면 된다.
# vi /etc/php/7.0/fpm/pool.d/wordpress.conf
위 명령어로 파일을 하나 만들고
그 내용을 아래와 같이 입력한다.
[wordpress]
user = wordpress
group = wordpress
listen = /run/php/wordpress.sock
listen.owner = wordpress
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
;php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/wordpress.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 128M
;php_admin_value[max_execution_time] = 120
;php_admin_value[max_input_time] = 300
;php_admin_value[post_max_size] = 25M
;php_admin_value[upload_max_filesize] = 25M
위와 같이 입력 후 저장하고
Nginx 서버 구문을 작성해야 한다
# vi /etc/nginx/conf.d/wordpress.conf
위 명령어를 실행 후
파일 내용을 아래와 같이 입력
server {
listen 80;
server_name mydomain.com *.mydomain.com;
root /home/wordpress/www;
access_log /home/wordpress/log/access.log;
error_log /home/wordpress/log/error.log warn;
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
}
# Block dot file (.htaccess .htpasswd .svn .git .env and so on.)
location ~ /\. {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Block .php file inside upload folder. uploads(wp), files(drupal, xe), data(gnuboard).
location ~* /(?:uploads|files|data)/.*\.php$ {
deny all;
}
# Add PHP handler
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
fastcgi_pass unix:/run/php/wordpress.sock;
}
}
위처럼 저장하면 된다.
만약 이미지, css 파일같은 static 컨텐츠를 브라우저 캐쉬 설정할려면
server 블럭 안에 아래 코드를 추가 하면 된다.
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
}
위 코드중 expires 의 설정이 캐쉬 기간 설정이다
1y는 1년, 1M은 한달, 1d는 10일, 1h는 한시간
자 위처림 했다면 이제 php와 nginx 를 재시작 해 준다.
# service php7.0-fpm restart
# service nginx restart
여기 까지 왔으면 도메인을 구매 하고 그 도메인을 서버로 연결 하면 된다.
자 다음 포스트에는 우분투에 ftp 설치 하고 접속하는 법을 알아 보자
댓글 없음:
댓글 쓰기