Top過去ログ目次掲示板

作成日:2004年12月07日 作成:おやじ
掲示板で過去に質問された内容です。

No.4017 CGIが動かないです。


No.4017 投稿時間:2004年12月07日(Tue) 03:18 投稿者名:たーた URL:
タイトル:CGIが動かないです。

本当に何度もスイマセン・・・
CGIがどこのディレクトリでも動いてくれません・・・
設定の基本概要や同じようなエラーで照る人の履歴とかも見て自分の環境はどうか?
など調べたつもりなのですが一向に[Internal Server Error]から、
脱出できません汗

PHP、Perl両方です。
両方インストールも出来ています。
依然使っていた簡易HTTPサーバソフトでは動作していました。
他サイトの情報では改行コードや文字のEncが指摘されていましたが、
それは確認できていません・・・何で確認すれば・・・
Apacheへの組み込みもMoniterのしたのバーで確認済みです。
httpd.confの設定は下記の通りです。
----
DocumentRoot内

<Directory "E:/database/">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>
----
User Dir内

<Directory "E:/database/*/public_html">
AllowOverride Options
Options -Indexes FollowSymLinks ExecCGI Includes
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
----
ScriptAlias内

<Directory "E:/database/">
AllowOverride Options
Options -Indexes FollowSymLinks ExecCGI Includes
Order allow,deny
Allow from all
</Directory>
----
Addhandler行

AddHandler cgi-script .cgi
AddHandler cgi-script .pl
AddHandler cgi-script .php
-----

上記以外の設定は特に変更していません。(多分・・・)

読ませようとしているPHPは設定情報表示関数のPHPinfo()です。
Perlの方は単純にprint~って感じです。

おやじさんの資料を見る限り下のデータを入れてOKっぽいのですが、
LoadModule php4_module C:/PHP/sapi/php4apache2.dll
AddType application/x-httpd-php .php
DirectoryIndex index.html index.htm index.html.var index.php

これでもうまくいきません。
(2行目はどこに入れるのでしょうか?
ここのページにはApacheインストール時の資料の様に場所指定や、
削除、追加、変更などの色分けが無かったので ちょっと不安です汗)

長々すいませんが宜しくお願い致します。


No.4020 投稿時間:2004年12月07日(Tue) 21:55 投稿者名:おやじ URL:http://http://www.aconus.com/~oyaji/
タイトル:一つ一つの設定の意味を理解していかないと・・・。

一つ一つの設定の意味を理解していかないと、この先やっていけませんよ。
logを見る癖をつけましょう。[Internal Server Error]はブラウザ上での表現、本当のエラーはApacheのerror.logを見ないと・・。

> 本当に何度もスイマセン・・・
> CGIがどこのディレクトリでも動いてくれません・・・
> 設定の基本概要や同じようなエラーで照る人の履歴とかも見て自分の環境はどうか?
> など調べたつもりなのですが一向に[Internal Server Error]から、
> 脱出できません汗
>
> PHP、Perl両方です。

PHPとperlの区別がついていないのでは?これらは、全く別物であり、動かす仕組みも違いますよ。
従って、以下が何をもって動かないと言っているかが判断できません。

> 両方インストールも出来ています。
> 依然使っていた簡易HTTPサーバソフトでは動作していました。
> 他サイトの情報では改行コードや文字のEncが指摘されていましたが、
> それは確認できていません・・・何で確認すれば・・・

Windows版ならこれが原因でInternal server errorにはならないので、気にする必要はありません。但し、文字化けは別ですが。

> Apacheへの組み込みもMoniterのしたのバーで確認済みです。
> httpd.confの設定は下記の通りです。
> ----
> DocumentRoot内
>
> <Directory "E:/database/">
> Options All
> AllowOverride All
> Order allow,deny
> Allow from all
> </Directory>
> ----
> User Dir内
>
> <Directory "E:/database/*/public_html">
> AllowOverride Options
> Options -Indexes FollowSymLinks ExecCGI Includes
> # <Limit GET POST OPTIONS PROPFIND>
> # Order allow,deny
> # Allow from all
> # </Limit>
> <LimitExcept GET POST OPTIONS PROPFIND>
> Order deny,allow
> Deny from all
> </LimitExcept>
> </Directory>
> ----
> ScriptAlias内
>
> <Directory "E:/database/">
> AllowOverride Options
> Options -Indexes FollowSymLinks ExecCGI Includes
> Order allow,deny
> Allow from all
> </Directory>
> ----
> Addhandler行
>
> AddHandler cgi-script .cgi
> AddHandler cgi-script .pl
> AddHandler cgi-script .php

ここの最後は、PHPとperl(CGI)の誤解に基づく設定と思いますが、どこかにこういう設定が書いてありましたか?
この設定をすると、*.phpというファイルをCGIとして実行しようとするので、当然、*.phpをコールするとCGIではないので、server errorになります。この行は削除してください。それで、PHP関数は表示できるはずです。

> 上記以外の設定は特に変更していません。(多分・・・)

多分なんてことはやめましょう。これじゃ、自信を持って動かせないじゃないですか?
自分で変更しているのですから、しっかり意識しましょう。

> 読ませようとしているPHPは設定情報表示関数のPHPinfo()です。
> Perlの方は単純にprint~って感じです。
>
> おやじさんの資料を見る限り下のデータを入れてOKっぽいのですが、
> LoadModule php4_module C:/PHP/sapi/php4apache2.dll
> AddType application/x-httpd-php .php
> DirectoryIndex index.html index.htm index.html.var index.php

上の2行はModuleをLoadしているところの最後にでも追記すればいいのでは?
最後の一行は、自分の環境に合わせて追加してください。(と言って意味が通じるかがあるので、ここでは、ファイル名なしでアクセスがあった場合、即ち、/~oyaji/のようなアクセスの場合に、Apache側で補完するファイル名を指定します。ディレクトリアクセスの場合、ここで設定されているファイルがそのディレクトリにないか左側から順に探して、存在すればそれを表示し、なければOptionsの指定でIndexesがあればindex表示し、Indexesがなければ404エラーになります。)

PHPがserver errorになるのは、上記で解決すると思いますが、perlはerror.logしだいですかね。


No.4022 投稿時間:2004年12月07日(Tue) 23:30 投稿者名:たーた URL:
タイトル:Re: 一つ一つの設定の意味を理解していかないと・・・。

おやじさん
お世話になります。たーたです。

> 一つ一つの設定の意味を理解していかないと、この先やっていけませんよ。
> logを見る癖をつけましょう。[Internal Server Error]はブラウザ上での表現、本当のエラーはApacheのerror.logを見ないと・・。
申し訳ないです・・・今後よく見るようにします。

> > PHPとperlの区別がついていないのでは?これらは、全く別物であり、動かす仕組みも違いますよ。
> 従って、以下が何をもって動かないと言っているかが判断できません。
PHPとPerlの区別は基礎程度は把握しているつもりでしたが全然っぽいですね汗。。

> > > 両方インストールも出来ています。
↑これはまんまの意味でPCにインストールされていると言うことです。
> > 依然使っていた簡易HTTPサーバソフトでは動作していました。
↑ご存知かも知れませんが、AnHttpdというソフトです。
 このソフトでサーバーを立ち上げ自作BBSなどを作っていたという意味です。
 
> > Windows版ならこれが原因でInternal server errorにはならないので、気にする必要はありません。
そうですか、ホッとしました。ありがとうございます。

> > ここの最後は、PHPとperl(CGI)の誤解に基づく設定と思いますが、どこかにこういう設定が書いてありましたか?
> この設定をすると、*.phpというファイルをCGIとして実行しようとするので、当然、*.phpをコールするとCGIではないので、server errorになります。この行は削除してください。それで、PHP関数は表示できるはずです。

> > 上の2行はModuleをLoadしているところの最後にでも追記すればいいのでは?
> > AddHandler cgi-script .php
↑これはボクの勝手な判断の元やらかしました・・・
 この2つを直したところPHPは正常に動いてくれました!
 ありがとうございます。
 PHPはCGIではなかったんですね・・・
 考えが浅はかでした今後気を引き締め再度1から出直します。
 m(_ _)m

> > > 上記以外の設定は特に変更していません。(多分・・・)
> > 多分なんてことはやめましょう。これじゃ、自信を持って動かせないじゃないですか?
> 自分で変更しているのですから、しっかり意識しましょう。
すいません・・・・。

>perlはerror.logしだいですかね。
Perlは実際書いたことが少ないので一応動作確認したかった次第です。
これもちゃんと勉強してから導入したいと思います。

本当にくだらないまた説明不足な質問で申し訳ありませんでした。
今後も参考にさせて頂きますので宜しくお願い致します



掲示板▲頁先頭