• 締切済み

サイト構築について

現在サイトを作ろうと思っているのですがなかなかうまくいきません。 行おうとしているのは、あるドメインを持ってうちのサーバーにアクセスしたら必ずある一つのプログラム(index.cgi)のようなものを通り、それぞれパスにあったものをrequireで.plファイルを呼び込み、テンプレートを表示するというものです。 簡単に言うと下記のような感じです。 1、アクセス→2、index.cgi→3、passに応じたplファイルを参照→4、plで指定されたテンプレートを開く 現在2までは可能なのですが、呼び込む段階で呼び込めて折らず、何が原因かわかりません。 非常に困っています。 どなたかわかる方がいらっしゃいましたご指導鞭撻のほどよろしくお願いします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>documentrootはわかるんですが、server_pathはどこで設定するんでしょうか?  環境変数{'SCRIPT_FILENAME'}に、使用しているCGIの、コンピューター上のパスがあるはずです。  例のものだと /cgi-bin/ENV_FORM.cgi です。 作成されているCGIのPATHは、これで分かりますよね。 /でsplitして、配列に入れればよいです。  それから、同じ数だけ引けば、分かる。  対象のplファイルのある場所は、telnetを使うか、telnet.cgi(探してください。)を使ってfindで探せば、PATHは分かるはずです。 / |-- home/ |   |-- index.cgi |   | |-- user |   |-- pl/ |   |   |-- abc/ |   |   |   |--cde.pl  もうすこし具体的なことがわかれば・・・

keeeeeeeen
質問者

補足

ご丁寧な回答ありがとうございます。 私がやろうとしているのは、上の図で言うとindex.cgiに強制的に全てのアクセスを集め、plディレクトリでパスに対応するプログラムを実行し、homeディレクトリのさらに下のディレクトリのテンプレートを表示するようにしたいということです。 プログラムファイルをhomeディレクトリ内に置くとうまく起動します。 warnでご指摘頂いた環境変数を出すとともにindex.cgiまでのルートがプリントされます。引数は渡していないのでquery_stringはありません。 こんな感じなのですが…。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

Document rootとserver pathが異なるのでは? 簡単なスクリプト書いて、PATH_INFOやQUERY_STINGSを書き出してみたら? サーバーにて、index file nmaeにindex.cgiが設定してあると、 http://domain.com/hoge/abc/def が要求されると hoge/abc/def がPATH_INFOに それと、 SCRIPT_FILE_NAMEやSCRIPT_NAME から、読み込みたいファイルのサーバー上のパスを計算して・・(HTTPサーバーのPATHとは違う)・・となるはず Enviroment Variable and FORM,COOKIE http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/keeeeeeeen/yourPage?GoogLuk 参照!!

keeeeeeeen
質問者

補足

ORUKA1951さん回答ありがとうございます。 ディレクトリを同じところに移したらできるんですけど、異なるディレクトリで出来ないんです。 PATH_INFOはwarnで確認したら問題なく入っています。 documentrootはわかるんですが、server_pathはどこで設定するんでしょうか?