cgi-binでPHP動作しない

このQ&Aのポイント
  • VineLinux3.1 + Apache1.3 + PHP4の環境でcgi-bin内のPHPスクリプトが動作しない
  • ファイルのコピー先を変更すると正常に動作
  • 設定に問題がある可能性
回答を見る
  • ベストアンサー

cgi-binでPHP動作しない

過去に何度か出ている質問ですが、 VineLinux3.1 + Apache1.3 + PHP4の環境でhttpサーバを構築したいのですが、 /home/httpd/cgi-bin/test.php  (中には <?php phpinfo(); ?> を記述) のスクリプトがブラウザより動作しません。 同ファイルを /home/httpd/html/test.php にコピー しアクセスすると正常に動作します。 どこか設定がおかしいのでしょうか? ■errot-log [Sun Jan 8 13:44:57 2006] [error] (8)Exec format error: exec of /home/httpd/cgi-bin/test.php failed [Sun Jan 8 13:44:57 2006] [error] [client 192.168.0.5] Premature end of script headers: /home/httpd/cgi-bin/test.php ■httpd.conf抜粋 <IfDefine HAVE_PHP4> LoadModule php4_module modules/libphp4.so </IfDefine> ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/ AddDefaultCharset off <IfModule mod_php4.c> AddType application/x-httpd-php .php4 .php3 .phtml .php AddType application/x-httpd-php-source .phps </IfModule>

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

PHPはCGIじゃないですよ。 cgi-binから「実行形式」で呼びだす訳じゃないし むずかしいでしょう。 /home/httpd/cgi-bin/test.htmだって よびだせないですよね?

BoogieMan
質問者

お礼

ありがとうございました。 こちらの勘違いのようでした。

関連するQ&A

  • PHPをCGIとして実行する方法

    PHPをCGIとして実行する方法 現在PHP(モジュール版)にて開発を行っているのですが、 仕様上.htaccessを使用してcgi-binディレクトリ内にあるphpファイルをCGIとして 実行しなければならなくなりました。 下記の記述方法だと500エラーが発生してしまい、大変困っています。 <Directory "/usr/~(任意のcgi-binディレクトリのフルパス)~/cgi-bin"> AddType application/x-httpd-cgi .php </Directory> 因みに.htaccessはcgi-binディレクトリの1階層上に設置しています。 単に「AddType application/x-httpd-cgi .php」を記述する分には誤作動は起さないのですが、出来れば指定のディレクトリ内だけで指定したいと考えています。 もし思い当たる点がありましたら、ご教授お願い致します。 下記に環境を記しておきます。 【環境情報】 OS:FreeBSD 6.2(レンタルサーバ) PHP:5.2.4

    • ベストアンサー
    • PHP
  • UserDirでCGI版PHPを動作させたい

    お世話になります。 最終的にはsuexecでの動作を目指しておりますが、その前段として UserDirでのCGI版PHPの動作をさせようとしています。 DocumentRoot配下でのCGI版PHPの動作には以下のような設定で成功しました。 [httpd.conf] Action php56-cgi /cgi-bin/php-5.6.27 <Directory "/usr/local/apache2/htdocs/php5test"> Options FollowSymLinks Includes ExecCGI AddHandler php56-cgi .php .html Require all granted </Directory> <IfModule alias_module> : ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" : </IfModule> # ls -l /usr/local/apache2/cgi-bin/php-5.6.27 lrwxrwxrwx 1 root root 22 11月 8 14:58 php-5.6.27 -> /usr/local/bin/php-cgi* /usr/local/apache2/htdocs/php5test/に置いた whoami.php の内容 <?php echo 'Current script owner: ' . get_current_user() . "<br><br>\n"; $current_user = trim(shell_exec('whoami')); echo 'Current user: ' . $current_user . "<br><br>\n"; $c_time = date("Y年n月j日(D) Ah:i"); print("Current time: $c_time<br>\n") ?> http://xx.xx.xx.xx/php5test/whoami.php Current script owner: root Current user: apache Current time: 2016年11月10日... と表示されます。 -------------------------------------------------------------------- ここから本題です。 $ mkdir /home/hoge/php56 $ cd /home/hoge/php56 $ ln -s /usr/local/bin/php-cgi php-5.6.27 $ ls -l lrwxrwxrwx 1 hoge hoge 22 11月 10 11:47 php-5.6.27 -> /usr/local/bin/php-cgi* $ ls -l /home drwxrwxr-x 30 hoge hoge 4096 11月 10 11:43 hoge/ $ ls -l /home/hoge drwxr-xr-x 2 hoge hoge 4096 11月 10 11:47 php56/ drwxr-xr-x 2 hoge hoge 4096 11月 10 10:41 public_html/ $ ls -l /home/hoge/public_html -rw-r--r-- 1 hoge hoge 331 11月 10 10:41 whoami.php [httpd.conf] <IfModule alias_module>内に ScriptAlias /hoge-php/ "/home/hoge/php56" を追加しました。 UserDir public_html Action hoge-php56 /hoge-php/php-5.6.27 <Directory "/home/hoge/public_html"> Options Indexes FollowSymLinks ExecCGI AddHandler hoge-php56 .php .html Require all granted </Directory> ブラウザで閲覧すると http://xx.xx.xx.xx/~hoge/whoami.php forbidden You don't have permision to access /hoge-php/php-5.6.27/~hoge/whoami.php となります。 ScriptAlias, Action がよく理解できていませんので ご指導よろしくお願いします。

    • 締切済み
    • PHP
  • PHPが動作できてないと思われるのです><

    [環境] Fedora Core6 Apache/2.2.4 PHP/5.1.6 SELinuxは無効にしてます。 本を読みながらインストールしていた まったくの初心者です;; [現象] index.htmlというテスト的なページは表示できたのですが、 test.php <?php phpinfo(); ?> のみ記述 を表示しようとすると、 サーバが見つかりません。と表示されました。 おこなったことは、 /etc/httpd/conf/httpd.conf に AddType application/x-httpd-php .php と追記して service httpd stop service httpd start とやりました。 LoadModule php5_module modules/libphp5.so を追記していた場合 [warn]module php5_module is already loaded, skipping と出たのでlibphp5.soの追記は止めました。 過去ログに それらしいのがあったのですが、 http://oshiete1.goo.ne.jp/qa229489.html 過去ログ内の ./configure --with-apxs=/usr/sbin/apxs のやり方がよく分からなくて試せなかったのです。 # ←こういうのがでているところでそのまま入力したのですが、 何かやり方が違うのでしょうか? あと、色々調べていた中で再コンパイルをしないといけないともかいてあったのですが、 それもやり方が分かりませんでした>< 何かこれかな?と思われるような個所がありましたら ご指摘のほどぜひともお願い致します。

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • CGIで動的生成したページでPHPを使いたい

    初めて質問します。 現在、自社のWebサイトのリニューアルを任されています。 ヘッダー、フッター、ナビゲーションを表示させる際、利便性を考えてPHPでそれらを動的生成するようにしています。 PHPは、Webサイトのルートにある.htaccessに『AddType application/x-httpd-php .html』を追記して、HTML上からincludeで呼び出しています。 このサイトの問合わせフォームが元々CGIで作られているのですが、このCGIから生成されたページのみ、インクルードされたPHPが作動せず、ソースにPHPのコードがそのまま表示されます。 .htaccessのAddTypeに .cgi と付けてもダメで、CGI本体をcgi-binからフォームと同階層のディレクトリに移してもダメでした。 CGIとPHPは同時使用できないのでしょうか。

    • ベストアンサー
    • CGI
  • htmlファイルにPHPとCGIを埋め込む

    ロリポップサーバーをレンタルしてサイトを開設しています。 現在.htaccessファイルに下記のコードを記述して.htmlファイルにPHPのコードを埋め込んで実行させています。 「AddType application/x-httpd-php .htm .html」 これは問題なく動いているのですが、別に.htmlファイルにCGIのコードを記述し動作させたいと思っているのですが、これは可能でしょうか? .htmlファイルのまま、PHPとCGIのコードを一緒に記述し動作させたいです。 .htaccessで上記のコードの下に「AddType application/x-httpd-cgi .htm .html」というコードを記述してみましたが、動作はしませんでした。 埋め込みは下記のようにしました。 「<!--#include file="cgiファイルまでのパス" -->」 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • 締切済み
    • CGI
  • .htaccessの中身が php5 CGI版で動かない

    拡張子htmlファイルをphpファイルと認識させる為に、 .htaccessで AddType application/x-httpd-php .html AddHandler x-httpd-php .html と書いて対応していました。 今まではサーバーのphpのバージョンがPHP4(DSO版)だったのですが、昨日サーバーのバージョンがPHP5(CGI版)になってから、上記のような.htaccessが機能しなくなってしまいました。 order deny,allow deny from all ↑ これはちゃんと動くので、.htaccess自体が拒否されてるみたいなことはないと思います。 AddType application/x-httpd-php .html AddHandler x-httpd-php .html ↑ このプログラムがPHP5 CGI版にて意図した動作とならないのです。 何か分かる方いらっしゃいましたら、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 1行目の#! "C:\xampp\php\php-cgi.exe"について

    XAMPP for windowsをXPで利用しています。 phpファイルの1行目に、「#! "C:\xampp\php\php-cgi.exe"」を記述しないとphpが実行されません。 1行目の「#! "C:\xampp\php\php-cgi.exe"」を記述せず、「<?php~ ?>」の記述でファイルを呼び出すと、「Server error! サーバ内部で障害が発生し、 リクエストに応えることができませんでした。 サーバが過負荷であるか、 CGI スクリプトにエラーがあります。」の表示になります。 apacheのconfに、「AddType application/x-httpd-php .php」を追記してみましたが、結果は同じでした。 「C:\xampp\php」でpathを通しています。 超初級な質問かと思いますが、お助けください。

    • 締切済み
    • PHP
  • /cgi-bin/のファイル読み出し

    WindowsXPでApacheをlocalhostで使用しています。 httpd.confを以下のように設定してcgiは問題なく作動していますが、/cgi-bin/に置いた画像やhtmlが読み出せません (すなわちhttp://localhost/cgi-bin/にアクセス出来ず、Forbiddenのエラーが出ます) 今は仕方なく、cgiで使用するファイルや画像をDocumentRoot配下に置いていますが、/cgi-bin/配下のファイルを読み出すhttpd.confの設定を教えて下さい。 DocumentRoot "F:/" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "F:/"> AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_alias.c> ScriptAlias /cgi-bin/ "F:/cgi-bin/" <Directory "F:/cgi-bin"> AllowOverride None Options ExecCGI MultiViews Order allow,deny Allow from all </Directory> </IfModule>

  • PHPのコードがそのまま表示されてしまう。

    同じようなメール内容ですみません。 過去のものを見て回りましたが、うまく理解できませんでした。 標記のとおりPHPのプログラムがそのままブラウザに表示されてしまうので困っています。 まずファイル構造はこのようになっています。 httpdocs | ---------index.php   |----.htaccess これだけです。この「index.php」にアクセスすると、携帯キャリア別にページを移動させるプログラムです。 ほかのサーバーでテストしたら稼動しましたでのプログラムには問題ありません。 次に.htaccessの設定は下記のようになっています。 Options +ExecCGI AddHandler cgi-script .cgi AddType application/x-httpd-cgi .cgi AddType application/x-httpd-php .php こちらの質問を試してみましたが、 apacheの設定ファイル(httpd.conf)とPHPの設定ファイル(php.ini)の設定は、私が管理者でないので操作することはできませんでした。 http://oshiete1.goo.ne.jp/qa2855291.html どなたか宜しくお願い致します。

    • 締切済み
    • PHP