先月末の「CMS大阪夏祭り」以降、ありがたいことに Craft CMS 関連の話題をチラホラ見かけるようになりました。
きっと、安藤さんはじめレポート記事などをまとめていただいた皆さんのおかげですね。ありがとうございます!
「CMS大阪夏祭り」注目株!?「Craft CMS」がすごいので広めたい : ATOMS by Loftwork
http://atoms.loftwork.jp/20170828_cmsfes_osaka2017_craftcms/
そんな矢先、Cloud 9 へのインストール方法が紹介されているのを発見。
Craft CMSをインストール(Cloud 9編) - Qiita
https://qiita.com/seltzer/items/d34b662bad484c529421
Cloud 9 のデフォルトが PHP 5.x なこともあり「Craft CMS 案外モッサリしてるね」と感じる方がいらっしゃるかも?ということで、PHP 7.1 に切り替えつつ Craft CMS をインストールする方法をご紹介します。
Workspace の作成
新しい Workspace の作成画面にある Choose a template
欄で PHP, Apache & MySQL
を選択します。
このとき Workspace name
欄に接頭辞 test-
をつけた名称にしておくと、Craft CMS の管理画面で Client
や Pro
を試用できるようになるため、便利です。
シェルスクリプトの作成
Workspace が起動したら、ルート直下(hello-world.php
と同階層)に setup.craftcms.sh
という名称でファイルを作成し、以下のコードを貼り付けます。
#!/bin/bash
#
# Set up Craft CMS to Cloud9:
# ----------
# Version 0.1
# By Toru Kokubun
#
# Please use at your own risk...
# Check Paramater
# ----------
# check variable counts
if [ $# -ne 1 ]; then
echo '[error] インストールするバージョンを引数で指定してください' 1>&2
exit 1
fi
# Check Version Format
# ----------
# set request version
REQUEST_VERSION="$1"
# set Craft CMS version to array
DEFAULT_IFS="$IFS"; IFS='.'
read -r -a _array <<< "$REQUEST_VERSION"
IFS="$DEFAULT_IFS"
# check request version format
if [ ${#_array[@]} -ne 3 ]; then
echo '[error] バージョン表記に誤りがあります' 1>&2
exit 1
fi
# Variables
# ----------
TARGET_VERSION="${_array[0]}.${_array[1]}.${_array[2]}"
TARGET_ZIP_FILENAME="Craft-$TARGET_VERSION.zip"
TARGET_ZIP_URL="https://download.craftcdn.com/craft/${_array[0]}.${_array[1]}/$TARGET_VERSION/$TARGET_ZIP_FILENAME"
# Check Zip file exists
# ----------
if [[ `wget -S --spider $TARGET_ZIP_URL 2>&1 | grep 'HTTP/1.1 200 OK'` ]]; then
echo 'セットアップを開始します'
else
echo '[error] 指定されたバージョンの Craft CMS はありませんでした' 1>&2
exit 1
fi
# Install PHP 7.1
# ----------
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update -y
sudo apt-get install php7.1 php7.1-curl php7.1-cli php7.1-gd php7.1-intl php7.1-mcrypt php7.1-json php7.1-mysql php7.1-opcache php7.1-bcmath php7.1-mbstring php7.1-soap php7.1-xml php7.1-zip php7.1-interbase -y
sudo apt-get autoremove -y
# switch use PHP version
sudo a2dismod php5
sudo a2enmod php7.1
# Download Craft CMS
# ----------
wget $TARGET_ZIP_URL
unzip $TARGET_ZIP_FILENAME
# Modify Config Files
# ----------
# modified httpd.conf
sudo sed -i -e "s/\/home\/ubuntu\/workspace/\/home\/ubuntu\/workspace\/public/g" /etc/apache2/sites-enabled/001-cloud9.conf
# modified db config
sed -i -e "s/'database' => \('.*'\)/'database' => 'c9'/g" -e "s/'user' => \('.*'\)/'user' => substr(getenv('C9_USER'), 0, 16)/g" ~/workspace/craft/config/db.php
# rename htaccess
mv public/htaccess public/.htaccess
# Initialize Database
# ----------
# MySQL start
mysql-ctl start
# install phpMyAdmin
phpmyadmin-ctl install
# Finish
# ----------
echo 'セットアップが完了しました'
echo '~/workspace/setup-craftcms.sh を削除後、/admin にアクセスしてインストールしてください'
このスクリプトにより
- PHP 7.1 のインストール(PHP 5.x からの切り替え)
- Craft CMS 2.x のダウンロードと展開
- ドキュメントルートを
~/workspace/public
に変更 craft/config/db.php
に Cloud 9 のユーザー情報をセット~/workspace/public/.htaccess
の有効化- MySQL の起動
- phpMyAdmin のインストール
を1つのコマンドで自動処理します。
セットアップの実行
bash
タブで下記のようにインストールする Craft CMS のバージョンを指定しつつ実行します。
$ /bin/bash setup.craftcms.sh 2.6.2990
なお、指定するバージョン表記は公式サイトの Changelog を参考にしてください。
Changelog | Craft CMS
https://craftcms.com/changelog
bash
タブに
セットアップが完了しました
~/workspace/setup-craftcms.sh を削除後、/admin にアクセスしてインストールしてください
と表示されれば、セットアップは完了です。
IDE のメニューバーにある Run Project
をクリックして Apache を起動したら、以前ご紹介した Craft CMS のインストール を参考にインストールしてください。
余談
2017年10月5日に Craft CMS Meetup Tokyo Vol.0 が開催されます。
ハンズオンに参加される方は、Cloud 9 でデモ環境を作ることもできますよ・・・ということで。
Craft CMS Meetup Tokyo Vol.0 Craft CMSへのお誘い - Japan Craft CMS Meetup (東京都) | Meetup
https://www.meetup.com/ja-JP/Japan-Craft-CMS-Meetup/events/242949106/