Edited at

AWSにeZ Publishをインストールする

More than 3 years have passed since last update.


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

AWS (Amazon Web Services) の t2.micro インスタンスに eZ Publish 5.4 をインストールする手順を紹介する。

EC2インスタンスの立ち上げについてはドラフトなので参考程度に。


EC2インスタンスの立ち上げ


EC2インスタンスの作成

01 インスタンスの作成.png

まずは EC2 ダッシュボード へ行き、インスタンスの作成ボタンを押下する。


AMIの選択

02 AMIの選択.png

今回は Amazon Linux AMI 2015.03 (HVM) で試してみた。


インスタンスタイプの選択

03 インスタンスタイプの選択.png


インスタンス作成の確認

04 インスタンス作成の確認.png


キーペアのダウンロード

05 キーペアのダウンロード.png


作成ステータス

06 作成ステータス.png


セキュリティグループの編集

スクリーンショット 2015-07-19 15.21.54.png

セキュリティグループでインバウンドルールにHTTPを追加する。


eZ Publish のインストール


ECインスタンスへ接続

$ ssh -i yourkey.pem ec2-user@XXX.XXX.XXX.XXX


ミドルウェアとライブラリーのインストール

$ sudo yum clean all

$ sudo yum update
$ sudo yum install httpd24 mysql-server php56 php56-gd php56-intl php56-mbstring php56-mysqlnd php56-opcache php56-pecl-apcu php56-xml
$ chkconfig httpd on
$ chkconfig mysqld on

Amazon Linux のデフォルトリポジトリーで Apache 2.4、PHP 5.6、MySQL 5.5 をインストール。デフォルトリポジトリーの PHP 5.6 だと Xdebug が yum でインストールできないので、必要に応じて pecl でインストールする。


設定ファイルの修正

$ sudo sed -i /etc/php.ini \

-e 's/;date\.timezone =/date.timezone = Asia\/Tokyo/' \
-e 's/expose_php = On/expose_php = Off/' \
-e 's/memory_limit = 128M/memory_limit = 256M/'
$ sudo sed -i 's/\[mysqld\]/\[mysqld\]\ncharacter-set-server=utf8/' /etc/my.cnf

$ wget http://share.ez.no/content/download/161941/957952/version/8/file/ezpublish5_community_project-2014.11.1-gpl-full.tar.gz

$ sudo tar vzxf ezpublish5_community_project-2014.11.1-gpl-full.tar.gz -C /var/www/html --strip=1

$ sudo chown apache:apache -R /var/www/html/*

$ sudo setfacl -R -m u:apache:rwx -m u:apache:rwx /var/www/html/ezpublish/{cache,logs,config,sessions} /var/www/html/ezpublish_legacy/{design,extension,settings,var} /var/www/html/web
$ sudo setfacl -dR -m u:apache:rwx -m u:apache:rwx /var/www/html/ezpublish/{cache,logs,config,sessions} /var/www/html/ezpublish_legacy/{design,extension,settings,var} /var/www/html/web


スワップ領域の作成

t2.microインスタンスは1GBしかメモリーが割り当てられないため、次節のComposerパッケージのアップデートにおいてメモリー不足となる。t2.microインスタンスではデフォルトでスワップ領域がないため次に進められなくなるので別途作成する必要がある。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

$ sudo mkswap /swapfile
$ sudo chmod 600 /swapfile
$ sudo swapon /swapfile

再起動後も自動でSwap領域を有効にするためには/etc/fstabに記述を追加する。なお、EBSだとI/O単位で課金が発生するためスワップアウト/インが頻発する状況だとディスクI/Oの課金がかさんでしまう可能性があるので注意。

$ echo "/swapfile   swap        swap    defaults        0   0" | sudo tee -a /etc/fstab


Composerパッケージのアップデートとインストール

$ cd /var/www/html

$ curl -sS https://getcomposer.org/installer | sudo php
$ sudo php -d memory_limit=-1 composer.phar update --no-dev --prefer-dist
$ sudo 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)


MySQL

$ sudo service mysqld start

$ openssl rand -base64 12 #MySQLの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 #DBユーザー用パスワードの生成
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;


eZ Publish 用の Apache の設定

$ sudo cp -a /var/www/html/doc/apache2/vhost.template /etc/httpd/conf.d/ezpublish.conf

$ sudo sed -i /etc/httpd/conf.d/ezpublish.conf \
-e '/# NameVirtualHost %IP_ADDRESS%/d' \
-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/'
$ httpd -t
$ sudo service httpd start

ServerNameServerAlias は適宜書き換えのこと。

セットアップウィザードについては「eZ Publish 5.4 をインストールする」を参考に。