PHP製CMS Gravのインストール

# <i class="fa fa-grav" aria-hidden="true"></i> Grav
**Grav** は GitHub で WordPress と [October](http://qiita.com/bezeklik/items/aaa47ea4be04270cb9e5) の次にスター数を獲得している PHP 製の CMS だったが、2016年9月上旬あたりに October を抜いて2位になった。 RDBMS を利用しない、いわゆる **Flat-File CMS** である。

# システム要件
## 要求される PHP のバージョン
* PHP 5.5.9 以上

## 要求される PHP 拡張モジュール
* gd (画像編集で利用するグラフィックライブラリー)
* curl (GPMで利用するURLハンドリングクライアント)
* openssl (GPMで使用するセキュアソケットライブラリー)
* zip 拡張サポート (GPMで利用)
* mbstring (マルチバイト文字列サポート)
* xml (XML サポート)

## オプションのモジュール
* apcu (キャッシュパフォーマンスの向上)
* opcache (PHPパフォーマンスの向上)
* xcache (速くないがまだ使えるapcuの代替)
* yaml (PECL Yamlはネイティブなyaml処理を提供し、劇的にパフォーマンスを向上できる)
* xdebug (開発環境でデバッグに便利)

# インストール
## Apache 2.4.6 + PHP 7.0.1
```bash
yum install epel-release
yum update
yum install yum-utils http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum-config-manager --enable remi remi-php70
yum install httpd php php-gd php-mbstring php-pecl-zip php-xml
sed -i 's|;date.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini
sed -i '/memory_limit =/s/128M/512M/' /etc/php.ini
cat << _EOF_ > /etc/httpd/conf.d/grav.conf
ServerName localhost
<Directory "/var/www/html">
    AllowOverride All
</Directory>
_EOF_
systemctl enable httpd
systemctl start httpd
```

## Grav
### パッケージでインストール
```bash
yum install unzip
curl -LO https://github.com/getgrav/grav/releases/download/1.1.3/grav-admin-v1.1.3.zip
unzip grav-admin-v1.1.3.zip
mv grav-admin/* /var/www/html
mv grav-admin/.htaccess /var/www/html
chown -R apache:apache /var/www/html/*
```
基本パッケージには管理画面が同梱されていないので、管理画面込みの grav-admin-v1.1.3.zip をダウンロードする。
この手順が最も短い時間でセットアップできる。

### Composer でインストール
```bash
yum install git
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repos.packagist composer https://packagist.jp
composer global require hirak/prestissimo
composer create-project getgrav/grav /var/www/html
bin/gpm install admin
chown -R apache:apache /var/www/html/*
```
ダウンロードに時間がかかる。

### Git でインストール
```bash
yum install git
git clone https://github.com/getgrav/grav.git /var/www/html
cd /var/www/html
bin/grav install
bin/gpm install admin
chown -R apache:apache /var/www/html/*
```
ダウンロードに時間がかかる。

### セットアップ画面
![grav1.png](https://qiita-image-store.s3.amazonaws.com/0/15175/2ddc2aef-41ca-8aa8-4c9b-48c17ec6ecf6.png)

# 管理画面
## ダッシュボード
![grav2.png](https://qiita-image-store.s3.amazonaws.com/0/15175/9449e9e6-1b95-abb3-30f4-9088917923a7.png)

## プラグイン
![grav4.png](https://qiita-image-store.s3.amazonaws.com/0/15175/f1f45791-6c3d-6b9c-65e1-039d7a828adf.png)

管理画面からインストール可能。

## テーマ
![grav5.png](https://qiita-image-store.s3.amazonaws.com/0/15175/619b867f-be72-0816-88fb-acaae678e684.png)

管理画面からインストール可能だが、テーマをインストールしてアクティベートしただけだとイメージした通りにならないので、[スケルトン](https://getgrav.org/downloads/skeletons)で丸ごと落としてきて展開する方が現実的だろう。

## ページ管理
![grav6.png](https://qiita-image-store.s3.amazonaws.com/0/15175/23c51026-c778-fd87-de68-d646d3a1f390.png)

## 編集画面
### コンテンツ
![grav7.png](https://qiita-image-store.s3.amazonaws.com/0/15175/452485cd-ae01-ca4e-1717-b91b79c54119.png)

Markdown による入力。目のアイコンをクリックするとプレビューできる。

### オプション
![grav8.png](https://qiita-image-store.s3.amazonaws.com/0/15175/ac04965b-05c1-829a-1942-ad0a08a71c88.png)

### 高度
![grav9.png](https://qiita-image-store.s3.amazonaws.com/0/15175/9f608b7b-a9f7-cd49-afc9-e4c6a1f15904.png)

# CMS 関連記事
* [GitHubで人気の高いCMSランキング](http://qiita.com/bezeklik/items/45fa04b83792743b7cbf)
* [PHP製CMS Octoberのインストール](http://qiita.com/bezeklik/items/aaa47ea4be04270cb9e5)
* [PHP製CMS Gravのインストール](http://qiita.com/bezeklik/items/7593579462cb0557fd3d)
* [PHP製CMS Pagekitのインストール](http://qiita.com/bezeklik/items/2bd0eaa50bd36f5de0e6)