[USP友の会]第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) をやってきたよ!


皆さんこんばんは。家に帰ってブログを書くまでが勉強会ですという先人の教えを忠実に実行したいと思います。本日はバスターワークスさんと共催で 第4回 一撃サーバー構築シェルスクリプト勉強会(もくもく) を開催してきました。

会場はHDEさんだったのですが、さすが渋谷の会社、綺麗でリア充なインテリアでした。

2015-01-12 13.39.27

外の眺めも最高です。

2015-01-12 13.11.51

書道コーナーがあったので、書き初めしてきました。

2015-01-12 13.20.52

なぎーさんにも一筆書いていただきました。

2015-01-12 13.22.55

さて、勉強会のレポートです。本日のお題は、さくらのクラウドに建てたLAMP環境(CentOS6)にdrupal7をインストールしてWebデータベースを作ろう!というものでした。 今回は、以下のモジュールを追加してテーブルっぽい画面を作ったのですが、クリーンURLが必須のようで、drupalが用意する.htaccess (mod_rewrite) が必要だったのですね。

[cck]
http://ftp.drupal.org/files/projects/cck-7.x-3.0-alpha3.tar.gz

[ctools]
http://ftp.drupal.org/files/projects/ctools-7.x-1.5.tar.gz

[views]
http://ftp.drupal.org/files/projects/views-7.x-3.8.tar.gz

なお、これらのツールはcurlやwgetで取ってきてもよいのですが、drupalの管理画面から上記URLを入力してダウンロードすることもできます。なので、万事うまくいけば、USP友の会 勉強会史上初「コンソールをまったく使わないハンズオン」になるところでした。(設計手法の勉強会というテーマやソースコードリーディングというテーマの勉強会ではコンソールを使わないこともありましたが)

結局、上記ツールを使うためにクリーンURLが必須、ということがわかったので手作業でhttpd.confを書き直し、/var/www/html ディレクトリのAllowoverrideをNoneからAllにしたのですが、これでは一撃インストールになりません。なので、一撃スクリプトもあわせてアップデートしました。githubのdiffはこちらから確認できます。コピペ用のソースコードはこちらです。

まさかの家に帰ってからシェル芸力を発揮してしまった初のパターンなのですが、ちょっと追加部分について解説します。

NUM=$(cat -n /etc/httpd/conf/httpd.conf | egrep -A 1000 '(<Directory[[:space:]]*"/var/www/html">)' | egrep -m 1 -B 1000 '()' | egrep "AllowOverride[[:space:]]*None" | awk '{print $1}')
sed -i "${NUM}s/None$/All/" /etc/httpd/conf/httpd.conf

今回追加したコードの1行目ですが、httpd.confの <Directory "/var/www/html"> から </Directory> に囲まれた箇所のAllowOverrideだけAllにしたい(他のディレクトリのAllowOverrideはNoneのままにしたい)ので、egrep -A と egrep -Bの中で囲ってあげることにしました。さらに、</Directory>のほうのegrepの結果は1回マッチしたらもう用済みなので、-m 1を付け加えています。行数で調整するのって、なんかsleepでタイミング図るみたいでナンセンスなので。。。で、ここでは該当箇所の行番号を取得をして変数NUMに格納しています。次に、sedで該当の行番号にあるNoneをAllに変更している、というわけです。

というわけで、私の発表分のスライドを最後に貼り付けておきますので、さくらのクラウドでスタートアップスクリプトを登録したい方のご参考になれば幸いです。

[amazonjs asin="4798118133" locale="JP" title="Drupal 実践プログラミング徹底入門"]