Webサーバ (apache) - Hirotake Itoh's memo by PukiWiki

2b03

ローカルで(localhost用)立ててみた。よちよち歩きで設定中。

## link *

The Apache Software Foundation
Studying HTTP

## 日本語ファイル名のダウンロード *

もちろん日本語ファイル名なんぞは使わないのがベストなのだが、そうは言ってられない事態もある。何かしらのworkaroundを考えなくてはならない。サーバ側に日本語ファイル名を置いて、そのURLを指定するなんてのは無理みたい(IISならできる？)。そこで、octet-streamを用いてダウンロードさせるのだそうだが、結局その辺の文字コード事情もクライアントによってマチマチなようである。

日本語名ファイルダウンロード時の文字コード
ダウンロード時の日本語ファイル名の文字化けについて

メールの話だが、総論みたいなのが。結論：日本語ファイル名なんか使うな

添付ファイルにおける日本語のファイル名に関して

## suEXEC *

cgiの実行にあたって、権限がapacheのままだと不都合なことが多く、一般ユーザーの権限で実行させたい事がよくある。これを融通してくれるのがsuEXEC。使用のためにはバーチャルホストかUserDirを使わなくてはいけないが、後者を用いることにした。

### link *

suEXECサポート
mod_userdir
Apache Tips

### 手順 *

UserDir public_html

とし、/home、/home/(username)、/home/(username)/public_html のパーミッションを各々755にしておく(ここで2日潰した！しかも、これをしておかなかったのでapacheはホームディレクトリ以下の共有ライブラリも見ることができずに途方にくれていた)。apacheを再起動すると、確かに

http://foo.bar.com/~username/file.html

が

/home/username/public_html/file.html

を参照していた。この時public_html以下のcgiは、確かに対応するユーザーのパーミッションで実行されているようであった。

### 確認cgi *

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `whoami`;

## 辞書 *

EBライブラリという、辞書引き関連のライブラリがある。これを利用するクライアントは多数あるが、cgiで動かせるものもあるのでチャレンジしてみた。

### 手順 *

UNIXで電子辞書をしゃぶりつくそうの記事の通りにやれば(apacheの設定で悶絶したが)あっさりできた。ただ、EBライブラリをちょっと変わった場所に作っていたので、RubyEBのビルドでMakefileを作る際に

ruby extconf.rb --with-opt-dir=/path/to/usr

として参照先を指定してやらないとビルドがうまくいかなかった。(参考:mkmf.rb)さらに、mkmf.rb の生成？するコンパイラ(gcc)のフラグに、現在使用してるgccで解釈できないmtuneが混じっていたので、(私の環境では)/usr/lib/ruby/1.8/i386-linux-gnu にあったrbconfig.rbを修正する必要もあった。

### RubyEBのテスト用スクリプト *

#!/usr/bin/ruby
require "eb"
b=EB::Book.new
b.bind("/path/to/jisho")
b.subbook=0
b.exactsearch( "koumoku" ) do |word,desc|
print "[",word,"]\n"
print "\n",desc,"\n"
end

### link *

UNIXで電子辞書をしゃぶりつくそう ここが全て
EBライブラリ
RubyEB RubyからEBを使う
let me see... Rubyによるcgi
Unix 辞書ソフト総合スレッド 過去ログ倉庫
Unix 辞書ソフト総合スレッド 第二版
eblook (参考:コマンドライン用のインターフェース)

## 雑多メモ *

AllowOverrideしないと、ディレクトリでの.htaccessが反映されない

## AXISネットワークカメラ *

apacheとは全く関係ないが、関連するのでここに書く。AXIS205というネットワークカメラからHTTP経由で画像を取り込むことができるので、それを利用してクライアントを作った際のメモは以下。

HTTP Authorization
HTTP クライアントを作ってみよう(1)
telnetでブラウズ(HTTP)
HTTP/1.0

22e

Last-modified: Tue, 02 May 2006 20:58:11 JST