CentOS 6.6 に eZ Publish 5.4 をインストールする

# eZ Publish 5.4 のインストール
## eZ Publish とは
![20130527ez-01.jpg](https://qiita-image-store.s3.amazonaws.com/0/15175/e66e441e-27aa-d459-003d-3492233d21c7.jpeg)
eZ Publish はノルウェー王国の eZ Systems 社が開発している **CMS** である。商用版の eZ Publish とオープンソース版の eZ Publish Community Project がある。
4.7まで独自PHPフレームワークの eZ Components を使用していたが、5.0から **Symfony** を採用した。ただし、現時点では両者混在する形となっている。
テンプレートエンジンは4.7まで独自の eZ Templates だったが 5.0から Symfony が採用している **Twig** を利用。
## eZ Publish Community Project 2014.11 (≒ eZ Publish 5.4)
**CentOS 6.6** に **eZ Publish 5.4** 相当の最新バージョンである eZ Publish Community Project 2014.11 (14th "eZ Publish 5 build") を**インストール**する手順を説明する。
なお、次期バージョンの **eZ Platform** & **eZ Studio** (eZ Publish 6 相当) はまだアルファ版で特に管理画面側の機能が十分に実装されていないため用いない。
## サーバーセットアップ
### CentOS のインストール
[VirtualBoxへのCentOS 6.6のインストール - Qiita](http://qiita.com/bezeklik/items/89d61454c961fdde352f)を参考にVirtualBoxにCentOS 6.6をインストールする。
### サーバー要件
* PHP 5.4.4以上
* MySQL/MariaDB または PostgreSQL
* Apache 2.2, Apache 2.4 または Nginx 1.4以上
* eZ Find の検索エンジンとしてSolrが使われている場合 Java JRE 1.7 (Oracle-Sun/OpenJDK)

### Yumリポジトリの追加
```bash
$ yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ yum install yum-utils
$ yum-config-manager --enable remi remi-php56
$ yum install https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
```
### ミドルウェアとライブラリーのインストール
```bash
$ yum clean all
$ yum update
$ yum install wget httpd php php-xml php-gd php-intl php-mbstring php-pecl-xdebug php-mysql mysql-server
$ chkconfig httpd on
$ chkconfig mysqld on
```

http://qiita.com/bezeklik/items/9766003c19f9664602fe
### 設定ファイルの修正
```bash
$ sed -i 's/;date\.timezone =/date.timezone = Asia\/Tokyo/' /etc/php.ini
$ sed -i 's/\[mysqld\]/\[mysqld\]\ncharacter-set-server = utf8/' /etc/my.cnf
```
### eZ Publish のセットアップ
#### ダウンロード、展開、パーミッション変更
ダウンロードするファイルの最新のパスは以下より確認する。
* http://share.ez.no/downloads/downloads/ez-publish-community-project-2014.11

```bash
$ wget http://share.ez.no/content/download/161941/957952/version/8/file/ezpublish5_community_project-2014.11.1-gpl-full.tar.gz
$ tar vzxf ezpublish5_community_project-2014.11.1-gpl-full.tar.gz -C /var/www/html --strip=1
$ chown apache:apache -R /var/www/html/*
$ cd /var/www/html/
$ setfacl -R -m u:apache:rwx -m u:apache:rwx ezpublish/{cache,logs,config,sessions} ezpublish_legacy/{design,extension,settings,var} web
$ setfacl -dR -m u:apache:rwx -m u:apache:rwx ezpublish/{cache,logs,config,sessions} ezpublish_legacy/{design,extension,settings,var} web
```
### Composerのインストール
```bash
$ curl -sS https://getcomposer.org/installer | php
$ php -d memory_limit=-1 composer.phar update --no-dev --prefer-dist
$ php -d memory_limit=-1 composer.phar install --no-dev --prefer-dist
Which environment would you like to dump production assets for? (Default: 'prod', type 'none' to skip)
```
各パッケージのアップデートは非常に時間がかかる。
1GB程度のメモリー割り当てではメモリー不足で処理が途中で止まる場合があるので、十分なメモリーを割り当てるか、アップデート時は httpd や mysqld は停止しておく。
`--prefer-dist`は開発バージョンでもパッケージは安定版のdistリポジトリーからダウンロードする指定。
`-d memory_limit=-1`はPHP CLI実行時のメモリ制限を解除する指定。

### データベースの用意
#### MySQLの初期設定とログイン
`openssl` コマンドで生成するパスワードはいずれも自分のものを利用するように注意すること。

```bash
$ service mysqld start
$ openssl rand -base64 12 #root用パスワードの生成
NKKA6H5Vp7XeQvuL
$ mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] y
New password: NKKA6H5Vp7XeQvuL #自分で生成したパスワードを使用すること
Re-enter new password: NKKA6H5Vp7XeQvuL #自分で生成したパスワードを使用すること
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
$ openssl rand -base64 12 #ezpublishユーザー用パスワードの生成
tavuwGVWxDTj8ctS
$ mysql -u root -p
```
#### DBとDBユーザーの作成
```mysql
mysql> CREATE DATABASE `ezpublish` CHARACTER SET 'utf8';
mysql> GRANT ALL ON `ezpublish`.* TO `ezpublish`@`%` IDENTIFIED BY 'tavuwGVWxDTj8ctS'; #自分で生成したパスワードを使用すること
mysql> EXIT;
```

### Apache (VirtualHost) の設定
```bash
$ cp -a /var/www/html/doc/apache2/vhost.template /etc/httpd/conf.d/ezpublish.conf
$ sed -i \
-e 's/# NameVirtualHost %IP_ADDRESS%/NameVirtualHost *:80/' \
-e 's/%IP_ADDRESS%:%PORT%>/*:80>/' \
-e 's/ServerName %HOST%/ServerName www.example.com/' \
-e 's/ServerAlias %HOST_ALIAS%/ServerAlias localhost/' \
-e 's/%BASEDIR%\/web/\/var\/www\/html\/web/' \
-e 's/=%ENV%/=dev/' /etc/httpd/conf.d/ezpublish.conf
$ httpd -t
$ service httpd start
```
### 80番ポートの開放
```bash
$ iptables -A INPUT -p tcp --dport http -j ACCEPT
$ service iptables save
$ service iptables restart
```
## セットアップウィザード
以下のURLへブラウザーからアクセスしてセットアップウィザードを開始する。
* http://192.168.56.101/

### 画面1 Welcome to eZ Publish ...
![ezsetup_01.png](https://qiita-image-store.s3.amazonaws.com/0/15175/03b71ae9-ca62-16a0-a068-7e261298265e.png)
### 画面2 Outgoing Email
![ezsetup_02.png](https://qiita-image-store.s3.amazonaws.com/0/15175/779b60d1-99b4-4c2b-0b62-1db60e99d4d7.png)
### 画面3 データベースの接続設定
![ezsetup_03.png](https://qiita-image-store.s3.amazonaws.com/0/15175/71138ce6-fa05-eb93-b45d-c02d14950b24.png)
### 画面4 言語の選択
![ezsetup_04.png](https://qiita-image-store.s3.amazonaws.com/0/15175/31caa4fa-c7b0-2fab-54b3-e082d0504db6.png)

### 画面5 サイトパッケージ
![ezsetup_05.png](https://qiita-image-store.s3.amazonaws.com/0/15175/c905c162-6e0f-41c1-b704-65694f0afc0e.png)

### 画面6 サイトパッケージ
![ezsetup_06.png](https://qiita-image-store.s3.amazonaws.com/0/15175/8016e857-a5ea-369a-4f3c-339e7b913c89.png)

### 画面7 パッケージ言語オプション
![ezsetup_07.png](https://qiita-image-store.s3.amazonaws.com/0/15175/040bc6c1-892a-5da2-7d16-3d708d7d18c5.png)

### 画面8 サイトアクセス構成
![ezsetup_08.png](https://qiita-image-store.s3.amazonaws.com/0/15175/2e060a48-c0f8-de82-d816-86f87b980191.png)

### 画面9 サイトの定義
![ezsetup_09.png](https://qiita-image-store.s3.amazonaws.com/0/15175/b57b1293-70c9-6475-beb5-a1502692f93c.png)

### 画面10 サイト管理者
![ezsetup_10.png](https://qiita-image-store.s3.amazonaws.com/0/15175/9a7686f4-dba3-7175-d93d-d4d3d25a6a66.png)


### 画面11 Open source software is ...
![ezsetup_11.png](https://qiita-image-store.s3.amazonaws.com/0/15175/3c1c0912-9d66-91c1-e9f8-430870f2ab68.png)

### 画面12 セットアップ完了
![ezsetup_12.png](https://qiita-image-store.s3.amazonaws.com/0/15175/43a433df-2630-db11-8456-980dfea0d336.png)