KUSANAGIでOctoberを動かしてみた!

小澤 昌樹

海外製のオープンソースCMS「October」をKUSANAGIで動かしてポピュラーフレームワーク「Laravel」を採用し、PHP7を使用した株式会社シオラボによるパフォーマンス検証結果を報告。検証結果はKUSANAGIが非KUSANAGIに対し、約5.5倍のパフォーマンスを発揮。これにより、PHPバージョンに依存せず高いパフォーマンスが期待できることが示されました。

# はじめに

みなさん、こんにちは。株式会社シオラボの小澤です。「KUSANAGIでいろいろ動かして速さを確認してみた!」も6回目となりました。

前々回の「baserCMS」、前回の「SoyCMS」と、過去2回は国産のオープンソースCMSをKUSANAGIで動かしてみました。いかがでしたか?
今回は一転、海外製のオープンソースCMS「October」を動かしてみます。

# October

October」のキャッチコピーは「THE PLATFORM THAT GETS BACK TO BASICS(基本に戻るプラットフォーム)」。複雑化した構成から脱却し、ウェブサイトの作成、デザイン、編集をより迅速かつ直感的に行えるようにすることを目指して作られています。過去には、GitHubでWordPressに次ぐスター数を獲得したこともあるほど人気のあるCMSです。

Octoberは、フレームワークに「[Laravel」を採用しています。Laravelのキャッチコピーは「ウェブ職人のためのPHPフレームワーク」。PHPで書かれたWebアプリケーションフレームワークです。baserCMSを紹介した際に登場した「CakePHP」と人気を二分する、人気のあるフレームワークです。

Octoberの動作環境は、「PHP version 7.0 or higher」となっていますので、今回はPHP7を使用します。
KUSANAGIでは、PHPが常時2系統動いているので、以下のコマンドを発行してPHP7を使えるようにします。

“`
kusanagi php7
“`
これで、Apacheのドキュメントルート以下はPHP7で動作します。

ちなみに、PHPバージョンの確認には以下のコマンドを使います。

“`
php7 -v
“`

# 事前準備

今回も使用する仮想マシンは、AWS用の「KUSANAGI for AWS」です。「KUSANAGIの初期設定」、「KUSANAGIのプロビジョニング」を参考に、初期設定とプロビジョニングが完了しているものとします。

KUSANAGIの初期設定では、Octoberのシステム要件に従って、Webサーバに「Apache」を選択します。

また、データベースにはMySQLを使います。Octoberで使用するデータベースと、データベースユーザは事前に作成しておきましょう。ここでは、以下のように作成しました。(パスワードは適宜変更してください)

“`
mysql -u root -p

MariaDB> CREATE DATABASE october;
MariaDB> GRANT ALL ON october.* to october@localhost;
MariaDB> FLUSH PRIVILEGES;
MariaDB> SET PASSWORD FOR october@localhost=password('password');
“`

# 設置とインストール

それでは、Octoberを設置し、インストールしましょう。

1. インスタンスにsshログインし、rootになります。

2. Octoberのダウンロードページからダウンロードし解凍します。解凍したディレクトリごと、Apacheのドキュメントルートの下に移動しましょう。具体的には次のようにします。

“`
wget -O octobercms.zip http://octobercms.com/download
unzip octobercms.zip
mv install-master /var/www/html/octobercms
“`

3. Apacheを再起動します。

“`
systemctl restart httpd.service
“`

4. ブラウザで、 `http://(ホスト名)/october/install.php` にアクセスすると、以下のようにシステムチェック画面となります。

5. チェックが正常終了したら、規約に同意して次の画面に進み、データベース情報などの必要な事柄を入力します。さらに画面を進むと、「How do you want to set up your site?」と質問されるので、今回は「Start from scratch」を選択します。

6. 必要なファイルのダウンロードが始まります。楓が舞うアニメーションとともに、「Congratullations!」が表示されればインストールは完了です。インストールは3ステップで、非常に簡単です。

# パフォーマンス検証

Octoberの公開側のデフォルトページは以下のような画面です。この画面は、ページの作成方法が書かれたデモ画面ですので、実際に使用することはありませんが、今回はこの画面を使って、パフォーマンスを検証してみましょう。

パフォーマンス検証には、Apache Benchを使います。

比較検証するのは、KUSANAGIと非KUSANAGIの仮想インスタンスで、AWSのインスタンスタイプは、いずれもt2.medium、PHPなどのソフトウェアのバージョンは揃えてあります。

検証に使用するのは次のようなのコマンドです。このコマンドは、100ユーザ同時に、1ユーザあたり30リクエストを発行する、というものです。

“`
ab -n 3000 -c 100 http://(ホスト名)/october/
“`

# 検証結果

それでは検証結果です。

||KUSANAGI|非KUSANAGI|
|:–|:–|:–|
|Document Length|7697|7686|
|Complete requests|3000|3000|
|Failed requests|0|0|
|Requests per second [#/sec]|121.90|22.20|
|Time per request [ms]|8.203|45.049|

Requests per second は、秒間にさばけるリクエスト数です。数値が大きいほどよいです。KUSANAGIでは約122リクエストとなりました。対する非KUSANAGIは約22リクエストでした。

Time per request は、1リクエストあたりの処理時間です。こちらは逆に数値が小さいほどよいです。KUSANAGIの約8msに対して、非KUSANAGIは約45ms掛かります。

これらから、KUSANAGIでは、およそ5.5倍のパフォーマンスが出せるという結果が得られました。

# まとめ

今回は、はじめてPHP7を使いましたが、KUSANAGIインスタンスでは、5.5倍のパフォーマンスが出せるという結果となりました。KUSANAGIでは、PHPバージョンに関わらずパフォーマンスが出ることが分かりますね。

次回も、KUSANAGIでいろいろ動かしてみます。それではまた!

<< KUSANAGIでSoyCMSを動かしてみた!GeeklogをKUSANAGIで高速化してみた >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解