プロが教える店舗&オフィスのセキュリティ対策術

添付つき送信フォームを、test.htmlからsend.phpを
<form method="post" action="test/send.php">
で定義して実験成功しました。

このphp拡張子をcgiに変更して
<form method="post" action="test/send.cgi">
ファイル名も変更しましたが、エラーになります。

ルートディレクトリ - test.html
          - testフォルダ - send.cgi

Apacheのhttpd.confの設定は下記サイトの
「Windows XPでPHPを動作させてみよう!」のCGIの設定です。
http://aki.adam.ne.jp/index.php

拡張子cgiで実行する手段を宜しくお願い致します。

A 回答 (8件)

#6です。


すみません
駄目でしたね。

AddTypeの作戦でOKだと思いますが、
cgiの定義がcgi-scriptとかぶって、
エラーになっているのだと思います。

PerlのCGI等は、動かなくなる思いますが、
httpd.confのcgi関係の部分をコメントアウトしたらどうでしょう?

AddType ■■■ cgi
AddHandler ■■■ cgi
LoadModule cgi_module modules/mod_cgi.so(?)
AddModule mod_cgi.c(?)

といったところだと思います。

たぶん、PerlのCGIとの共存(同一拡張子)は、
無理だと思います。
プロセス起動の普通のCGIを使えば、原理的にできるのですが、
ActivePerlなどを見る限り、Windowsでは、
最初の行のスクリプトエンジン(?)の起動設定が無視されるような気がします。
間違っていたらすみません。

この回答への補足

下記2行はコメントアウトいたしました。
AddType ■■■ cgi
AddHandler ■■■ cgi

下記2行はconfにありません。
LoadModule cgi_module modules/mod_cgi.so(?)
AddModule mod_cgi.c(?)

実行結果はファイルのDL窓が出現しました。

>たぶん、PerlのCGIとの共存(同一拡張子)は、
>無理だと思います。

ご指摘の通り、Perlもインストールしておりますが、
何故か動きませんので、設定が違うみたいです。
PHPを優先に固めようとしております、が、「PerlのCGIとの共存は無理」ですか・・・ ><

>最初の行のスクリプトエンジン(?)の起動設定が無視されるような気がします。

ご指摘ありがとうございます^^
よーく考えれば、ですよね。
UNIXでの話しだって事に気が付きました。

もう少し調べて実験してみますので、今回は締め切らせていただきます。
またアドバイスを宜しくお願い致します。

補足日時:2004/07/07 23:42
    • good
    • 0

どうやら、PHPをCGIとして動作させるのではなく、


単に拡張子を.phpじゃなくて、.cgiで動かしたいだけのようですね?

拡張子の偽装(?)は、Apacheのhttpd.confに
AddType application/x-httpd-php4 .php .cgi
又は
AddType application/x-httpd-php .php .cgi
と記載しますです。
自分の好き勝手な拡張子をつけたりしてもかまいません
AddType application/x-httpd-php .moe .aaa .cgi .php
とかだと、
index.moe
index.aaa
index.cgi
index.php
の順で先に記載した拡張子を優先して動いてくれます


あと、当然ですが、Apacheの再起動は必要ですよ


>httpd.confに追記しましたがエラーでした。
>cgiファイルのヘッドに下記のパスを入れてあるのですがパス指定がミスってるのでしょうか?

他に設定する必要は全くないです

この回答への補足

ご対応ありがとうございます。

拡張子の優先順位等の詳細説明は助かります^^
残念ながらApacheの再起動後でも、だめでした。

補足日時:2004/07/07 23:27
    • good
    • 0

AddType application/x-httpd-php4 .php .cgi



というような感じで、
cgiにMIMEタイプを関連付ける必要があります。

この回答への補足

ご対応ありがとうございました。

AddType application/x-httpd-php4 .php .cgi

httpd.confに追記しましたがエラーでした。
cgiファイルのヘッドに下記のパスを入れてあるのですがパス指定がミスってるのでしょうか?

php.exeの場所指定
#!C:/Apache/php/cli/php

補足日時:2004/07/01 08:50
    • good
    • 0

>「aki-web」サイトさんのまんまです


そのサイトの内容は拡張子*.phpのまま,CGI動作をさせるための設定方法です。

*.cgiでは動作しませんよ。

この回答への補足

ご対応ありがとうございました。

補足日時:2004/06/26 13:21
    • good
    • 0

ちなみにですが、拡張子cgiの実行をPHPで行うように設定してあるのでしょうか?



そもそもCGI版とSAPI版の違いを考えていただいた方がいいと思いますが、CGI版だからといって、拡張子cgiが無条件で実行されるわけではありません。

そこら辺はどう設定されていますか?
↑httpd.confの820行目付近、ってやつ

この回答への補足

「aki-web」サイトさんのまんまです^^

AddType application/x-httpd-php4 .php
Action application/x-httpd-php4 "/php/php.exe"

PHPはC:/Apache/php/にインストールしました。

補足日時:2004/06/22 13:41
    • good
    • 0

#1再投稿です。



PHPのインストール(CGI)をご覧になられてテストをされようとしているのでですよね?
再度下記のURLをご覧になって確認願います。


※済みません。XP上(ローカル)で実行…と言う事でしたね。見落としてました。<パーミッション

参考URL:http://aki.adam.ne.jp/php/winxp/winxp02_1.html

この回答への補足

PHPのインストール設定は各サイトの説明でも出来なくて困っておりましたが、やっと「aki-web」サイトさんのおかげで成功致しました。
現在は拡張子PHPでは問題なく稼動しております。
サイトでの設定内容ではPHPのインストール先定義だけのようです・・・たぶん

perlでは確かcgiが稼動するフォルダの定義も必要みたいですが(perl未経験者です^^;)、PHPのCGI版でもそのような定義が必要なのか、或いはロジック内での呼び出し方法があるのでしょうか?

補足日時:2004/06/22 10:58
    • good
    • 0

phpではフォームから送られてきたデータをデコードの処理をしなくても自動的にしくれますが、CGI(perl)は面倒ですがデコードの

記述をしないと送られてきた変数を認識することができなかったと思いますよ

この回答への補足

ご対応ありがとうございます。

perlではなくPHPのCGI版として使用したいのです。
(;^_^A アセアセ・・・

補足日時:2004/06/22 10:19
    • good
    • 0

パーミッションの設定は?

この回答への補足

ご対応ありがとうございます。

パーミッション設定はUNIXでのお話ですか?
winXPでもするのでしょうか?
PHP初心者にて変な質問ですみません。m(_ _;)m

補足日時:2004/06/22 10:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!