eZ Publish 5.4 のインストール
eZ Publish とは
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を参考に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リポジトリの追加
$ 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
ミドルウェアとライブラリーのインストール
$ 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
設定ファイルの修正
$ 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 のセットアップ
ダウンロード、展開、パーミッション変更
ダウンロードするファイルの最新のパスは以下より確認する。
$ 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のインストール
$ 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
コマンドで生成するパスワードはいずれも自分のものを利用するように注意すること。
$ 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> CREATE DATABASE `ezpublish` CHARACTER SET 'utf8';
mysql> GRANT ALL ON `ezpublish`.* TO `ezpublish`@`%` IDENTIFIED BY 'tavuwGVWxDTj8ctS'; #自分で生成したパスワードを使用すること
mysql> EXIT;
Apache (VirtualHost) の設定
$ 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番ポートの開放
$ iptables -A INPUT -p tcp --dport http -j ACCEPT
$ service iptables save
$ service iptables restart
セットアップウィザード
以下のURLへブラウザーからアクセスしてセットアップウィザードを開始する。