WordPress with nginx – jail/nas4free 설치

1412239 nginx는 apache 2 보다 몹집이 가벼워 웹서버의 성능이 빠르다고 알려져 있다. 그래서 집에서 사용하는 개인용 웹서버에 적합하다고 할 수 있다. 여기서는 nas4free 안에 설치된 jail 내에 nginx + wordpress 를 설치하여 개인용 블로그를 만드는 과정을 설명하고자 한다.

일단 nas4free가 설치되어 있다고 가장한다. nas4free가 설치되어 있으면 jail을 설치해야 하는데 TheBrig를 사용하여 blog용 jail을 설치 하자 (이 블로그 내의 다른 기사에서 설명함).

설치후 ssh를 사용하여 nas4free 로 로그인하고 root 권한을 획득한다.

# ssh 'jail ip'
# su 


그리고 wordpress를 설치할 jail로 들어간다.

# jls
# jexec 'JID' csh

예를 들어 blog jail의 ID 가 1 이면

# jexec 1 csh

1 . ports collection 설치

jail 내에서 다음 명령을 실행하여 ports collection을 설치한다.

# portsnap fetch
# portsnap extract
# portsnap update

2 . nginx 설치

# cd /usr/ports/www/nginx
# make config-recursive
# make install clean

리부팅시 nginx 이 자동 시작되도록 다음과 같이 rc.conf를 수정한다.

# echo  'nginx_enable="YES"'  >> /etc/rc.conf
# service nginx start

웹브라우저에서

http://(ip-address)

의 명령을 실행해서 다음과 같은 메시지가 나타나면 일단 nginx 설치는 일단 성공 ….

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

정상적으로 설치완료. 확인 후 잠시 nginx 를 정지하도록 하자.

# service nginx stop 

3 . percona (또는 mysql) 설치

다음과 같은 명령어로 설치 설정을 정해준다.

# cd /usr/ports/databases/percona56-server
# make config-recursive

잘 모르겠으면 기본 설정을 그대로 사용한다. ( OK 키를 선택하여 return 키를 누른다)

# make install clean
# cp /usr/local/share/mysql/my-default.cnf /var/db/mysql/my.cnf
# echo 'mysql_enable="YES"' >> /etc/rc.conf

이제 mysql 서버를 실행하고 root user의 비밀번호를 설정하자.
root 사용자의 비밀번호를 12345로 설정하려면

# service mysql-server start 
# /usr/local/bin/mysqladmin -u root password 12345

라고 하면 된다. root 의 비밀번호는 각자에 맞게 고치고, 나중에 wordpress 를 설치할 때 필요하므로 잘 기억해 두도록 하자.

이제 wordpress에서 사용할 데이타베이스를 만들자.

 # mysql -u root -p 

root 패스워드를 입력하면

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 286
Server version: 5.6.29-76.2 Source distribution

Copyright (c) 2009-2016 Percona LLC and/or its affiliates
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

이 나타나게 된다.

mysql> CREATE DATABASE wordpress;
mysql> quit;

을 실행한다. 여기서  wordpress 는 필요에 따라 수정하도록 한다.

4 . php 설치

# cd /usr/ports/lang/php56
# make config-recursive
# make install clean

기본 설정을 그대로 사용하도록 하자.

# make install clean
# cd /usr/ports/lang/php56-extensions
# make config-recursive  
# make install clean

php56-extensions 옵션 중 mbstrings, mysql, mysqli, PDO_MYSQL 선택하고 (필요하면 다른 옵션도 선택..)
PDO_SQLITE, SQLITE3 를 취소하도록 하자.

5. php.ini 설정하기
다음과 같은 방법으로 php.ini 을 수정해 준다.

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini 

upload_max_filesize, post_max_size 를 적당한 크기로 변경시킨다 (512M ?)
6 . php-fpm 설정

# vi  /usr/local/etc/php-fpm.conf

다음의 항목과 같은 항목 앞의 ; 를 제거하고 값을 다음과 같이 수정한다.

events.mechanism = kqueue;
listen = /var/run/php-fpm.sock;
listen.backlog = -1;
listen.owner = www;
listen.group = www;
listen.mode = 0666;

그리고 다음의 명령을 수행한다.

# echo 'php_fpm_enable="YES"' >> /etc/rc.conf

 

7 . nginx 설정

wordpress를 설치한 후 multisite 로 웹페이지를 운용할 수도 있는데 이 떄를 위해
nginx.conf 를 설정하도록 하자.

# vi /usr/local/etc/nginx/nginx.conf

nginx.conf의 내용을 다음과 같이 변경하도록 하자.

user  www;
worker_processes  4;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #gzip  on;


    server {
        listen 80;
        server_name www.myweb.com;

        access_log   /var/log/nginx-access.log;
        error_log    /var/log/nginx-error.log info;

        root /usr/local/www/wordpress ;
        index index.php;

        if (!-e $request_filename) {
                rewrite /wp-admin$ $scheme://$host$uri/ permanent;
                rewrite ^(/[^/]+)?(/wp-.*) $2 last;
                rewrite ^(/[^/]+)?(/.*\.php)$ $2 last;
        }

        location / {
                try_files $uri $uri/ /index.php?$args ;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                include fastcgi_params;
        }

        location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|g
z|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                access_log off; log_not_found off; expires max;
        }

        location = /robots.txt { access_log off; log_not_found off; }
        location ~ /\. { deny  all; access_log off; log_not_found off; }
     }
}

위에서 www.myweb.com 은 자신에게 맞는 웹주소나 ip 주소로 바꾸도록 하자.

다음 명령을 실행하여 에러 메시지가 없으면 nginx 설정 완료!!

# nginx -t

설치가 제대로 됐으면 nginx 시작하도록 하자.

# service nginx start

그리고 php-fpm 시작하자.

# service php-fpm start

8 . wordpress 설치

다음의 명령으로 wordpress 설치한다.

# cd /usr/ports/www/wordpress
# make config-recursive
# make install clean
# cd /usr/local/www/wordpress
# chown -R www:www *

그리고 웹브라우져에서

http://(ip-address)

를 입력하고 나머지 wordpress 설정한다. 이때 db의 이름, 사용자, 비밀번호에 앞에서 사용한 wordpress, root, root-비밀번호 등을 입력하도록 하자.

WordPress multisite 설치는 https://codex.wordpress.org/Create_A_Network 에 나와있는 과정을 따라 설치할 수 있다.

좋은 결과 있기를 ..

WordPress with nginx – jail/nas4free 설치

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.