このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Catyが使えるユーザーの設定(2010夏 版)

CentOS上にCatyを使えるユーザーを作る作業をまたやっている。

  1. useraddでユーザー追加。 http://d.hatena.ne.jp/m-hiyama-memo/20100122/1264128520 参照
  2. FTPアクセスを許可するなら、/etc/vsftd.user_list にユーザー名を追加。

次にMercurialのインストール http://d.hatena.ne.jp/m-hiyama-memo/20100212/1265935055 参照。
念のため繰り返すと:

  1. /usr/local/python/bin/python ./virtual-python.py --prefix=$HOME/python2.6.4 --no-site-package
  2. ~/python2.6.4/bin/python ./ez_setup.py
  3. $HOME/python2.6.4/bin: をパスに加える。
  4. 再ログインするか、$ . ./.bash_profile する。
  5. easy_install mercurial
  6. Mercurialのrcファイル ~/.hgrc を作成OR編集する。[ui]セクションに username=Mercurialのユーザー名 を入れる。hg showconfig で確認可能。

最近は、virtual-pythonよりいいヤツがあるらしいが、、、、

次、Catyリポジトリのクローン:

  1. $ hg clone https://m_hiyama@bitbucket.org/project_caty/caty_mainline
  2. その他固有なリポジトリがあれば同様にクローンする。

2010-09-06の時点で:


$ hg clone https://m_hiyama@bitbucket.org/project_caty/caty_mainline
http authorization required
realm: Bitbucket.org HTTP
user: m_hiyama
password:
destination directory: caty_mainline
requesting all changes
adding changesets
adding manifests
adding file changes
added 1440 changesets with 4910 changes to 1475 files
updating to branch default
436 files updated, 0 files merged, 0 files removed, 0 files unresolved

コンソールが日本語を通さないと次のようになる:


$ python ./caty.py
Traceback (most recent call last):
File "./caty.py", line 15, in
sys.exit(caty.main(sys.argv[1:]))
File "./python/caty/__init__.py", line 8, in main
return console.main([])
File "./python/caty/front/console.py", line 350, in wrapped
cout.write(traceback)
File "./python/caty/util/__init__.py", line 88, in write
self.stream.write(tb.encode(self.encoding))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 429-443: ordinal not in range(128)
$

http://d.hatena.ne.jp/m-hiyama-memo/20100212/1265941306 にも書いてあるが: LANG=ja_JP.UTF-8 とする。


$ python ./caty.py
システム情報を読み込んでいます
commands の設定を読み込んでいます
commands に commands が存在しません。自動生成します
commands に schemata が存在しません。自動生成します
commands に scripts が存在しません。自動生成します
commands に include が存在しません。自動生成します
commands に data が存在しません。自動生成します
user の設定を読み込んでいます
user に behaviors が存在しません。自動生成します
user に commands が存在しません。自動生成します
user に pub が存在しません。自動生成します
user に schemata が存在しません。自動生成します
user に include が存在しません。自動生成します
user に data が存在しません。自動生成します
fit-view の設定を読み込んでいます
fit-view に behaviors が存在しません。自動生成します
fit-view に scripts が存在しません。自動生成します
fit-view に data が存在しません。自動生成します
アプリケーショングループ main が存在しません。自動生成します
ルートアプリケーションが存在しません。自動生成します
root の設定を読み込んでいます
root に behaviors が存在しません。自動生成します
root に commands が存在しません。自動生成します
root に pub が存在しません。自動生成します
root に schemata が存在しません。自動生成します
root に scripts が存在しません。自動生成します
root に include が存在しません。自動生成します
root に data が存在しません。自動生成します
アプリケーショングループ extra が存在しません。自動生成します
アプリケーションの設定を適用しています
user の起動スクリプトを実行しています
Caty interactive shell

caty:root>

ポートを開けるためには、iptablesを使う必要がある。以下は、一時的に8000番ポートを開ける例(このとおりにやらないこと、適宜確認と変更)。


$ sudo /sbin/iptables --line-numbers -L INPUT

$ sudo /sbin/iptables -I INPUT 15 -p tcp --dport 8000 -m state --state NEW -j ACCEPT

$ sudo /sbin/iptables --line-numbers -L INPUT

ポート8080で、ログアウトしても動くようにする。


$ nohup python caty.py server --port=8080 &

$ logout

nginxの設定例、外部からは8000番でアクセス。それをなかの8080番に流す。ここで使っている8000とか8080とかはあくまで例なので、実際には適当な番号に直す。


#
server {
listen 8000;
server_name www.example.net;
access_log logs/www.example.net.access.log main;

location / {
proxy_pass http://localhost:8080/;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Catyのmain/root/pub/ 内にindex.htmlを作っておく。(最近は自動生成しないので。)

最初はフォアグラウンドで実行して起動を確認する。


$ python caty.py server --port=8080

...

http://www.example.net:8000/にアクセス。もし、8080番のサーバーが落ちていれば、nginxが 502 Bad Gateway を出す。

フォアグラウンドのCatyはキーボード割り込みで終了できる。次にバックグラウンドで実行してみる。


$ python caty.py server --port=8080 &
[2] 376
...
Serving on port 8080...

$ pgrep python
376
$ wget http://localhost:8080/
--00:09:19-- http://localhost:8080/
=> `index.html'
localhostDNSに問いあわせています... 127.0.0.1
localhost|127.0.0.1|:8080 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 76 [text/html]

100%[==============================================>] 76 --.--K/s

00:09:19 (346.82 KB/s) - `index.html' を保存しました [76/76]

$ cat index.html
<html>
<head><title>hello</title>
<body>
<h1>Hello</h1>
</body>
</html>
$

バックグラウンドのCatyを停止はプロセス番号とkillコマンドを使う。