KUSANAGIはWordPressだけぢゃなぃ(´・д・`* = *´・д・`) 

遠藤博樹(NHN JAPAN株式会社)

WordPress以外にも対応している環境構築の方法を、NHNテコラスの遠藤が紹介。プロビジョン機能を活用し、LAMP/LEMP、concrete5、Drupal8が利用可能になる。また、CMSの任意バージョンインストール方法や、Drupal8の具体的な設定方法の解説も行っている。そのため、バージョン管理や具体的な設定に困っている方にとって有意義な情報が得られるコンテンツとなっている。

3回目の投稿となります。
NHNテコラスの遠藤と申します。よろしくお願いいたします┏○

KUSANAGIは多くの方がWordPressを動かすにあたって利用いただいているかと思いますが、WordPress以外にも幾つか環境構築に対応しているので、今回はそれらのことを紹介いたします。

WordPress以外のプロビジョン機能

2016.9.15のアップデートで以下3つのプロビジョン機能が備わっています。

1.LAMP/LEMP (PHP+Apache/NGINX+MariaDB)が配置されます
2.concrete5のバージョン5.7.5.8がインストールされます(2017.5月末現在、最新版ではありません
3.Drupal8の最新版がインストールされますが利用出来ません(2017.5月末現在)

コマンドラインでは

#kusanagi provision <<--lamp または --concrete5 または --drupal8>> <<プロファイル名>>

にて導入可能です。

色を付けた 『最新版ではありません』、『利用出来ません』 についてそれぞれ詳しく対応策を説明いたします。

CMSを任意のバージョンでインストールする

CMSのセキュリティ対策として本体のコアファイルを最新に保つことが推奨されていますが、利用されているプラグインやサーバーのミドルウェアの兼ね合いから古いバージョンを使い続けている環境も少なからずあると思います。

そのような環境をKUSANAGIに移行しようとした場合、KUSANAGIではプロビジョンするとWordPress、concrete5、Drupal8のうちconcrete5以外は最新版がインストールされますが、何れもプロビジョン時に利用されるコマンドを書き換えることで任意のバージョンをインストール可能です。

書き換えファイル: /usr/lib/kusanagi/lib/deploy-*.sh
(各CMSごとにファイルが分かれています)

■concrete5の場合(deploy-concrete5.sh)
ちなみにKUSANAGIのconcrete5は数世代も前の(バージョン5.7.5.8)が標準でインストールされるように1行目で設定されていますので、最新版を入れることを想定した書き換え例は次の通りです。

2: DL_URL="https://www.concrete5.org/download_file/-/view/$DL_VER/"

上記は2行目の記述ですが、"$DL_VER/"の箇所を編集します。
例えば執筆時期の最新版は http://www.concrete5.org/developers/developer-downloads/
を確認するとバージョン8.1.0 ですが、
このバージョンのURLは http://www.concrete5.org/download_file/-/view/93797/8497/ ですので
バージョン8.1.0をインストールしたい場合は、
DL_URL="https://www.concrete5.org/download_file/-/view/93797/"
として deploy-concrete5.sh を保存します。

deploy-concrete5.shを編集したら、

# kusanagi provision --concrete5 <<プロファイル名>>

を実行し、各種設定を進めていくと指定したバージョン8.1.0で構築されたことがセットアップ画面にて確認出来ます(画像右上参照)。

 

■WordPressの場合(deploy-WordPress.sh)

2行目と4行目に日本語版と英語版のダウンロードURLの記述があり、最新版(latest)が指定されています。

2: DL_URL='https://ja.wordpress.org/latest-ja.tar.gz';
4: DL_URL='https://wordpress.org/latest.tar.gz';

provisionするときに、–wplang のオプションで ja を指定すると、WordPress 日本語版がインストールされます。
指定されない場合は対話式で英語版か日本語版かの確認が行われます。
良く分からなければどちらも同じURLに書き換えてしまって構いません。

例えば、バージョン4.6.1の日本語版をインストールされたい場合、
このバージョンのURLはhttps://ja.wordpress.org/releases/ で確認すると
https://ja.wordpress.org/wordpress-4.6.1-ja.tar.gz ですので、
2行目と4行目を同じ記述にしてしまいます。

2: DL_URL='https://ja.wordpress.org/wordpress-4.6.1-ja.tar.gz';
4: DL_URL='https://ja.wordpress.org/wordpress-4.6.1-ja.tar.gz';

deploy-WordPress.shを編集したら、

kusanagi provision --wordpress <<プロファイル名>>

を実行し、各種設定を進めていくと指定したバージョン4.6.1で構築されたことがログイン後に確認出来ます。

 

■Drupal8の場合(deploy-deploy-drupal8.sh)

7:  local VER=${REL##*/}

上記7行目の${REL##*/}を編集します。
バージョン8.0.0をインストールしたい場合は
local VER=8.0.0
としてdeploy-drupal8.shを保存します。
バージョン番号はhttps://ftp.drupal.org/files/projects/のファイル名"drupal-*.*.*"から確認いただけます。

deploy-drupal8.shを編集したら、

kusanagi provision --drupal8 <<プロファイル名>>

を実行し、各種設定を進めていくと指定したバージョン8.0.0で構築されたことがセットアップ画面にて確認出来ます。

 

もっかぃ書きますが、CMSのセキュリティ対策として本体のコアファイルを最新に保つことが推奨されていますのでどうしても古いバージョンで動作させる必要が無い限りは最新版を導入しましょう。

Drupal8のプロビジョンについての補足

任意のバージョンをインストールではなく初期状態で

# kusanagi provision --drupal8 <<プロファイル名>>

を実行した場合、最新版のDrupal8がインストールされます。
プロビジョンコマンドを実行後、URLにアクセスすると、、、502エラーによりアクセス出来ません。

回避策についてはnginxやhhvmのエラーログを参照しましたが私には解決策に辿り着けませんでしたヾ(–;)

ネット上に情報が無いか彷徨ったところ、KUSANAGIをCPIブランド上で扱っているKDDIウェブコミュニケーションズの担当者の方のドキュメントに解決策が記述されています。

ドキュメントは 『KUSANAGI for CPI リリース 記念セミナーを開催しました』の記事の中にPDFファイルがございますが、
/etc/hhvm/php.ini を編集し、以下をコメントアウトします。

; hhvm.enable_zend_compat = true
コメントアウトしたら、
# kusanagi hhvm
でhhvmの再起動も行ってください。

改めて502エラーが出ていたウェブページにアクセスしてみると無事セットアップ画面が表示されました。

こんなすぐに分かるようなバグ?はKUSANAGIでdrupalのプロビジョンが出来るようになってからずっとだったのでしょうか?と疑問がありましたので、前述の手順で紹介した任意のバージョンをインストールする方法で少し過去バージョンに遡ったところ、2016.9.7リリースのバージョン8.1.9までは初期状態でインストール可能、2016.10.5リリースのバージョン8.2.0から上述のhhvmの設定ファイル上のコメントアウトが必要でした。

また、コメントアウトした『hhvm.enable_zend_compat = true』はhhvmのドキュメントによるとPHPのZend extensionを利用する時に記述するようですが、KUSANAGIにどのような影響があるものかは分かりませんでした( ´_ゝ`)


次回、8月ごろにお邪魔させていただきます。
ありがとうございました。

<< KUSANAGIはウェブサービスも監視しています|ω・)KUSANAGI環境でCGI(perl)を動かすφ(◎。◎‐) >>

関連記事

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

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

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

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

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