Wordpress4.4,Ubuntu14.04.3 LTS,nginx/1.8.1,PHP 5.6.16,MySQL Ver 14.14 インストール手順

### 前提条件
* OS : Ubunntu 14.04.3 LTS
* nginx : 1.8.1 
* PHP : 5.6.16
* MySQL Ver 14.14

### 1. nginx version: nginx/1.8.0

#### インストール

```bash
[root]

$ curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
$ sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
$ sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
$ sudo apt-get update
$ sudo apt-get install nginx
$ nginx -v
nginx version: nginx/1.8.1
```

#### nginx.confの編集
フォームからPOSTできるファイルサイズを、500MBに設定しています。
詳しくは[こちら。](http://qiita.com/n-oshiro/items/4816ad71b90a9967fa18)

```bash
[root]

$ mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.`date "+%Y%m%d"`
$ cp /etc/nginx/nginx.conf.`date "+%Y%m%d"` /etc/nginx/nginx.conf
$ vi /etc/nginx/nginx.conf
```

```bash:/etc/nginx/nginx.conf
http {
  client_max_body_size 500M;
}

```

```bash
[root]

# ログ出力フォルダ作成
$ mkdir -p /var/log/nginx/log/
```

### 2. php-fpm

#### インストール

```bash
[root]

$ sudo apt-get install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm
$ php -v
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
```

#### php-fpm.confの編集
多重I/Oの設定をしています。
epollの説明は[こちら](http://alpha.mixi.co.jp/entry/2007/10631/)が良いかと思います。

```bash
[root]

$ mv /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.`date "+%Y%m%d"`
$ cp /etc/php5/fpm/php-fpm.conf.`date "+%Y%m%d"` /etc/php5/fpm/php-fpm.conf
$ vi /etc/php5/fpm/php-fpm.conf
```

```bash:/etc/php5/fpm/php-fpm.conf
events.mechanism=epoll ＃コメントアウトを外す
```

#### www.confの編集

```
[root]

$ mv /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/www.conf.`date "+%Y%m%d"`
$ cp /etc/php5/fpm/pool.d/www.conf.`date "+%Y%m%d"` /etc/php5/fpm/pool.d/www.conf
$ vi /etc/php5/fpm/pool.d/www.conf
```

```bash:/etc/php5/fpm/pool.d/www.conf
user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx
listen.mode = 0660 #コメントアウトを外す
```


#### php.iniの編集
フォームからPOSTできるファイルサイズを、500MBに設定しています。

```bash
[root]

$ mv /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.`date "+%Y%m%d"`
$ cp /etc/php5/fpm/php.ini.`date "+%Y%m%d"` /etc/php5/fpm/php.ini
$ vi /etc/php5/fpm/php.ini
```

```bash:/etc/php5/fpm/php.ini
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600
memory_limit = 500M
```

設定ができたらサービスを再起動して反映させます。

```bash
[root]

$ /etc/init.d/php5-fpm restart
```


### 3. MySQL

#### インストール

```bash
[root]

$ apt-get install mysql-server-5.6

※ 途中、MySQLのrootパスワード入力するコンソールが表示されるので、入力してEnter。
　インストール後の初期設定ですぐに変更するので、[password]とかでもOKです。
```

#### my.cnfの編集

```bash
[root]

$ mv /etc/mysql/my.cnf /etc/mysql/my.cnf.`date "+%Y%m%d"`
$ cp /etc/mysql/my.cnf.`date "+%Y%m%d"` /etc/mysql/my.cnf
$ vi /etc/mysql/my.cnf
```

```bash:/etc/mysql/my.cnf
[mysqld_safe]
log-error=/var/log/mysqld.log

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8
```

設定ができたらサービスを再起動して反映させます。

```bash
[root]

$ service mysql restart
```

#### MySQL初期設定
mysql_secure_installationを実行します。
実施される内容は、[こちら](http://qiita.com/yoshi-naoyuki/items/d9b5655cdf77ca435faa)が詳しいです。

```bash
[root]

$ /usr/bin/mysql_secure_installation

Change the root password? [Y/n] Y
New password: <- 新しいrootパスワードを入力
Re-enter new password: <- 新しいrootパスワードを入力
Reloading privilege tables..
 ... Success!
 
Remove anonymous users? [Y/n] Y
 ... Success!
 
Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] Y
 ... Success!
 
Reload privilege tables now? [Y/n] Y
 ... Success!
 
Thanks for using MySQL!

Cleaning up...
```

#### WordPress用のDBを作成

```bash
[root]

$ mysql -u root -p
mysql> CREATE DATABASE wordpress;
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost IDENTIFIED BY "[データベースWordPressのパスワード]";
mysql> quit;
```

### 4. Wordpress

#### インストール

WordPressのバージョンは新しくなっていくので、最新版のtar.gzのURLを指定して下さい。
![日本語_—_WordPress.png](https://qiita-image-store.s3.amazonaws.com/0/11476/d62c1454-90a2-9e23-5b0a-bc1f63ec116b.png "日本語_—_WordPress.png")


```bash
[root]

$ cd ~
$ wget https://ja.wordpress.org/wordpress-4.4-ja.tar.gz
$ mkdir -p /var/www/samplesite/wordpress
$ tar zxvf wordpress-4.4-ja.tar.gz -C /var/www/samplesite
$ chown -R nginx:nginx /var/www/samplesite/wordpress/
$ chmod -R 707 /var/www/samplesite/wordpress/
```

#### サイトの設定

```bash
[root]

$ mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.`date "+%Y%m%d"`
$ cp /etc/nginx/conf.d/default.conf.`date "+%Y%m%d"` /etc/nginx/conf.d/default.conf
$ vi /etc/nginx/conf.d/default.conf
```

```bash:/etc/nginx/conf.d/default.conf
    location / {
        #root   /usr/share/nginx/html;
        #index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $request_filename;
        include        fastcgi_params;
    }

    location ^~ /samplesite{
        alias /var/www/samplesite/wordpress;
        index index.php index.html index.htm;
        try_files $uri $uri/ /samplesite/index.php;

        location ~ \.php$ {
            fastcgi_pass  unix:/var/run/php5-fpm.sock;
            fastcgi_split_path_info ^(/wordpress)(/.*)$;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $request_filename;
            include        fastcgi_params;
        }
    }
```

nginxとphp-fpmとの接続に UNIX socketを指定したので、/etc/php5/fpm/pool.d/www.conf で設定したuserとgroupに合わせて所有者を変更しておきます。

```bash
[root]

$ chown nginx:nginx /var/run/php5-fpm.sock
```

これで、一通り設定が済んだので、サービスを再起動しておきます。

```bash
[root]

$ chown nginx:nginx /var/run/php5-fpm.sock

$ /etc/init.d/nginx restart
$ /etc/init.d/php5-fpm restart
$ service mysql restart
```

### 5. WordPressの設定

ブラウザから、http://[サーバIP]/samplesite/wp-admin/setup-config.php にアクセスします。

#### WordPress用のテーブルを生成

|項目|値|
|----|----|
|データベース名|wordpress|
|ユーザ名|wordpress|
|パスワード|WordPress用のDBを作成したときのパスワード|
|データベースのホスト名|localhost|
|テーブル接頭辞|wp_|

#### サイト情報の入力
この辺は、用途に合わせて入力して下さい。

|項目|値|
|----|----|
|サイトのタイトル|(サイト名)|
|ユーザー名|(管理者の名前)|
|パスワード|(自動生成されたもの)|
|メールアドレス|(管理者のメールアドレス)|


以上です！