たぬきデース。
この記事は「concrete5 Japan Advent Calendar 2014」の2014/12/16の記事です。
2014/12/14のconcrete5アドベントカレンダーでさくらのなかのひとが「さくらのクラウド「スタートアップスクリプト」機能でconcrete5を自動インストール」という記事を上げてくれていました。
記事の補足にもあるように、これは5.6系のインストール用のスクリプトなんですよね。
というわけで、5.7系をインストールできるもの作りましたよ。
スクリプト
設定の方法及び、利用方法は「さくらのクラウド「スタートアップスクリプト」機能でconcrete5を自動インストール」この記事にあるのと同じです。
CentOS6.6で動作確認してあります。
#!/bin/bash # @sacloud-once # @sacloud-desc concrete5をインストールします。 # @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。 # @sacloud-desc http://サーバのIPアドレス/ # @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します) # @sacloud-password required shellarg maxlen=100 admin_password "adminのパスワード" # @sacloud-text required shellarg maxlen=100 admin_email "adminのメールアドレス" ADMIN_PASSWORD=@@@admin_password@@@ ADMIN_EMAIL=@@@admin_email@@@ #---------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 --enablerepo=remi install expect httpd-devel mod_ssl gd-last mysql-server git curl || exit 1 yum -y --enablerepo=remi-php55 install php php-devel php-cli php-pear php-mbstring php-xml php-gd php-mysql npm || 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 cp -p /etc/php.ini /etc/php.ini.old sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php.ini 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 NEWMYSQLPASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` /usr/bin/mysqladmin -u root password "$NEWMYSQLPASSWORD" || exit 1 cat </root/.my.cnf [client] host = localhost user = root password = $NEWMYSQLPASSWORD socket = /var/lib/mysql/mysql.sock EOT chmod 600 /root/.my.cnf #---------END OF LAMP---------# #---------START OF concrete5---------# USERNAME="c5_`mkpasswd -l 10 -C 0 -s 0`" PASSWORD=`mkpasswd -l 32 -d 9 -c 9 -C 9 -s 0 -2` git clone https://github.com/concrete5/concrete5-5.7.0.git mv concrete5-5.7.0 /var/www/$USERNAME cd /var/www/$USERNAME/cli chmod 700 /var/www/$USERNAME/cli/install-concrete5.php mysql --defaults-file=/root/.my.cnf <<-EOT CREATE DATABASE IF NOT EXISTS $USERNAME; GRANT ALL ON $USERNAME.* TO '$USERNAME'@'localhost' IDENTIFIED BY '$PASSWORD'; FLUSH PRIVILEGES; EOT cat < > /etc/httpd/conf/httpd.conf DocumentRoot /var/www/$USERNAME/web AllowEncodedSlashes On Options FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all EOT service httpd restart || exit 1 cd /var/www/$USERNAME/web/concrete curl -sS https://getcomposer.org/installer | php COMPOSER_HOME="/var/www/$USERNAME/web/concrete" php composer.phar install mv composer.phar /usr/local/bin/composer cd /var/www/$USERNAME/build npm install -g grunt-cli npm install grunt release cd /var/www/$USERNAME/cli ./install-concrete5.php --db-server=localhost --db-username=$USERNAME --db-password=$PASSWORD --db-database=$USERNAME --admin-password=$ADMIN_PASSWORD --admin-email=$ADMIN_EMAIL --target=/var/www/$USERNAME/web/ --core=/var/www/$USERNAME/web/concrete --starting-point=elemental_blank --site=concrete5sample --reinstall=no rm /var/www/$USERNAME/web/concrete/.htaccess || exit 1 chown -R apache:apache /var/www || exit 1
かるーく解説
簡単にですが解説していきます。
iptables
まずは「iptables」。これはファイアウォールですね。
許可するプロトコルのポート番号を設定してます。この部分をいろいろ変えることで、ポートの開閉ができますよ。
SSHのポート番号やプロキシで別のポート番号を使いたいときなどは、ここも変更しておかないとブロックされちゃいます。
LAMP
さくらのクラウドのパブリックアーカイブにあるCentOS6.6にはremiレポジトリがあらかじめインストールされています(enableではないですが)。なので、enablerepoしてあげれば、PHP5.5もインストールできちゃうんですねー。
Apacheの設定、MySQLの設定と続きます。
concrete5を入れる関係上、short_open_tag = On
にphp.iniを弄ってるくらいで、特に特別なことはしてないですね。(確かdefaultでもOnですが念の為の処理)
concrete5
gitで5.7をgithubからダウンロードしてきます。このなかにcliも入っているので、それもそのまま使いますよ。
で、composerを使ってインストール作業開始なのです。
COMPOSER_HOME
を指定してあげないと動かなかったので、指定してあります。一応、また使えるようにコマンド登録もしてあります。
あとはnpmやgrunt-cliで必要なものを入れて、コマンドラインプログラムでconcrete5のインストールというわけです。
この状態だと、何のデータも入っていないまっさらな状態でのインストールになるので、サンプルデータがほしいという人は--starting-point=elemental_blank
ここを適宜変更してください。
まとめ
さくらのクラウドのクーポン持ってるけど使えていない人、5.7試してみたいけど、インストールうまくいかないと嘆いている人。これ使えば5.7試せますよ。
クラウドのアカウントさえあれば10分ほどで構築完了できますので、試してみてねー。
再度の注意。使い方は「さくらのクラウド「スタートアップスクリプト」機能でconcrete5を自動インストール」を見てね。
このスクリプトベースにすればVagrantとかでも構築できるなぁとおもいます。Nginxバージョンはまたそのうち。
さて、まだまだ「concrete5 Japan Advent Calendar 2014」は続きますよー。
(ΦωΦ)フフフ…
それでは。 ヾ(・д・。)マタネー♪