2014/10/13

さくらのクラウドにconcrete5をインストールしてみよう

10/14 スクリプトの一部を修正いたしました。

 

 

先日開催されたPHPカンファレンス2014に参加してきました。
その中のLT大会でConcrete5というものが紹介されていた。
興味が湧いたので早速さくらのクラウドにインストールしてみました。

concrete5 Japan 日本語公式サイト

 

Wordpressと同じくCMSなのですが、Wordpressがブログに特化した側面を持つとすれば、これはモダンなコーポレーションサイトという感じでしょうか。
ちなみにオフィシャルで「Concrete5 Japan, Inc. :: concrete5はWordPressに代わるものではありません。」ということを述べているので導入検討時には一読しておくといいかと思います。
上の動画を見ていただけるとわかるかと思いますが、コンテンツを直感的に修正・編集することが可能でHTMLなどの専門的なスキルがなくても使えそうです。

 

さて、レンタルサーバーにインストールする手順は沢山公開されているのですが、ちょっと興味関心が有るからといってわざわざ契約するのは面倒臭い…そうだクラウドを使おう!

というわけで、さくらのクラウドで簡単に利用できるスタートアップスクリプトを作成してみました。
スタートアップスクリプトを使えば黒い画面(ターミナル)を使わずにセットアップできるので便利です。  

#!/bin/bash

# @sacloud-once

# @sacloud-password required minlen=8 maxlen=100 mysqlrootpass "MySQLのrootパスワード"

# @sacloud-desc-begin
# Apache, PHP, MySQLをインストール後、Concrete5.7.0.4をインストールします。
# サーバ起動後に下記URLにアクセスしウィザードに従ってインストールをこなってください。
# http://サーバのIPアドレス
#
# インストール途中に求められるデータベース情報は下記の通り
# ・サーバー:localhost
# ・MySQLユーザー名:root
# ・MySQLパスワード:下記フォームで設定した文字列
# ・データベース名:db_concrete5
# (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します)
# @sacloud-desc-end

#---------START OF iptables---------#
cat <<'EOT' > /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-SSH - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH
-A INPUT -p TCP -m state --state NEW ! --syn -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A fail2ban-SSH -j RETURN
COMMIT
EOT
service iptables restart
#---------END OF iptables---------#
#---------START OF LAMP---------#
yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1
service httpd status >/dev/null 2>&1 || service httpd start

for i in {1..5}; do
sleep 1
service httpd status && break
[ "$i" -lt 5 ] || exit 1
done
chkconfig httpd on || exit 1

service mysqld status >/dev/null 2>&1 || service mysqld start
for i in {1..5}; do
sleep 1
service mysqld status && break
[ "$i" -lt 5 ] || exit 1
done
chkconfig mysqld on || exit 1

/usr/bin/mysqladmin -u root password "@@@mysqlrootpass@@@" || exit 1

cat <<EOT > /root/.my.cnf
[client]
host = localhost
user = root
password = @@@mysqlrootpass@@@
socket = /var/lib/mysql/mysql.sock
EOT
chmod 600 /root/.my.cnf
#---------END OF LAMP————#
#---------START OF Concrete5.7.0.4————#
cd /tmp
wget http://www.concrete5.org/download_file/-/view/71439/ -O concrete5.7.0.4.zip || exit 1

unzip concrete5.7.0.4.zip || exit 1

cp -a concrete5.7.0.4/* /var/www/html/ || exit1
chown -R apache: /var/www/html/ || exit 1

echo "create database db_concrete5 default character set utf8;" | mysql --defaults-file=/root/.my.cnf || exit 1
#---------END OF Concrete5.7.0.4---------#

スタートアップスクリプトの登録方法はこちらを参考にしてください → スタートアップスクリプト | さくらのクラウドニュース

 

さて、実際にこのスクリプトを登録して実際にサーバを構築してみましょう。

スクリーンショット 2014 10 13 19 06 45

登録したConcrete5のスクリプトを選ぶとMySQLのパスワードを入力する枠が出てきます。
このパスワードは後ほど使用するので忘れないで下さいね。 

サーバ起動してみるとものの数分で準備が整い、サーバのIPアドレスにブラウザでアクセスしてください。

スクリーンショット 2014 10 13 18 59 32

ドロップメニューの中に日本語設定があるのでそれを選択します。

スクリーンショット 2014 10 13 18 59 56

インストール可否のチェックが行われますので問題ないことを確認します。

スクリーンショット 2014 10 13 19 00 28

上記のスクリプトを利用すれば問題ない…はず。

スクリーンショット 2014 10 13 19 02 07

DB接続設定などを編集出来ます。
上記のスクリプトを利用している場合は値が固定されている箇所があるのでご注意ください。

【データベース情報】
 ・サーバー:localhost
 ・MySQLユーザー名:root
 ・MySQLパスワード:(先ほど入力したパスワード)
 ・データベース名:db_concrete5

下線部は固定なので上記をコピペするなどして入力してください。

 

スクリーンショット 2014 10 13 19 05 57

インストールが動いて少々待つと…

スクリーンショット 2014 10 13 19 08 32

スクリーンショット 2014 10 13 19 09 18

ね、簡単でしょ。
セットアップになんの労力も必要ないのでさっくり試したいときには是非。

お試しされて本格的に運用しようと思った場合にはこのまま利用するのもよし、レンタルサーバーに載せ替えて公開するもよし。Concrete5オフィシャルではレンタルサーバーへのインストール手順も公開されているのでそちらを参考にしてください。

※このスクリプトはあくまでも簡単にConcrete5を使えるというところに眼点を置いて作っていますので、本番運用に利用する場合にはアクセス権の設定やMySQLの設定など必要に応じて変更してください。