DreamHost、One-Click InstallsにTracが追加!
インストールが面倒くさいことこの上ないTracですが、DreamHostのOne-Click InstallsにTracが追加されました!
これで、ワンクリックでTracがインストールできるようになりました。
…candycaneが公開されたらそちらを使う予定ですが
インストールが面倒くさいことこの上ないTracですが、DreamHostのOne-Click InstallsにTracが追加されました!
これで、ワンクリックでTracがインストールできるようになりました。
…candycaneが公開されたらそちらを使う予定ですが
Dreamhost はいつ頃からか、ストレージと転送量の制限が完全に無くなりました。しかし、これは新サーバーでの話であって、既存ユーザーはデータ移動リクエストをしなければ元のままでした。私は、移行が面倒くさかったので新サーバーへは移しませんでした。
ところが先日、Deamhost から「サーバー移すよー」のメールが来て新サーバーへ引越ししました。これだけで済めばよかったんですが、なんと新サーバーは64bit。メモリは16GBです。
自分でコンパイルした PHP、Python・・・などはコンパイルし直しです。依存ライブラリもコンパイルし直しです。疲れました。
そんなわけでとりあえず移行しましたが、どこか不具合があるかもしれません。ページが見れないなどがありましたら、お知らせくださるとありがたいです。
Bazaarのマニュアルをみていたら、「Bazaar スマートサーバー」というものがあり、おもしろそうだったので、Dreamhost でやってみました。Bazaar スマートサーバーを入れると「bzr+http://」が使えるようになり、push もできます。以下その記録。
http://example.com/ に構築する例でやります。なお、Python はビルドしたもので、~/local/bin/python とします。Bazaar もインストール済みで。
http://example.com/.htaccess
PYTHONPATH の通っている site-packages に http://svn.saddi.com/py-lib/trunk/fcgi.py を置く。
http://example.com/bzr-smart.fcgi
smart_server_app = wsgi.make_app(
root=‘/home/user/example.com’,
prefix=‘/’,
path_var=‘REQUEST_URI’,
readonly=False,#読み込み専用かどうか
load_plugins=True,
enable_logging=True)
fcgi.WSGIServer(smart_server_app).run()
これで bzr push bzr+http://example.com/branch や bzr branch bzr+http://example.com/branch ができます。
http://example.com/.htaccess で認証をかけることもできます。
このブログは、Dreamhost で運営しています。Dremahostは高機能で安いのがうりですが、その機能についてまとめておきたいと思い、まとめてみました(2009/2/5の時点で)。ドルの横のカッコ内は$1=89円で計算してみた結果です。
| ストレージ | 無制限+バックアップ50GB |
|---|---|
| 転送量制限 | 無制限 |
| MySQL 5 データベース | 無制限 |
| OS | Debian Linux |
| E-Mail アカウント (POP/IMAP) | 無制限 |
|---|---|
| シェル/FTP ユーザー | 無制限 |
| POP / SMTP アクセス | Yes |
|---|---|
| IMAP アクセス | Yes |
| Webメール | Yes |
| Procmail フィルター | Yes |
| スパムフィルタ – SpamAssassin | Yes |
| 独自ドメインGmail | Yes |
| メールアドレスエイリアス | 無制限 |
| アナウンスリスト(メーリングリスト) | 無制限 |
| ディスカッションリスト(メーリングリスト) | 無制限 |
| 自動返信 | 無制限 |
| 無料ドメイン登録 | Yes |
|---|---|
| 無料ドメイン WHOIS | Yes |
| ホストできるドメイン | 無制限 |
| ホストできるサブドメイン | 無制限 |
| 転送/ミラー ドメイン | 無制限 |
| カスタムDNS | Yes |
| PHP5 サポート | Yes |
|---|---|
| Perl サポート | Yes |
| Python サポート | Yes |
| フル Unix シェル | Yes |
| Crontab アクセス | Yes |
| フル CGI アクセス | Yes |
| Ruby On Rails | Yes |
| CGI スプリクト | Yes |
| Server Side Includes (SSI) | Yes |
| CVS レポジトリー | Yes |
| Subversion レポジトリー (SVN) | Yes |
| SSL Secure Server (ユニークIPが必要) | Yes |
|---|---|
| Web セキュリティー増強 | Yes |
| WebDAV | Yes |
| データバックアップのスナップショット | Yes |
| アクセス統計 | Yes |
| Apacheの生ログへのアクセス | Yes |
| DreamBook.comのアカウント | Yes |
| パスワード保護ディレクトリ (.htaccess) | Yes |
| RealAudio & 動画 (http ストリーム) | Yes |
| QuickTime ストリーミング | Yes |
| 匿名 FTP サーバー (ユニークIPが必要) | Yes |
| Jabber チャットサーバー | Yes |
| WordPress | Yes |
|---|---|
| Gallery | Yes |
| ZenCart | Yes |
| PhpGedView | Yes |
| Pligg | Yes |
| dotProject | Yes |
| Moodle | Yes |
| Joomla | Yes |
| phpBB | Yes |
| MediaWiki | Yes |
| WebCalendar | Yes |
| Advanced Poll | Yes |
| 24時間テクニカルサポート (E-Mail) | Yes |
|---|---|
| 97日間のお試し期間 | Yes |
| Web コントロールパネル (デモあり) | Yes |
| DreamHost Wiki | Yes |
| DreamHost Forum | Yes |
| ドメイン追加登録 | $9.95/年(886円/年) |
|---|---|
| ユニークIPアドレス | $3.95/月(352円/月) |
| プレミアム 電話サポート (3回/月) | $9.95/月(886円/月) |
| VPN アクセス | $19.95/月(1776円/月) |
| SSL証明書 (ユニークIPが必要) | $99.95/年(8896円/年) 又は 持込 |
シェルは、bash、tcsh、ksh、zsh が使えます。
.htaccess はほぼフルに使えると思って大丈夫です。mod_rewrite も使えます。
また、Procmail でメールをトリガーにPHPなどを起動することもできます。
入っている PHP や Python が気に入らなければ、自分でコンパイルしたものを使用することができます。
Google Apps は1クリックで設定できます。
料金のほうですが、プロモーションコードとして「DHREGEN」を用意しました。これを登録時に入力すると料金が割引されます。
| 期間 | 価格 | 「DHREGEN」使用時の割引額(1年目のみ) |
|---|---|---|
| 1ヶ月 | $60.90(5421円) | $51.00 |
| 1年 | $119.40(10627円) | $97.00 |
| 2年 | $214.80(19118円) | $97.00 |
| 3年 | $286.20(25472円) | $97.00 |
| 5年 | $417.00(37113円) | $97.00 |
| 10年 | $714.00(63546円) | $97.00 |
(追記)Dreamhostの方で割引額の上限を$50に制限しているようなので、すべて$50の割引になります。
SVNのログでチケットの操作ができるとっても便利なtrac-post-commit-hookですが、DreamHostで使うには難がありました。
最大の難点は post-commit が dhapacheというユーザーで実行されるということで、これが数々の問題を引き起こします。
色々と実験して解決策を見つけたのでポストします。
なお、解決策は SQLite を使っている場合と MySQL を使っている場合で異なります。
コミット後にスクリプトを実行するため、/home/***/svn/projectid/hooks に post-commit という名前のファイルを作成します。
このファイルがコミット後に実行されるわけですが、dhapache によって実行されるため環境変数の再設定が必要になります。
それなので、.bash_profile などから必要な変数をコピーします。
そして、trac のソースの contrib ディレクトリから trac-post-commit-hook を post-commit と同じディレクトリにコピーします。
さらにsvn_commit_jp.mdから svnlog2utf8 を取得してパスの通るところに置いて実行権を与えます。
post-commitの例(パスなどは適宜変えてください):
HOME=‘/home/***’
export PYTHONPATH="$HOME/local/lib/python: $HOME/local/lib/python/site-packages"
export LD_LIBRARY_PATH="$HOME/local/lib"
export PYTHON_EGG_CACHE="$HOME/tmp"
export PATH="$HOME/local/bin:$PATH"
REPOS="$1"
REV="$2"
LOG=`svnlook log -r $REV $REPOS | svnlog2utf8`
AUTHOR=`svnlook author -r $REV $REPOS | svnlog2utf8`
TRAC_ENV="$HOME/trac_sites/projectid/"
TRAC_URL="http://trac.example.com/projectid/"
python $REPOS/hooks/trac-post-commit-hook \
-p "$TRAC_ENV" \
-r "$REV" \
-u "$AUTHOR" \
-m "$LOG" \
-s "$TRAC_URL"
SQLiteの場合は dhapache が trac のディレクトリの /db/trac.db(デフォルト) へアクセスする権限を持っていないため、エラーになります。
この場合は trac.db に「chmod o+rw」するしか方法がないと思います。書き込み権限を与えるのはやだなと思うときはMySQLの移行も考えてください(MySQLへのパスワードも dhapache が読み取れる必要があるので同じっていえば同じですが)。
MySQLの場合は、上で設定した「PYTHON_EGG_CACHE」の値が dhapache が書き込みできるディレクトリを指定していて、trac.ini を読み込めればOKです。
SQLite から MySQLへの移行は SqliteToPgScript を使うと便利です。
SqliteToPgScript でMySQLインポートしたら、trac.ini の database の指定を「mysql://user:password@host/database」のようにすればOKです。
DreamHostにはPHPが元々入ってますが、PECLなどの拡張ライブラリが使用できません。
加えてバージョンが古いのです。そこでPHPを自分でコンパイルしてインストールしました。
参考にしたのは、Installing PHP5 – DreamHost。
基本は上のページのスクリプトでインストールできるのですが、インストール場所を変えるためと依存パッケージを新しくするために書き直しました。
変更点は以下の通りで、
などです。
まず PHP5インストールスクリプト をダウンロードして中身を解凍し、php5-install.sh の中の INSTALLDIR などを好きなように設定します。
初期状態でインストールした場合は /home/*****/local/bin/php がPHPバイナリとなります。
php5-install.sh を実行し、問題が無ければPHPが指定した場所へインストールされます。
後はサイト毎のfcgiファイルでexecの部分を「exec /home/*****/local/bin/php-cgi」と指定すればFastCGIでカスタムPHPが動きます。
「php-cgi」が要で、CLI版を指定してしまうとFastCGIが動きません。
このあとPECLなどを使う場合はパスが通っている必要があるので .bash_profile などに「export PATH=$HOME/local/bin:$PATH」などと指定しておきます。
スクリプトが途中で止まる・・・などあったらコメント下さい。
大体は以下のサイトを参考にしてインストールしました。
インストール中に気づいたことは、自分で入れた Python と DreamHost に入っている Python を区別しなければいけないということ。
普通に python とタイプすると、DreamHost の Python が起動するので、意図したディレクトリに格納されない場合がありました。Python のインストールが終わった時点で自分の Python をエイリアスしておくといいと思います。「alias python=”/home/*****/local/bin/python”」などです。
あと、上記サイトにあるように、Subversion のインストール時に APR と APR-Util をインストールしておかないと止まります。
trac をサブディレクトリに配置して運用する場合は、.htaccess の「RewriteEngine On」の後に「RewriteBase /projectid/」などを指定しておく必要があります。
trac入れるのって面倒くさいですね・・・
Recent Comments