3回目の投稿となります。
NHNテコラスの遠藤と申します。よろしくお願いいたします┏○
KUSANAGIは多くの方がWordPressを動かすにあたって利用いただいているかと思いますが、WordPress以外にも幾つか環境構築に対応しているので、今回はそれらのことを紹介いたします。
WordPress以外のプロビジョン機能
2016.9.15のアップデートで以下3つのプロビジョン機能が備わっています。
コマンドラインでは
#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月ごろにお邪魔させていただきます。
ありがとうございました。