Ruby言語やLinuxのネタが多いです。
October 18, 2002
■ [Ruby] Ruby-GetText-Package-0.3.2 is released!
0.3.1に、msgidはあるのにmsgstrを指定していないと文字コード(たとえばEUC-JP)が文字列として返されるというバグがありまして、それの修正版です。
■ そういやこれ、ngettext対応とかしないといかんなぁ。うーむ。
October 18, 2005
■ [Ruby] Dir.globとHikiとSELinuxとApache
SELinuxなApache上でHikiを構築しようとしてみたところ、pluginディレクトリを読み込めないという事象にぶつかった。
よくよく調べてみると、Dir.globがうまく動作していない(要素0の配列[]を返す)。厳密に言うと、cgi-bin/配下がまるまるNGのようだ。
#!/usr/bin/ruby
print "Content-type:text/html\n\n"
puts "
<html><head><title>Hello, Ruby world!</title></head>
<body>
<h1>Hello, Ruby world!</h1>
<hr>
#{Dir.glob("/home/mutoh/WWW/cgi-bin/*").inspect}
<hr>
</body></html>
"
いろいろ調べた結果、cgi-bin配下のアクセス権であるsystem_u:object_r:httpd_sys_script_exec_tが問題で、system_u:object_r:httpd_sys_content_tに変更したらアクセスできるようになった(アクセス権限はls -Zで調べれる)。
#ただ、このアクセス権だと今度はCGIが動かないのでcgi-bin/hiki/plugin配下のみ設定を変更する必要がある。
静的ドキュメントとしてapacheから読み込めるようにするためにはhttpd_sys_content_tを、CGIとして動作させるためにはhttpd_sys_script_exec_t権限が必要。だけどhttpd_sys_script_execに対してはファイルアクセス系が制限される(調べてないけど)っぽい。
まとめると以下のように設定する必要がある。(/home/mutoh/WWW 配下がDocumentRoot)
$ cd /home/mutoh/ (WWW配下はすべてapacheからアクセスできるようにしておく) $ chcon system_u:object_r:httpd_sys_content_t WWW $ cd WWW $ chcon system_u:object_r:httpd_sys_script_exec_t cgi-bin $ chcon system_u:object_r:httpd_sys_content_t cgi-bin/hiki/plugin
オレの場合、dataディレクトリはcgi-bin配下に置いていないので問題なかった(もともとhttpd_sys_content_t権限を与えていた)が、Hikiの標準的なフォルダ構成のまま使う場合はdata配下等もhttpd_sys_content_t権限に変えなければ動かないかもしれない。
■ SELinux、おもしろいけど難しいなぁ。きちんと勉強した方が良さそうだな。
