2011 06/17
Basic認証の実装
この上なく暇だったのでやってみました。
Basic認証の実装に当たって、必要な事はWikipediaに全部書いてありました。
URLに日本語が含まれていてうまくリンクがはれないので英語版です。
Basic access authentication - Wikipedia, the free encyclopedia
Reseaがやってることは以下の通りです。
- Webブラウザからアクセスが来たら401を返す
- Webブラウザ上でユーザ名&パスワードを入力 (Webサーバは関係なし)
- HTTPヘッダ内のAuthorization ヘッダフィールドを読んで、正しかったら200とHTML等を返す。
とりあえずテスト。
QEMU上でReseaを起動している同LAN内のデスクトップPC(IPアドレス: 192.168.24.54)にMacBookからアクセスしてみました。
ユーザ名とパスワードを入力
出てきた!
ネットワーク関連も大体動くものになってきたので、そろそろインターネット上で動かしてみたいです。
さくらのレンタルサーバにMercurialをインストールしてみた
ラインエディタを作る時にSourceForge.JPにプロジェクトとして登録するほどでもないし、PersonalForgeはGitだし…ということでさくらのレンタルサーバ(スタンダード)にMercurialをインストールして使う事にしました。
参考にさせていただいたWebページ
Mercurialの複数のリポジトリをhgweb.cgiで公開する - ::Eldesh a b = LEFT a | RIGHT b
JapaneseCGI_Install - Mercurial
PublishingRepositories - Mercurial
早速インストール
$ cd ~/tmp $ wget http://mercurial.selenic.com/release/mercurial-1.8.4.tar.gz $ tar zxvf mercurial-1.8.4.tar.gz $ cd mercurial-1.8.4 $ python setup.py install --prefix=/ホームディレクトリ/bin/mercurial
次にリポジトリ作成
$ cd ~/www/hoge/foo/bar/ $ ~/bin/mercurial/bin/hg init
cgiを置く
$ cp ~/tmp/mercurial-1.8.4/hgweb.cgi index.cgi $ chmod 705 index.cgi
cgiをviやらemacsやらで開き、コメントアウトされている部分2つを
config = "/home/なんとか/hgweb.conf" import sys; sys.path.insert(0, "/home/なんとか/bin/mercurial/lib/python2.6/site-packages/")
とし、
from mercurial import demandimport; demandimport.enable()
の前に
import os os.environ["HGENCODING"] = "UTF-8"
を追加。
.htaccessファイルを書いて設置。自分はこのサイトを利用させていただきました。
.htaccess ファイルを簡単作成「.htaccess Editor」
また、Options ディレクティブを使用すると「Internal Server Error」がでるかもしれません。
設定したのは、Basic認証とAddHandler cgi-script .cgiです。
hgweb.confを編集
[paths] プロジェクト名 = パス
サーバ側のホームディレクトリの.hgrcを編集
[web] push_ssl = false allow_push = *
アクセスしてみる
できたー!
pushしてみる
$ hg clone http://Basic認証のユーザ名@index.cgiのあるディレクトリ/index.cgi/プロジェクト名 $ cd プロジェクト名 $ echo "はろー" > hello.txt $ hg add hello.txt $ hg commit -m "テストコミット" $ hg push
またアクセスしてみる
またできたー!
これで素敵なMercurial生活が過ごせそうです。



