gitにpushしたwebサイトを自動的に同期させる

earthquake_jpに関連して作業したので備考録としてメモ。

前提

gitのリモートリポジトリとHTTPサーバが同一のサーバに存在している状態です。

別サーバで行う場合はgit cloneを行う際にパス無し秘密鍵でcloneして
おかないと上手く動作しないと思われます。

処理の流れ

開発者 → コミット → プッシュ → post-receive → Web API → git pull

失敗

  • 最初はpost-receiveでpullを発行しようとしたが、HTTPサーバとgitosisの権限が異なる。
  • sudoを発行してみたが、エラーが発生して処理が行えない。

結果

  • post-receiveはWeb APIへとアクセスする。
  • Web APIはHTTPサーバの権限で動作する。
  • Web APIではシェルスクリプトを実行する。
  • HTTPサーバの権限でpullが行われる。

リポジトリ.git/hooks/post-receive

#!/bin/sh
wget -q -O - http://APIのURL

API(update.php)

<?php
$cmd = dirname(__FILE__) . '/update.sh';
$res = system($cmd);
if (false === $res) {
    echo "NGn";
} else {
    echo "OK:{$res}n";
}

シェルスクリプト(update.sh)

#!/bin/sh
cd /var/www/html/
/usr/bin/git --git-dir=/var/www/html/.git pull

post-receive、update.shは実行権限を付加するのを忘れずに。update.phpはweb上から実行可能であれば問題ない。

念の為、127.0.0.1か自身のグローバルIPでのみアクセス可能にしている。

色々なメモ

これはメモです。
ここからエントリーに昇格する事もあるよ。

ちなみにCentOS/RHELでのお話。

cronの実体

  • /var/spool/cron/<ユーザ名> #各ユーザのcrontab。crontab -eで個々のファイルを操作してる。
  • /etc/crontab #システムのcrontab
  • /etc/cron.deny #なにに使ってんの?
  • /etc/cron.d/ #わからないけどある。
  • /etc/cron.hourly/ #毎時間実行のcrontab
  • /etc/cron.daily/ #毎日実行のcrontab
  • /etc/cron.weekly # 毎週実行のcrontab
  • /etc/cron.monthly #毎月実行のcrontab

HTMLテンプレート作成ページ

主に自分が仕事などで使うようにHTML5、HTML4.01(Strict、Transitional)のHTMLテンプレート作成ページを適当に作りました。

利用とか特に制限していないのでご自由にどうぞ
気が向いたら更新とかかけますので何か不都合でもあったらコメントしてください。

オレオレHTMLテンプレート作成機

WPでウェブ拍手を簡単に! 「wp-webclap」

イラスト系のサイトではweb拍手がよく使われています。
おそらくはコメント欄では少々面倒な時もweb拍手では気楽にメッセージを送ったりできるのが気に入られているのでしょう。

ユーザに関してもコメントよりweb拍手の方がレスポンスを受けやすいので自分で使う為に作ったプラグイン「wp-webclap」を公開します。

Continue reading

twitterMobileを改良

tw003.jpg

miniturbo.orgのkzさんが作成されたtwitterMobileを使わせていただいているのですが、これがPHPで出来ているのでバージョンアップの際にちょこちょこと話していたら自分で考えていて次のバージョンの時にでもパッチを書こうと思っていた事を実装したいみたいだったので私が改良してお渡しする事になりました。

とりあえず完成したものを投げているのでまったりと待っていただければ使えるようになるかと思います。

Continue reading

Twitterで地震速報を受け取ろう

tw002.jpg

Twitterにはまりにはまっています。

さて、日本に住んでいる限りはどうしても地震に対して注意が必要です。実際に地震が発生した場合にはやはり震度等が気になりますね。そんなときにTwitterを使っているユーザーが簡単に震源区域、マグニチュード、最大の震度を受け取る事ができる様に、気象庁の地震情報をTwitterに流すようにしました。

Continue reading