• 締切済み

PHP+SSI

「index.php?a=100」のようなページをSSI(ssi.shtml) から実行したいと考えています。 ところがssi.shtml内で <!--#exec cmd="index.php 100"--> とし index.php内で引数渡しの設定として「$argv[0]」として ますが、ssi.shtmlを実行しても実行結果を返さずブランクに なってしまいます。index.phpのパーミッションも実行可能に 設定しているのですが…。  上記以外の方法でも結構ですので、SSIで引数付きのPHPを 実行する方法をご存じの方がいらっしゃいましたら、教えて ください。 Apache 1.3.31+PHP 4.3.1で動いています。もちろんSSIで #execがNGなんてオチも有りません。 なお、下記URLによればSSIからの引数渡し自体はCGIだと可能の ようですが…。 http://tohoho.wakusei.ne.jp/wwwssi.htm#Exec

  • MO_
  • お礼率60% (3/5)
  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

SSIはそんなに詳しくないので SSIからPHPを動かせるかどうかは知りませんが <!--#exec cmd="index.php?a=100"--> としてもダメですかね? SSIからPHPを動かす必要性そのものにちょっと疑問を感じますけど・・・ 答えになってなくてすみません

関連するQ&A

  • Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 AddHandler cgi-script .cgi .plに変更。 exec cmdをHTMLファイルに埋め込みました。 <!--#exec cmd="/PROGRA~1/APACHE~1/Apache2.2/cgi-bin/counter.pl counter"--> インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ   AddType text/html .shtml と   AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。エラーログには ”指定されたファイルが見つかりません。 : don't know how to spawn cmd child process: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/counter.shtml” と記録されていました。 どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくおねがいします。

    • 締切済み
    • CGI
  • Apach2でSSIコマンドが実行出来ないのですが教えてください

    環境は、自宅サーバ、WindouwsXP、Apache/2.0.53 (Win32) PHP/4.3.10 mod_jk2/2.0.2です。 [httpd.conf SSI関連設定] AddType application/x-server-parsed .shtml AddHandler server-parsed .shtml AddHandler cgi-script .cgi .pl .bat [SHTMLファイル] <HTML><HEAD><TITLE>counttest</TITLE></HEAD><BODY> あなたは<!--#exec cmd="countlog/count.pl" -->人目のお客様です。 </BODY></HTML> [count.plファイル] #!c:/perl/bin/perl $file="C:/ProgramFiles/Apachegroup/Apache2/htdocs /nandemokan/countlog/numfile"; open(FILE, "<$file"); #人数ファイルを読んで 以下省略 http://localhost/nandemokan/index.shtml [SHTML実行結果] あなたは人目のお客様です。 http://localhost/nandemokan/countlog/count.pl [直接SSIを指定した結果] Internal Server Error なお、コマンドプロンプトからcount.plを実行すると 正常にカウンタが出力されます。 ANHTTPDではうまくいったのですが、Apache2で出来なくて困っています。よろしくお願いします。

    • ベストアンサー
    • CGI
  • Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 exec cmdをHTMLファイルに埋め込みました。インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ 念のため Options Indexes FollowSymlinks の後にもMultiviews Includes をつけ   AddType text/html .shtml と AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくお願いします。

  • SSIでスクリプトが実行できない

    SSIでHDDの温度を表示するスクリプトを実行しようとしましたが、上手くいきません。SSI自体は正常に動作しています。(試しに、他のスクリプトを実行させたら、正常に作動しました。) 問題は、コマンドラインからスクリプトを実行させると正しく動作するのに、作成したshtmlを実行すると動作しないのです。 以下に、正しく表示されないスクリプトとshtml、正しく動作したスクリプトとshtmlを表示します。 1.正しく表示されないスクリプト、shtml(HDD温度表示) [スクリプト] #!/bin/sh hddtemp /dev/hda | awk '{print $4}' ※コマンドラインからの実行結果 39 [shtml] <html> <head><title>HDDTEMP実験</title></head> <body> 現在のHDD温度<br> <!--#exec cmd="./hddtemp.sh"--> </body> </html> ※実行結果 現在のHDD温度 2.正常に動作したスクリプト、shtml [スクリプト] #!/bin/bash /bin/date ※コマンドラインからの実行結果 Sun May 22 18:11:21 JST 2005 [shtml] <html> <head><title>SSI使用例</title></head> <body> 現在時刻を表示します<br> <!--#exec cmd="./date.sh"--> </body> </html> ※実行結果 現在時刻を表示します Sun May 22 18:09:56 JST 2005 Apacheは1.3.33です。 どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • SSIを使ってCGIを呼び起こしたいのですが

    index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。

    • ベストアンサー
    • CGI
  • Apache, httpd.conf設定 - .htmlでphp/ssi共に使えるようにするには?

    いつもありがとうございます。 Apacheの設定に詳しい方に質問です。 拡張子.htmlでphp使えるようにhttpd.confまたは.htaccessに記述するヤツありますよね。あのやり方は知ってるのですが、いままでうちでそれをやると.htmlファイルがダウンロードされてしまうという現象があったのですが、今日ようやくその原因がわかりました。ssiの記述とカブってるとダメなのですね。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .html と書くとうまく動きません。ssiは動くけど、phpはダメです。 それでその回避策として以下のように書くというのを教わりました。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .htm すると、 .html -> ssi .htm -> php という風に確かに動くんですが、これではちょっと困る。 既にサーバ内のあちこちで.htmlにてssiを多用してしまっているのです。 そこで質問なのですが、ssi&php共に、.htmlで動く方法はあるんでしょうか? 環境:Fedore Core 4 + Apache2.0.54 + PHP Version 5.0.4 よろしくお願いします。

  • .htaccessによる制御 phpとssi

    某ポータルサイトを運営しておりまして サイトはxhtmlで作っています。(拡張子はhtml) そこではssiを使用していて、一番トップのディレクトリ(index.htmlがあるところ)には .htaccess ------------------------------------------------------------------------------------- Options +Includes AddType text/html html .shtml .html .htm .xhtml AddHandler server-parsed html .shtml .html .htm .xhtml ------------------------------------------------------------------------------------- を設置しております。 これで問題なくhtmlの拡張子で表示しております。 次に 新しくサイトリニューアルしようとphpを使いサイトを作っていまして、 そのページ(xhtmlで作って拡張子はhtml)が入ったフォルダをアップしまして トップより下の階層(そのリニューアルページが入ったフォルダ)に.htaccessを ------------------------------------------------------------------------------------- AddType application/x-httpd-php .php .html .xhtml .shtml ------------------------------------------------------------------------------------- と書いたものをあげました。 ところがページを見るとダウンロードになってしまい、ページを読み込むことができません。 .htaccessを削除するとページは表示されますが、phpが有効になっていません。 試しにトップの階層の ssiを有効にする.htaccessを消して phpを有効にする.htaccessだけ残すと 問題なく表示されます。 上の階層のssiを有効にする.htaccessがある限りページはダウンロードになってしまいます。 .htaccessは下の階層ほど優先されるはずが、 「優先」というだけで「上の階層のは読まない」わけではないんですよね? おそらく問題は トップの階層にある、ssiを有効にする.htaccessだと思いますが なんとか旧ページのssiを有効にしつつ、新ページのphpを有効にする両方有効にする手段はないのでしょうか? 疑問(1)phpとssiは同時に動かない? 疑問(2).htaccessで下の階層だけ読んで上の階層の.htaccessは読ませない設定はあります? 疑問(3)下の階層の.htaccess(phpを有効にするhtaccess)の方で上のssiの設定を打ち消す書き方はあります? 参考までに階層はこうなっています index.html hoge.html .htaccess(ssiを有効にする設定) new ├.htaccess(phpを有効にする設定) ├salon1 |  ├index.html(問題のページ1) |  ├imgフォルダ |     ├aaa.jpg ├salon2 |  ├index.html(問題のページ2) |  ├imgフォルダ |     ├aaa.jpg ・ ・ ・ ちなみに問題のページのディレクトリに直接htaccessを置いてもダメでした。 お願いします

    • ベストアンサー
    • PHP
  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • Apache 2.0 で SSI cmdが動かない

    同じ質問で http://okwave.jp/qa/q451501.html これと同じですが、未だ解決していないようなので。先に上記を見て下さい。 SSI の機能は ファイルアクセス表示などのコマンドが実行できているので、動作しています。 <!--#exec cmd="test.cgi" --> でエラーログが下記です。 execution failure for parameter "cmd" to tag exec in file.......shtml cmdの実効に失敗した。 test.cgi はDOSのbat で動作、及びHTMLのhead等のタグをプリントで入れれば 正常動作しています。 先人の質問でやり取りは一通りやっています。LoadModule等も #exec cmd がどうしても機能しないと思えますが 宜しく御願いします。

    • 締切済み
    • CGI
  • SSI で引数をCGIに渡したいのですが、

    SSI で引数をCGIに渡したいのですが、 HTMLの記述を <h1>1行目<!--#exec cmd="./emoji.cgi 0"-->絵文字1行目分。</h1> <h1>2行目<!--#exec cmd="./emoji.cgi? 1"-->絵文字2行目分。</h1> <h1>3行目<!--#exec cmd="./emoji.cgi?2"-->絵文字3行目分。</h1> <h1>4行目<!--#include virtual="./emoji.cgi 3"-->絵文字4行目分。</h1> <h1>5行目<!--#include virtual="test.cgi? 4"-->絵文字5行目分。</h1> <h1>6行目<!--#include virtual="test.cgi?5"-->絵文字6行目分。</h1> として、CGI で $ARGV[0] で使いたいのですが、出力するとSSI部分に [an error occurred while processing this directive] と、ERROEが出力されて、上手く行きません。 ネットで調べてみるとApache バージョンのによってバグが有る様な内容も有りますし、 ASJホスティングサービスのページを見ると ------------------------------------------------------------------------------------------- コマンドライン引数を渡すSSI のご利用はいただけません。 こちらは、suExec ではなくApache の一般的なセキュリティ仕様となっております。 ------------------------------------------------------------------------------------------- と書いてあったりします。サーバーの設定の問題なのでしょうか? サーバーは PC DEPOT系のネットプラッツ、専用サーバー(2万2000円/月・結構無理して払っています)です。 中は、Apache バージョン 1.3.12 ・レッドハット6.2、と聞きました。 ネットプラッツの電話サーポートの方に訪ねたのですが、 「使えるか、使えないか、そこまでのサポートは出来ない」との事でした。 サポートの方はとても親切なのですが、肝心の事が「サポートできません」って事なので サーポートというよりカウンセリング状態で・・・問題が解決できません。 サーバーの設定方法 または 記述方法が有りましたら教えて頂けないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • CGI

専門家に質問してみよう