「未分類」カテゴリーアーカイブ

あーあ

嘘発見機の回路図を、新たに手に入れたソフトで描いていたら、突然ハングアップして ぱー。最近こういうソフト使っていないから、save しつつ やるなんて やらなかったぞ。使い勝手もよくわからんから、しこしこ、やってたのね。使い方がだんだんわかってきたから、再度描くのは もっと時間がかからないだろうけど...

CGI

CGI を各ユーザのSites で有効にする。
/etc/httpd/httpd.conf
を書き換えた。
Default では、/Library/WebServer/CGI-Executable においたファイルが有効 と設定してあった。
これを、各ユーザのSites/cgi-bin 内に置いたcgiファイルのみ有効にするとした。
/etc/httpd/httpd.conf
の625行目あたり
## ScriptAlias: This controls which directories contain server scripts. ## ScriptAliases are essentially the same as Aliases, except that ## documents in the realname directory are treated as applications and ## run by the server when requested rather than as documents sent to the client. ## The same rules about trailing “/” apply to ScriptAlias directives as to ## Alias. ## # ScriptAlias /cgi-bin/ “/Library/WebServer/CGI-Executables/” ScriptAlias /cgi-bin/ “/Users/*/Sites/cgi-bin” ## ## This should be changed to whatever your ScriptAliased ## CGI directory exists, if you have that configured. ## # <Directory “/Library/WebServer/CGI-Executables” <Directory “/Users/*/Sites/cgi-bin” # AllowOverride None AllowOverride All Options None Order allow,deny Allow from all </Directory> さらに、このサーバ固有の設定が記入されているファイルを/etc/httpd/sites/ からさがした。
0000_192.168.0.2_80_mike.md.tsukuba.ac.jp.conf である。
このファイルに保護領域の設定が記入されている。
このファイルの22行目あたりは、
   <Directory “/Library/WebServer/Documents”> Options All -Indexes +ExecCGI +Includes +MultiViews # AllowOverride None AllowOverride All <IfModule mod_dav.c> DAV On </IfModule> </Directory> となっている。試行錯誤の結果だ。
CGI がうごいていることの確認
test.cgi というファイルを作成する。内容は、
    #! /usr/bin/perl     print “Content-type: text/plainnn”;     print “Hellow World”;     exit; である。改行はUNIXにすること。
  <a href=”cgi-bin/test.cgi”>Test script</a> とどっかのページに書き。これを表示してクリックすれば Hellow World と表示されたページが出現する。これがうまくいけばいい。
CGI エラーログ
○サーバ管理 ー> Web -> ログ -> アクセス
130.158.152.137 – – [22/Jun/2006:08:41:42 +0900] “GET /sigh/cgi-bin/test.cgi HTTP/1.1” 200 24 “-” “Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4”
130.158.152.137 – – [22/Jun/2006:08:42:07 +0900] “GET /sigh/cgi-bin/light.cgi HTTP/1.1” 404 – “-” “Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4”
130.158.152.137 – – [22/Jun/2006:08:42:15 +0900] “GET /sigh/cgi-bin/bbs/light.cgi HTTP/1.1” 500 629 “-” “Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4”
○サーバ管理 ー> Web -> ログ -> エラー
[Thu Jun 22 08:42:07 2006] [error] [client 130.158.152.137] File does not exist: /Library/WebServer/Documents/error.html
[Thu Jun 22 08:42:15 2006] [error] (2)No such file or directory: exec of /Library/WebServer/Documents/sigh/cgi-bin/bbs/light.cgi failed
[Thu Jun 22 08:42:15 2006] [error] [client 130.158.152.137] Premature end of script headers: /Library/WebServer/Documents/sigh/cgi-bin/bbs/light.cgi
文法チェック
# perl -wc [ファイル名]
のコマンドでsyntax error をチェックする
Premature end of script headers というエラーは
1行目の#! /usr/bin/perl が誤りである。
Name “main::mode” used only once: possible typo at init.cgi line 125. というエラーがでても気にしない。これは変数に指定してあるが1回しかつかってないけどいいのか? という意味だから
syntax OK となればいい。
apacheの再起動
# /usr/sbin/apachctl restart
/usr/sbin/apachectl restart:httpd restarted

メール自動転送

メール自動転送
.forward ファイルを各ユーザのroot directory に置けばいい
普通はこれでいいのだが、以前の医学のサーバは送信者のメールのenvelopeのドメインがxxxxxx.xxxx.jpでないとsmtp サーバが受け付けないという設定であったため、大変だった。
なぜ、こんなことをしたかというと、医学のネットワークの維持管理の経費は医学の共通経費からでるのではなく、ユーザが負担することになってるからである。ネットワークを使う者はメールも使う。ユーザがネットワークを使っているかどうかは把握できない。だれでもコンセントにケーブルをつっこめば使えるからである。固定ip address を割り当てればいいが、これが大変だった。勝手にルータのip addressを記入しちゃってめちゃめちゃになったからだ。DHCPサーバを建てた理由である。医学はユーザを特定するのが事実上不可能である。認証サーバの技術はそのころはまだ確立していなかった。というわけで、医学では、医学のsmtpサーバしか使えず、なおかつ医学のドメインのメールでないと通さないということにしたのだ。
ということはこのサーバがが医学外から来たメールをそのまま自動転送するとenvelope は医学外のドメインから来たままだから医学のsmtpサーバを通らない。そこで仕方なくenvelope を書き換えて転送したのである。
現在はこの縛りがなくなったので単純に.forward を作ればいいことになったのだ。縛りをなくしたのは、ほとんどの教員が医学のサーバを利用しているからである。さらにsmtpサーバは医学のしか使えず、使うためにはID、パスワードを必要とするように設定したからである。このサーバ は医学のsmtpサーバにメールを丸投げであるが、医学のsmtpサーバはこのサーバからのメールに対しては制限なしに受け付けているのだ。
.forward の例
hoge@xxxxxx.xxxx.jp
hogehoge@nifty.com
がこのサーバにメールを残すことだ  が¥(半角)と表示される場合がある。