忍者ブログ
Admin§Write

ぷろぐらみんぐ徒然

文系4大卒がなぜか職業ぷろぐらまになって早10年。 とっくに三十路は過ぎた。 いつまでも派遣プログラマだと死亡フラグが立つのでそれよりきり前に脱出成功。今後の事はまだ良くわからん。 ここのところ愛してやまないバンドはFuzzy Control。 興味を持ってもらえたらうれしいです。 この欄だとタグが使えないみたいなのでURLも。 http://www.fuzzycontrol.jp/

HOME ≫ Entry no.16 「[Apache]CGIをWindowsで実行する時の問題」 ≫ [21] [20] [19] [18] [17] [16] [15] [14] [13] [12] [11]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


[Apache]CGIをWindowsで実行する時の問題

ふへー。

あまり仕事とも関係ないんだけどものすごっく久しぶりにCGI(PERL)を触りまわしたわ。

ぐだぐだなので先に結論を。
Windows版でPerlってんでActive Perlを使ったけどCGIにおけるパスって
#!
行にあるところにperl.exeがあれば良いみたい。
DLLその他はActiveXコンポーネント(とか、.netとか)で実行ファイルのディレクトリからでも呼び出せるみたい。
Windows版Apacheがどういう風に実行ファイルをロードしてるかわからないけど、とりあえずApacheが存在しているドライブルートからの絶対パスを記述すれば動いてくれるっぽい。

実動作環境はDドライブにApacheを乗せてC:\Program Files\配下にActivePerlをインストールして渡されたソースのパスが /usr/local/bin/perl だったのでD:\usr\local\bin\ ディレクトリを作り、perl.exeだけコピーしてあげたら以外に普通に動いた。ライブラリがActiveXなんだろうか?
まぁ、とりあえずWindowsでUnixファイルシステムで動いてるCGIを動かすときの覚書です。

愚痴



「この.cgiファイルのここを修正してほしい」って言われて手伝って見ようとおもったもののWindows環境しかないし実際の動作環境はUNIXだし。
システムコールは使ってないからWindowsでもActivePerlを入れればデバッグができる、と言われて渡されたソースファイル群・・・
ルートディレクトリにReadMe.txtがあって読んでみるとそこの環境の共通テンプレートが始めに書いてありました。

・各実行モジュールは環境に合わせてパスを設定しなおせ。
・sendmail,nkfなどその他の実行モジュールはソースファイル内にベタで書いてあるから各自全パス通してから実運用せよ

要約するとそんな感じだ。

ベンダーごとに微妙に配置ディレクトリが違う事への対処、だそうだ。
つか、これを書いた奴に言いたいのだが、配置ディレクトリが違ったとしても全体でシンボリックリンクのパスを統一すればいいだけじゃねーのか?(UNIX系の場合)
そこの環境は拡張子に合わせてパスを切りなおす個別配置ツールみたいなもの、各サーバに対してパスを手入力してソースがあるディレクトリからごそっと送るツールを使ってるらしいんだがやり方はいくらでもあるんじゃねーの?

とか思いながら、自分のXP端末にソースをコピーしてApacheでパスを切って、ActivePerlをインストールして、とやってみました。
Windows.txtってのがあったが無視。いざ実行してみようとしたらふと気づく。

Windowsの場合、パスはどうなってるんだろう?

ApacheでCGIとして動かす以上(HTTPDを通さないと動作確認できなかい仕組みだったのです・・・)Apacheからperl.exeを呼ばなくてはいけない。
しかし、.pl含めて1000個を超えるperlのファイルで作った人間たちが何がどう呼ばれてるかわからないものと戦うのはイヤだ!
という事で話を振った本人(別の事業所)に質問。
すると帰ってきた答えは
「だって開発用のサーバでしか動かしたこと無いもん」
おいおい。実本番環境は一発勝負かよ。まぁ、ツール的な役割だからそれもありうるのかもな、でも1000を超えるファイル数はねえよな。

というわけで、最初はあたりをつけながらパスをWindowsに書き換えながら、書き換えたあとできっと前述のツールがパスを置換してくれるんだろうな、とか思いながら作業をしてみました。

しかし。

トップ画面を表示するのにライブラリがライブラリを呼び、最低30個は編集しないことがわかった、というか力尽きた。

他になんか方法は無いものか、と・・・・

結論↑へ。
PR

●Thanks Comments

●この記事にコメントする

お名前
タイトル
文字色
E-mail
URL
コメント
絵文字 Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード ※投稿者編集用
秘密? ※チェックすると管理人にしか見えません

●この記事へのトラックバック

TrackbackURL:

≪ [PostgreSQL] 階層問い合わせ |PageTop| 試験受かっちゃった ≫

※ 忍者ブログ ※ [PR]
 ※
Writer 【へっぽこPG】  Design by NUI.T  Powered by NinjaBlog