Markdown記法に対応したCMS　GravをUbuntu 16.04にインストールする

Qiitaに記事を投稿してみて、Markdown記法が気に入ったのでMarkdown記法に対応したCMSを探してみました。
色々調べたところ日本語にも対応しているGravを使ってみることにしました。
GravをUbuntu16.04にインストールしたときのまとめです。

#PHPのインストール
##apt-getでインストールできるもののインストール

```
apt-get install php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml　
apt-get install  php-zip
```

##apcu PHP extensionのインストール
peclでインストールします。

```
pecl install apcu
```

apcu.iniを/etc/php/7.0/mods-availableに作成します。

```apcu.ini
extension=apcu.so
```

/etc/php/7.0/fpm/conf.d/にシンボリックリンクを張ります。

```
ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
```

##Yaml PHP extensionのインストール
依存関係のあるlibyaml-devをapt-getで先にインストールしてから
peclでインストールします。

```
apt-get install libyaml-dev
pecl install yaml-2.0.0
```

yaml.iniを/etc/php/7.0/mods-availableに作成します。

```yaml.ini
extension=yaml.so
```

/etc/php/7.0/fpm/conf.d/にシンボリックリンクを張ります。

```
ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
```

#www.confの修正
Nginxの実行ユーザーがnginxなので該当部分を修正、アクセス権を修正します。

```
vi /etc/php/7.0/fpm/pool.d/www.conf
```

```www.conf
　　　・
　　　・
user = nginx
group = nginx
　　　・
　　　・
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
```

#Composerのインストール
ComposerはPHPの依存関係マネージャです。
必要なすべてのライブラリと依存関係を解決します。

```
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
```

#Nginxのインストール
標準でインストールされるNginxは少し古いので公式nginxをリポジトリに追加してインストールします。

リポジトリリストにnginx.listを追加します。
```
vi /etc/apt/sources.list.d/nginx.list
```

```nginx.list
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
```

Nginxサイトが配布するPGPキーを追加後、Nginxをインストールします。

```
curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
apt-get update
apt-get install nginx
```

#Gravのインストール
VirtualHostでサービスするのでディレクトリを作成します。
所有者をnginxに変更します。
※www.sample.localは実際のURLに変更してください。

```
mkdir -p /virtual/public/www.sample.local
chown -R nginx.nginx /virtual/public/www.sample.local
```

gitをインストールしてgitでGravをダウンロードします。

```
apt-get install git
cd /virtual/public/
git clone https://github.com/getgrav/grav.git
```

Gravをインストールします。

```
cd grav
composer install --no-dev -o
./bin/grav instal
./bin/gpm install admin
```

VirtualHostのディレクトリにコピーします。

```
cp -R grav/* www.sample.local/
```

Nginxの設定ファイルをコピーし、修正します。

```
cp webserver-configs/nginx.conf /etc/nginx/conf.d/grav-admin.conf
vi /etc/nginx/conf.d/grav-admin.conf
```

1. #listen 80;のコメントを外します。
2. rootディレクトリを修正します。
3. serverを修正します。
4. fastcgi_passを修正します。

```grav-admin.conf
server {
    listen 80;
    index index.html index.php;

    ## Begin - Server Info
    root /virtual/public/www.sample.local;
    server_name www.sample.local;
    ## End - Server Info
　　　　　・
　　　　　・
    ## Begin - PHP
    location ~ \.php$ {
        # Choose either a socket or TCP/IP address
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        # fastcgi_pass 127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    }
    ## End - PHP
}
```

#php-fpmとNginxを再起動する。

```
service php7.0-fpm restart
service nginx restart
```

#Gravのサイトにアクセスします。
ブラウザで閲覧すると自動的にadminディレクトリに移動します。
![grav_init.png](https://qiita-image-store.s3.amazonaws.com/0/183585/ca6363e6-cd40-48d7-de09-add90c493710.png)

各項目を入力してCreate Userをクリックします。
- Username → 小文字のみでユーザ名を決める
- Email → メールアドレス
- Password →パスワード（英大文字、英小文字、数字を含める）
- Confirm Password →パスワード確認
- Full name → サイトに表示される名称
- Title → 肩書

管理者画面に移動します。
![grav_admin.png](https://qiita-image-store.s3.amazonaws.com/0/183585/1c54b2a2-b206-b3ec-d9c1-afba7372a9e8.png)

左側のメニューのユーザー（ここではサイト管理者）をクリックするとユーザー設定画面に移動します。
![grav_jpn1.png](https://qiita-image-store.s3.amazonaws.com/0/183585/e5b53f05-1f0f-e09f-21a8-a83497bed373.png)


Languageを日本語に変更してSaveをクリックすると日本語に切り替わります。
![grav_jpn2.png](https://qiita-image-store.s3.amazonaws.com/0/183585/2d6ab44e-4f44-1edd-cf06-cb58a8c7f043.png)

それでは、Gravをお楽しみください。

#参考にさせて頂いたサイト
+ [Qitta](http://qiita.com/Ogaaaan/items/44cd5da146e38881613b,"俺のGrav - 1.1セットアップ")
+ [HostPresto](https://hostpresto.com/community/tutorials/install-and-configure-grav-cms-on-ubuntu-16-04/,"Install and Configure Grav CMS on Ubuntu 16.04")
+ [Qitta](http://qiita.com/hiroq/items/420424bc500d89fd1cc8,"Ubuntuに最新のnginxをインストールする")
+ [俺にはまだ二次元がある。](http://unrea.usamimi.info/blog/grav-basic-tutorial,"GRAVの使い方")