WordPress インフラ

WordpPress - Ubuntu14.04にてNginx環境を構築し高速に

軽量Webサーバーとして近年急速にシェアを拡大している「Nginx(エンジンエックス)」を利用し、Ubuntu14.04にWordPress環境を構築する方法をご紹介!PV数が増加し、共有レンタルサーバーでは物足りなくなってしまった方必見です!

fast_nginx_wordpress

軽量WebサーバーNginxとは?

Nginxは2002年頃にロシアのIgor Sysoev氏によって、1日に5億リクエストを処理するWebサイトのHTTPサーバーとして開発されました。2004年に一般公開され、現在はBSDライクライセンスの下、LinuxやBSD系OSをはじめとするさまざまなプラットフォームで利用できるようになっています。
http://www.atmarkit.co.jp/ait/articles/1406/17/news013.htmlより

諸々必要なパッケージをインストール

作業に必要なvimgitなどのパッケージをインストール

$ sudo apt-get install git curl php5-curl vim tmux

nginx、PHP、MySQLのインストール

$ sudo apt-get update
$ sudo apt-get install nginx php5-fpm mysql-server php5-mysql

MySQLのrootユーザのパスワードを入力

2015.11.24追記

nginxにてWordPressの画像編集などの機能が動かない場合の対処
PHPのグラフィック用モジュールであるPHP-GDがインストールされていない
または有効になっていない可能性があるとのこと
http://kawatama.net/web/1376より

$ sudo apt-get install php5-gd
$ service nginx restart

この時点で、サーバーのIPアドレスを叩いてWelcome to nginx!が表示されれば無事インストール完了

PHPの設定

php-fpm

nginxはapacheと違い通常だとPHPとの連携がない
PHPとの連携をするためにphp-fpmを導入する

// バックアップ
$ cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.bk

php-fpm.confファイルを編集する

// Linuxの場合コメントを外す
events.mechanism = epoll

php.iniの設定

cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.bk
date.timezone = "Asia/Tokyo"

phpを再起動

$ sudo service php5-fpm restart

MySQLの設定

my.cnfの設定

cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bk
[client]
default-character-set=utf8

[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

sudo service mysql restart

データベースを作成

$ mysql -u root -p

mysql> CREATE DATABASE `データベース名`;

nginxの設定

virtual hostの設定

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/hoge.com.conf

// 以下をコピペ
server {
    listen        80;
    server_name   hoge.com
    rewrite ^(.*)$ http://www.hoge.com$1 permanent;
}

server {
    listen       80;
    server_name  www.hoge.com;
    root /var/www/hoge.com/;
    index index.html index.php;
    access_log      /var/log/nginx/hoge.com.access.log;
    error_log       /var/log/nginx/hoge.com.error.log;

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

    location ~ \.php$ {
            fastcgi_pass  unix:/var/run/php5-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }
}
// シンボリックリンクを貼る
sudo ln -s /etc/nginx/sites-available/hoge.com.conf /etc/nginx/sites-enabled/
service nginx restart

nginx.confの設定

ファイルのアップロードサイズを変更

$ cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk

http {
...
  client_max_body_size 20M;
...
}

// 設定ファイルを反映
$ service nginx reload

WordPressのインストール

wget等のインストール

sudo apt-get install wget unzip zip

wordpressのダウンロード

wget https://ja.wordpress.org/wordpress-4.3.1-ja.zip

アクセス権限を変更

chown -R www-data /var/www

参考

http://anopara.matrix.jp/2014/10/01/10-min-nginx-wordpress/
http://kawatama.net/web/548
http://www.server-memo.net/server-setting/nginx/nginx-413.html
http://hamako9999.net/apache2nginx/

-WordPress, インフラ
-