CentOS 7 に nginx と Drupal 8 をインストールする (さくらのクラウド編）

Drupal8ですが、そろそろRC1が出そうですし、aquiaのサービスが始まりました。そろそろ良いじゃないですかね？ということで本番機の練習用にさくらのクラウドにインストールしてみることにしました。
（本番機は、さくらのVPSです）

# さくらのクラウドのスペックを決める

練習なんで安いものにしてみます。以下のスペックにしてみました。
利用料は、日割り119円、月額2,386円 になります。
作成を指示してOSのインストール込みで４分半くらいで完了しました。

| 項目   | 設定値 |
|:-------|:------:|
| ゾーン  |  石狩第１ゾーン  |
| CPUコア数 | 1 |
| メモリ | 1GB |
| ストレージ | 標準ディスク 40GB |
| OS | CentOS 7.0 64bit (基本セット) |

# php 5.6 のインストール

## remi リポジトリの追加と php のインストール

remi リポジトリを使ってインストールします。apacheも同時にインストールされてしまいますが、気にせず進めます。

```
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum -y install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-mcrypt php-mysqlnd php-pecl-xdebug php-pecl-xhprof php-gd php-fpm php-twig-ctwig
# php -v
PHP 5.6.11 (cli) (built: Jul 12 2015 20:13:00) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
```

## MariaDB 10 のインストール

次に MariaDB 10 をインストールします。

まず公式のリポジトリが用意してあるので追加する作業をします。
以下のURLにアクセスして設定情報を確認します。
https://downloads.mariadb.org/mariadb/repositories/

CentOS => CentOS 7 (64bit) => 10.0 と選択します。
画面下部に公式リポジトリの情報が表示されるはずです。

![スクリーンショット 2015-08-01 17.38.05.png](https://qiita-image-store.s3.amazonaws.com/0/5675/7ac28a5e-699f-df52-d86d-3ddb05b9ba09.png)

指示に従ってファイルを作成します。

```/etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```

インストールします。

```
# yum -y install MariaDB-devel MariaDB-client MariaDB-server
```

## 設定の変更

文字コードなどを修正します。

```/etc/my.cnf.d/server.cnf 
[mysqld]
character-set-server=utf8
log-bin=mysql-bin
expire_logs_days=30
```

自動起動とし、MariaDB を起動します。

```
# service start mysql
Starting MySQL. SUCCESS! 
# systemctl enable mysql.service
```

mysql_secure_installation を起動して、アレコレ設定しておきます。

```
# mysql_secure_installation
```

# Nginxのインストール

パッケージリポジトリを追加します。
/etc/yum.repos.d/nginx.repo を作成します。

```/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=0
```
yum コマンドでインストールします。

```
# yum -y --enablerepo=nginx install nginx
# systemctl start nginx
# systemctl enable nginx
```

ブラウザでアクセスをして nginx の画面が表示されるかを確認します。

![スクリーンショット 2015-07-31 17.14.10.png](https://qiita-image-store.s3.amazonaws.com/0/5675/a27b5c43-65de-0d76-2319-bda662f4a37a.png)

# php-fpm の設定

## 設定の変更

php-fpm の設定を変更します。userとgroupの設定値をapacheからnginxに変更します。

```/etc/php-fpm.d/www.conf
user = nginx
group = nginx
```

さらに listen 、listen.owner 、listen.group を変更します。

```/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
```

続いてサービス化して起動をします。

```
# systemctl start php-fpm.service
# systemctl enable php-fpm.service
```

## nginxの設定変更

nginxの設定を変更します。
8から10行目をコメントアウトし、以下のものにします。

```/etc/nginx/conf.d/default.conf 
    location ~ \.php$ {
        root   /usr/share/nginx/html;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        include        fastcgi_params;
    }
```

いったんnginxを再起動してます。

```
# systemctl restart nginx.service
```

## テスト用スクリプトの作成と確認

いつものphpテストスクリプトを作成します。

```/usr/share/nginx/html/test.php
<?php phpinfo(); ?>
```

ブラウザで http://(サーバのアドレス)/test.php にアクセスすると、いつものアレが表示されるかと思います。

![スクリーンショット 2015-08-02 10.52.10.png](https://qiita-image-store.s3.amazonaws.com/0/5675/27de948f-11cc-9e03-5f40-ce2772185f7a.png)

# Druapl のインストール

## データベースの準備

d8 というデータベースを作成します。またdrupal8というユーザを作成します。パスワードは、qiitaa にしてアクセスできるようにします。

```
# mysql -u root -p
create database d8;
grant all privileges on d8.* to 'drupal8'@'localhost' identified by 'qiitaa';
exit
```

## php.ini の編集

そのままだとソケットの位置の記載がないので、/var/lib/mysql/mysql.sock を設定します。

```
# grep -n "\.default_socket\s*=$" /etc/php.ini
969:pdo_mysql.default_socket=
1108:mysql.default_socket =
1167:mysqli.default_socket =
# vi /etc/php.ini
# grep -n "\.default_socket\s*=" /etc/php.ini
969:pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
1108:mysql.default_socket = /var/lib/mysql/mysql.sock
1167:mysqli.default_socket = /var/lib/mysql/mysql.sock
```

## drupal 8 のダウンロード

この投稿を書いているときの最新は、beta 13 なんでダウンロードします。

[ダウンロードページ](https://www.drupal.org/node/3060/release) にアクセスします。
以下の画面サンプルの赤枠にあるリンク(drupal-8.0.0-beta13.tar.gz)のアドレスをコピーします。

![スクリーンショット 2015-08-02 11.01.19.png](https://qiita-image-store.s3.amazonaws.com/0/5675/7eafb9d4-27b5-38f8-4019-ea815b1fed1a.png)

シェルに戻りダウンロードします。

```
# cd /usr/share/nginx/
# curl -O http://ftp.drupal.org/files/projects/drupal-8.0.0-beta13.tar.gz
# tar zxvf drupal-8.0.0-beta13.tar.gz
# ln -s drupal-8.0.0-beta13 drupal
# chown -R nginx:nginx drupal-8.0.0-beta13 drupal
```

nginxの設定を再度変更します。変更後は以下のようになります。

```/etc/nginx/conf.d/default.conf 
server {
    listen       80;
    server_name  localhost;
    root /usr/share/nginx/drupal;
    index index.php index.html index.htm;
    location / {
      try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root   /usr/share/nginx/drupal;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        include        fastcgi_params;
    }
}
```

nginx を再起動します。

```
# systemctl restart  nginx.service
```

ブラウザでアクセスするとdrupalの言語選択画面が表示されればOKです。

![スクリーンショット 2015-08-02 12.53.24.png](https://qiita-image-store.s3.amazonaws.com/0/5675/a8e54231-84f3-647d-c112-a37ade4dc9e8.png)

言語が日本語になっているのを確認して、「Save and continue」をクリックします。

![スクリーンショット 2015-08-02 12.54.43.png](https://qiita-image-store.s3.amazonaws.com/0/5675/96ba59c7-f3fa-2bd8-862e-73d9ca3950e4.png)

「標準」が選択されているのを確認して「保存して次へ」をクリックします。

![スクリーンショット 2015-08-02 12.59.16.png](https://qiita-image-store.s3.amazonaws.com/0/5675/8a49a791-8e2e-0f79-4a90-e19845717623.png)

以下のように入力し、「保存して次へ」をクリックします。

| 項目   | 設定値 |
|:-------|:------:|
| データベース  |  d8 |
| データベースのユーザー名 | drupal8 |
| データベースのパスワード | qiitaa |

![スクリーンショット 2015-08-02 14.19.41.png](https://qiita-image-store.s3.amazonaws.com/0/5675/ea9d2766-8a82-ea22-6a2a-4e701e6291eb.png)

データベースに接続が出来るとインストールが開始されます。

あとは、サイトの環境設定 を設定して終了です。問題なければ、トップ画面に遷移します。

![スクリーンショット 2015-08-02 14.51.34.png](https://qiita-image-store.s3.amazonaws.com/0/5675/c131b6b7-d703-5262-4dc1-20fc666e8983.png)