とりあえずリポジトリの準備をば
ひとまず開発環境へのMercurialのインストール
2:検証用の手元のサーバ(CentOS)
rpmForgeを使えばyumでOK
- rpmForgeをリポジトリに追加
$wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm $sudo rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
- yum であっさりインストール完了
$sudo yum install mercurial
う〜ん、とっても楽
3:サクラインターネット
ソースダウンロードしてsetup.pyを叩けばOKなのね
$wget http://www.selenic.com/mercurial/release/mercurial-1.0.2.tar.gz $tar xvzf mercurial-1.0.2.tar.gz $cd mercurial-1.0.2 $python setup.py install --home=$HOME/local --force
。。。とインストールまではうまくいったものの、PATHが通ってないらしくhgコマンドがうまく走らないのです。
まあ、ちゃっちゃとシェルの設定を変えてしまえば良いんですが、サクラのデフォルトシェルがcシェルなうえにviがほんまもんのviというとても男らしい仕様なので、軟弱な俺さんはもう少し使いやすい環境に変えたいと思います。
4:[番外編] サクラのサーバ環境を俺好みにする
・ シェルをbashに変更
次のコマンドでユーザ環境を変更します
% chsh -s /usr/local/bin/bash
んで、.bash_profileと.bashrcを作成して、元々あった.cshrcからPATH設定やらを移行して完了
#PATHを移行し忘れてlsコマンドすら効かなくなって涙目になったのは秘密
わーい、やっぱりbashが一番安心ですな
・ viをvimに変更
ソースを落っことしてきてコンパイルしてインストールして。。。。をユーザディレクトリ内でやるだけ
- ソースを落っことしてきて解凍
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.1.tar.bz2 $ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-extra.tar.gz $ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-lang.tar.gz $ tar jxf vim-7.1.tar.bz2 $ tar zxfv vim-7.1-extra.tar.gz $ tar zxfv vim-7.1-lang.tar.gz $ cd vim71
- vim71ディレクトリ内でconfigureしてmakeしてinstall
$ ./configure --enable-multibyte --enable-fontset --enable-python --with-features=big --prefix=$HOME/local $ make $ make install
- 後は.bashrcのPATHに$HOME/local/binを追加してviコマンドのaliasを設定
alias vi='vim'
終わったら手持ちの設定ファイル(.vimrc)とプラグイン関連(.vim/)をサーバに送り込んで完了
ちなみによく使うプラグインはNERDTreeとVCSCommandだったりします
# --enable-pythonオプションが効いてないのが気になるけど、時間が掛かるので後でやるー
並行作業結果
並行して検証してたVirtual Boxがよい感じ。
Windows XPがかなりさくさく動きます。
Windows版のVMWareと比較してもそんなに遜色ないかも
しばらくはFusion買わなくてすみそうで一安心です
画像加工が手間なのでSSはおちついたら&気が向いたら貼付けるよー
リポジトリの初期設定 その1
まずはメインになるサクラ側
$cd repos/jdi $hg init
リポジトリ基本設定と公開設定を.hg/hgrcファイルに記述
#Owner設定 [ui] username=owner #Web設定 [web] #pullの許可 allowpull=true #pushのアクセス権設定[許可ユーザのIDを記述(全許可の場合は*)] allow_push = allow_user #push時にsslを必須とする push_ssl = true #アーカイブのダウンロード許可[許可する形式を記述] allow_archive = gz, zip #Webページを見れなくするかどうか hidden=false #リポジトリの名前 name = Just-Do-It #リポジトリの説明 description = Repository of Just-Do-It #サイトのスタイルの指定 style = gitweb
pushされたくないファイル設定を.hgignoreに記述
syntax: glob *.pyc *.pyo *.o .hgignore .project .setting *.swp
リポジトリ公開用ディレクトリを作成してmercurialパッケージからhgweb.cgiをコピーする。その際にindex.cgiに書き換えておく
ファイルをコピーしたらindex.cgiの次の箇所を環境に合わせてPythonのライブラリへのパスに書き換え
import sys sys.path.insert(0, "/path/to/python/lib")
ついでに次の箇所をコメントアウトしとくとよさそう
import os os.environ["HGENCODING"] = "UTF-8"
最後にリポジトリへのパスを設定して完了
application = hgweb("/path/to/repository", "app_name") wsgicgi.launch(application)
お好みで.htaccessを使ってアクセス制限をしても良いかも
#基本設定 DirectoryIndex index.cgi # サクラでは以下の設定は不要 # AddHandler cgi-script .cgi # Options ExecCGI Order allow,deny Allow from all #アクセス制限設定 # PUSHのみを制限、PULLも制限する場合はを外す Require valid-user AuthType Basic AuthName "Input ID / Password" #認証用の.htpasswdファイルを指定 AuthUserFile /path/to/htpasswd/.htpasswd
上記はpushのときだけ認証する設定。
環境によってはntlm認証やらldapやらで統合認証とかも可能でした。
リポジトリの初期設定その2
検証用サーバでのリポジトリ初期設定
サクラ側で公開設定が終わってしまえばhg cloneコマンドで複製できます
- リポジトリの作成先に移動してcloneコマンドを実行
$ hg clone http://plasticscafe.com/repos/jdi/ ./jdi
あとは、作成したリポジトリにユーザ名設定を加えるだけで基本はOK
- .hg/hgrcファイルに下記を追加
[ui] username = ユーザ名<メールアドレス>
お好みで.hgignoreファイルを作成してたほうが開発は楽そう
- .hgignoreファイルを下記内容で作成
syntax: glob *.pyc *.pyo *.o .hgignore .project .setting *.swp
以上で検証環境はだいたいOK
開発環境のリポジトリ初期設定
開発環境は検鏡環境を経由して公開サーバに反映しようかと思っていたりします
経路的にはざっくりとこんな感じ
[ 開発環境 ] → 編集後アップデート → [ 検証環境 ] → 検証後にアップデート → [ 公開サーバ ]
検証環境・公開サーバ間がhttp通信なので、開発環境・検証環境間はssh通信にしようかと思います
# ローカル内の通信だし、cgi設定がめんどうってのもあるけど
基本的にやる事は一緒でclone先をちょっと変えるだけでOK
- リポジトリの作成先に移動してcloneコマンドを実行
$ hg clone ssh://ユーザ名@サーバアドレス//path/to/repository/jdi/ ./jdi
.hg/hgrc、や.hgignoreの設定は上と一緒
ようやく一段落ついたので、お昼食べてから開発始めますー
うちの犬の空気読めるっぷりは異常
ご飯食べてたらうちの犬の尻に黒い物が。。。
。。。うんちつけたまま動き回ってたのね、あなた
やってほしくないとき(さあご飯食べるぞ、とか)に限ってクリティカルなことをやってのける、そんなうちの犬はものすごく空気を読む子なんじゃないかと思うのです。
。。ということで臭くなってた犬を洗い終わったので再開します
今度は猫がかまってくれと騒いでた件について
ほんと、どいつもこいつも
遊び終わったのでいい加減に始めるよー、とりあえず画面デザインとか作ってみる
コーディングしようと思ったけども
けだもの達がご飯、ご飯の大合唱をしているので一旦ご飯休憩します
テンプレート利用に難航中
複数の画面が発生するのでヘッダーとフッターは
テンプレート化して読み込みたいとか思ってたら
以前書いてたスクリプトが動かない。。。という素敵現象に陥ってましたとさ
大して環境も変えてないのにおかしいなぁー
とりあえずほとんど書き直して次のような形でコンテンツを読み込むようにしましたよ
#コメントとかは後で書くっす
#!/usr/bin/python # -*- coding: utf-8 -*- import sys import codecs sys.stdin = codecs.getreader('utf-8')(sys.stdin) sys.stdout = codecs.getwriter('utf-8')(sys.stdout) encoding = "UTF-8" def fileRead(file_path): html = "" f = open(file_path, "r") for line in f: html += line return html app_path = "../app/common/view/template" html_header = fileRead(app_path + "/" + "header.tpl") #メインのコンテンツを読み込む用 #html_main = fileRead(app_path + "/" + "main.tpl") html_footer = fileRead(app_path + "/" + "footer.tpl") #encoding charset html_header = unicode(html_header, encoding) #メインのコンテンツを読み込む用 #html_main = unicode(html_main, encoding) html_footer = unicode(html_footer, encoding) print "Content-Type: text/html" print print html_header #メインのコンテンツを読み込む用 #print html_main print html_footer
PHPだと一瞬なのになぁ。。。
う〜ん、とりあえずヘッダーフッターの読み込みはできるようになった物の、煮詰まってきたので今日は寝ます。明日頑張る←駄目人間
最近読んでいる本
ふて寝するのもあれなので、最近読んでる本の紹介〜
会社のお昼休みの後半30分でぼそぼそやってます。
(発売日ぐらいに買ったというのに)ようやく3章が終わったっす
- 作者: Toby Segaran,當山仁健,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/07/25
- メディア: 大型本
- 購入: 91人 クリック: 2,220回
- この商品を含むブログ (277件) を見る
内容的には俺の大学院時代の研究分野といえば、わかるひとにはわかるかな?
3年前にこの本があればもう少しいろんなことができたのになぁと思ってしまう今日この頃
某研究室の人間の必須図書にすれば良いのに。。。と思うのは厳しいですかね。。。
とりあえずニヤニヤしながらやってます ←ただの変な人ですけど
あと最近これが読みたいけどなかなか買うきっかけが無いので。。。だれか貸してください
[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/07
- メディア: 単行本(ソフトカバー)
- 購入: 133人 クリック: 2,270回
- この商品を含むブログ (288件) を見る
発売ぐらいに読んだこっちと補完関係っぽいらしいので
Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)
- 作者: 西田圭介
- 出版社/メーカー: 技術評論社
- 発売日: 2008/03/28
- メディア: 単行本(ソフトカバー)
- 購入: 47人 クリック: 1,166回
- この商品を含むブログ (374件) を見る
そういえば、ここらへんの記事は結構おもしろかったので負荷分散とかに興味ある人にはお勧めかも
http://techtarget.itmedia.co.jp/tt/news/0709/12/news01.html