[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] 持ち運んで使うWWWサーバ 2005 秋 2005/11a

持ち運んで使うWWWサーバ 2005 2005/04a

[まえ::持ち運んで使うWWWサーバ]
[Table of Contents]

はじめに

前のページで述べたような 環境でしばらく満足していたのですが、 やっぱり人間というのは欲深いものなのですね。 2004(平成16)年の秋くらいから、この環境にだんだん不満を感じる ようになってきました。その理由として
  • CGI が使いたい!
ということがあげられます(わざわざ箇条書きにした意味がないんだけど>俺)。

ちょっとした必要にせまられて、 『なんちゃって画像転送同調装置』 なるものを作ってみたんですけど、 このCGIプログラムが、フラッシュメモリを挿しただけのWindows機で 動いてくれたら! ‥‥とどうしても考えてしまうわけです。


[Table of Contents]

そんなこんなで結局 Apache に

やっぱ Apache しかないのかよ と思って、 やってみたところ‥ CGI うまく動く!! (^o^)

やったことを簡単に書いておくと‥

  1. フラッシュメモリを挿す。ここではこれを仮に F: ドライブとする
  2. F:\WWW フォルダを作る
  3. Apache を持ってくる。今回試したのは Apache 1.3.33 です。
  4. Apache のインストール。私が注意した点は‥
    • インストール先は F:\WWW\Apache に。
    • 途中で、何だっけな‥たしか 「サービスとして起動」か「手作業で起動」のどっち? とか 聞かれたときに「手作業で起動」をチェック
  5. F:\WWW\Apache\httpd.conf を開く。すると、あちこちのパス指定の 箇所に F:\WWW\Apache\... のようにドライブ名が決め打ちされてる 箇所があるので、そこから F: の部分を消して、 \WWW\Apache\... のようにする。
  6. DocumentRoot は F:\WWW\Apache\htdocs になってるけど、これを \WWW\htdocs に変える。(個人的な趣味?)
  7. 上記以外の場所についても、チョコチョコいじる (^_^; AllowOverride None を AllowOverride All にしたり、 ServerName を 127.0.0.1 にしたりとか。まあ、 使うのはグローバルIPを名乗らないPCばかりだし、 セキュリティのことは考えずともよい環境だしね。
  8. この状態で、一度 Apache.exe をダブルクリックして Apache を 起動させてみる。 ... おおお、うまく起動してるじゃん!
  9. さらに Perl のインストール。とりあえず Perl4 のバイナリが 動けば十分だろ? ということで、JPERL4 のパッケージ (njperl45.lzh というパッケージを見つけました)を入手して展開して F:\WWW\Jperl\JPERL.exe という場所(これもフラッシュメモリの中ね) に jperl 本体が置かれるようにしてみる。
  10. \WWW\Apache\cgi-bin に printenv.pl というファイルがあるけど、 このファイルの最初に以下の行を追加:
    #! /WWW/Jperl/JPERL
    そのうえで http://localhost/cgi-bin/printenv.pl にアクセス。 おお、CGI 動いてるよ!! (^o^)
  11. ここで一度 Apache を終わらせてフラッシュメモリを抜いて、 他のPCに挿して、フラッシュメモリ上にある Apache.exe を ダブルクリックして Apache を起動させて CGI のテスト ... うまくいく!
  12. ちなみに、この段階での F:\WWW のファイル容量は 「サイズ: 5.57MB / ディスク上のサイズ: 12.3MB」といった感じ。 両方の数値にはずいぶん開きがあるけど、でもまあ、32MB の フラッシュメモリを使うんであれば、容量にはかなり余裕が ある感じ。
  13. なお jcode.pl はこの JPERL4 のセットでは動きません。 というか、私には動かせませんでした‥
なお、こうして構築した \WWW 以下のカタマリ(?)につきましては、 そのカタマリをそのまま別の Windows PC の C:\WWW にコピー (ドラッグ・アンド・ドロップ)して、フラッシュメモリを抜いて、 C:\WWW 以下にある Apache.exe をダブルクリックしたらちゃんと CGI まで動きましたので、かなり可搬性の高いセットになったの ではないかと自負しております :D (「ショートカット」は使わないのがコツみたいです。というか、 ドライブ名なしのショートカットがどうしても作れない‥)
[Table of Contents]

Apache 起動とレジストリ

ここで気になるのは、Apache 起動によってレジストリにどのような 影響が生じるのか、といったあたりだと思われます。 ‥とかいいつつ、実は私は「レジストリ」についてはよく知らないので、 とにかく「レジストリに大きな変更がなきゃいいなあ」といった程度の 心配しかないんですけどね。

んで、とりあえず Apache の起動の前後でレジストリにどのような 変化があったかを見てみるため、 regedit 起動、レジストリ書き出し(1)、 Apache 起動、 Apache 終了、regedit 起動、レジストリ書き出し(2)、 という一連の操作を行ってみて、 1回目に書き出したレジストリの中身と、 2回目に書き出したレジストリの中身との差分を RegDiff を使って 取り出してみました。取り出された差分情報は4項目だけで、 それらのキー部分(?)だけを取り出すと、こんな感じです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]
[HKEY_USERS\S-1-5-21-789336058-854245398-839522115-1001\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\*]
[HKEY_USERS\S-1-5-21-789336058-854245398-839522115-1001\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\reg]
[HKEY_USERS\S-1-5-21-789336058-854245398-839522115-1001\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\Count]
‥‥何だかよくわかんないんですけど^^;、 ちょっと見た感じでは Microsoft の暗号系のキー値と、 Explorer のコモンダイアログの値が変更されてる (この変化はたぶん regedit でレジストリの中身を書き出したことに よって生じたものと推測)くらいで、 とくに Apache と関係してそうな項目が勝手にレジストリに追加された、 なんてことはなさそうです。 つまり、たぶんフラッシュメモリに入った Apache を 起動させたというだけでは Windows 環境に何かの重大な影響を与える わけではなさそうだということが言えそうです。
[Table of Contents]

ふろく

  • 日本語のファイル名を用いたファイルの扱いに問題があります。 ファイルにアクセスできないことがあります。 アクセスできない文字が決まっているようですので、 それを避ければよいんだろうな、ということはわかりました。どういう文字がダメかというと、 私が得た感触では、文字列の中にアルファベットの大文字に当たる文字列、たぶん 0x40 から 0x5c のあたり、これが入っているとダメになるような感じです。たとえばSJISの「脱」、これ アルファベットと関係しなさそうに一見見えるんですけど、文字の2バイト目が 0x45 でこれが たぶんApacheからはアルファベットの"E"に見えるんでしょうね。んでたぶん Apacheが内部的に"E"を"e"に書き換えてからファイルにアクセス しに行って、でもそうすると「脱」だったのが「段」に変わってしまうので、 日本語をちゃんと扱うことのできるWindowsからすると「(脱ならあるけど)段なんて ファイルないし」と言われる、そんな感じになってるように思われます。 ‥んー。いまだ良い対処法なし。別のhttpdを探すしかない? AN HTTPD は設定内容を全部レジストリに置くのでPortableには使えないんだよな‥ (レジストリを汚すとかどうとかより、マシン換えるごとにメニューから いちいち手作業で 設定作業をおこなう必要があり、Portableとしては実用的じゃない。まあ *.reg ファイルを 同じディレクトリに置いておけばいいのかもしれないけど、それはちょっとパスしたい) ==>==> [ムリムリと何とかしてみた]
[まえ::持ち運んで使うWWWサーバ 2005 秋]


[次] また謎のメッセージ(XP) 2004/09a