RedHatLinux7でイントラネットでWebサーバーを構築しました(apache)で、CGIを動かしたいのですが、動きません。あるサイトで「httpd.conf の AddHandler cgi-script .cgiを生かせばいい」となっていたのでそうしましたが、まだ動きません。あと何を設定すれば良いのですか?(CGIのパーミッションはちゃんとしています。)httpd.confにCGIの記述が他にもありましたが意味がわからずそのままにしています。

このQ&Aに関連する最新のQ&A

A 回答 (11件中11~11件)

好みのディレクトリにてCGIを実行させたいのであれば、それぞれのディレクトリに対してもCGIの実行許可を与える必要があります。

(基本は httpd.conf に記述します)

例えば、DocumentRoot下層以外の個人ディレクトリWWWルート(例:/home/ユーザ名/public_html)下層でも実行可能にしたいのであれば、

UserDir public_html

の記述と、

<Directory "/home/*/public_html">

Options ExecCGI

</Directory>

の記述がされているかどうかを確認してみてください。

この回答への補足

UserDirがWWWなので<Directory "/home/*/WWW">にしました。他のオプションもついていましたが、 ExecCGIを追加しましたが駄目でした。

補足日時:2001/04/13 17:19
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【apache】httpd.confのAddHandlerについて

掲示板利用させていただきます。
apacheとphpの連携を行う際、httpd.confのAddHandlerを以下のように設定すると、httpでphpを呼び出した際、以下のエラーがでます。

●設定内容
AddHandler cgi-script .cgi .php

●エラー内容
Premature end of script headers

以下のように設定し直すと、正常に利用できるようになります。

●設定内容
AddHandler cgi-script .cgi

phpとcgiはイコールだと思っていたのですが、違うのでしょうか??

どなたかご教示ください。
よろしくお願いします。

Aベストアンサー

> AddHandler cgi-script .cgi .php

こういう設定ができないわけではないですが、あんまりメリットないかと。
PHPの設定法は書籍でもネット上の情報でも既にありすぎるくらい存在しているので、そちらを参考にされてみては。

> phpとcgiはイコールだと思っていたのですが、違うのでしょうか??

話のコンテキスト次第ですが、違う物としといたほうが話しやすいかと。

QRedHatLinux9でCGIがうまく動きません。

RedHatLinux9でApache2x系なのですが、CGIがうまく動きません。

Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: test.cgi
error 500

が出てしまいます。
行った作業としては、

# UserDir public_html の#をはずす
#AddHandler cgi-script .cgi の # を外す.
# <Directory /home/*/public_html>
<略>
# Options MultiViews ....
<略>
# </Directory>
の3カ所の # を外し,Options に ExecCGI を追加.
/usr/sbin/suexec を削除

という、こちらの掲示板に書いてあった作業を行いました。cgiがまず動くのかどうか確かめるために
/var/www/cgi-bin/ にtest.cgi(ほかのサーバで検証したcgiです)を送りましたが見れなかったです。
http://サーバのIP/cgi-bin/test.cgi でよいんですよね、上のcgiを確かめるパス。
これが間違ってたら。。。動かしたいのは一般ユーザの中でcgiが動くようにしたいのです。
パーミッションも問題なかったです。お願いいたします。

RedHatLinux9でApache2x系なのですが、CGIがうまく動きません。

Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: test.cgi
error 500

が出てしまいます。
行った作業としては、

# UserDir public_html の#をはずす
#AddHandler cgi-script .cgi の # を外す.
# <Directory /home/*/public_html>
<略>
# Options MultiViews ....
<略>
# </Directory>
の3カ所の # を外し,Op...続きを読む

Aベストアンサー

> もしかしてこの^M がまずいのでしょうか。

そのとおりです.

Microsoft Windowsか何かの,別のOSで作成したものを,何らかのftpクライアントソフトウェアでサーバーに転送しているのではないかと想像しますが,そのftpクライアントでASCIIモードで転送しても改行コードが適切に変換されないとすれば,それはvsftpdの設定の問題だということです.

で,

> vsftpの設定を変更・反映して、再度test.cgiをアップ
> ロードしたという理解でいいですか?

のように補足要求したわけですが,どうなんですか?
コメントしたことは全部確認していただかないと,手間がかかってしょうがありません.

なお,転送後に改行コードを変換するには,dos2unixという便利なコマンドがあります.
これで変換すると,パーミションが変化するので注意してください.

Qapache のhttpd.conf

FreeBSDでapacheをつかっています。httpd.confがとてもながくとても編集しずらくかんじるのですが、#がついたところや関係ないところを削ってしまうとおかしくなるものなのでしょうか?

Aベストアンサー

ならないです。
「編集したら、動かなくなりました」という場合、それは関係のあるところをいじってしまったという事でしょう。

実行する前にはバックアップをとっておく事を忘れずに。

Qhttpd.confと.htaccessについて

http://www.○○.jp/
とファイル名を指定せずにURLを打ち込んだ時にindex.htmlではなくindex.phpを
見に行くようにしたいので、
apacheのhttpd.confを設定したんですが、うまく.htaccessファイルを見に行ってくれません。

一応、下記のとおりAllowOverrideをAllにして、.htaccessを使用可能な状態にしたハズなのですが
何か足りない部分があるんでしょうか?

*************************************

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

AccessFileName .htaccess

*************************************

ちなみに.htaccessが使用可能でなくても、最初にindex.phpを見に行ってくれればOKなので
下記のようにhttpd.confに設定をしたのですが、やっぱりダメで
無条件でindex.htmlを見に行ってしまいます。

DirectoryIndex index.php index.html index.htm index.shtml index.cgi


何分、初心者なのでつまらない質問かもしれませんが
色々試みたんですが、お手上げ状態です。。

どなたかわかる方いらっしゃったらよろしくお願いいたします。

http://www.○○.jp/
とファイル名を指定せずにURLを打ち込んだ時にindex.htmlではなくindex.phpを
見に行くようにしたいので、
apacheのhttpd.confを設定したんですが、うまく.htaccessファイルを見に行ってくれません。

一応、下記のとおりAllowOverrideをAllにして、.htaccessを使用可能な状態にしたハズなのですが
何か足りない部分があるんでしょうか?

*************************************

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

AccessFileName .htacc...続きを読む

Aベストアンサー

#1ですが。
あ、見えるですね。
.htaccessとhttpd.confがケンカしてるのかな?
どっちか一回止めてみられてはいかがっすか?

Qhttpd.conf の設定について

httpdの設定について、ふたつほどわからない点があり困っております。
どなたかお知恵を拝借させてください。

1)
たとえば、

http://123.456.789.1/~posha/index.html

にアクセスしたいときに、多くのサーバーでは

http://123.456.789.1/~posha

だけでもいけてしまいます。しかし、うちのサーバーでは

http://123.456.789.1/~posha/

と、スラッシュまで入れないとindex.html を補完してくれません。
これを、前者のような指定だけでいけるようにするには、どのように
設定したらよいのでしょうか?


2)
ユーザーのホームディレクトリ上でcgiの起動を許可したとして、
~○○/cgi-bin/□□.cgi
のように、cgi-bin の下にあるものだけを許可する方法を教えてください。
(他のディレクトリにあっても、cgiとして実行されない)

以上、よろしくお願いします。

Aベストアンサー

1)はわからないので他の方に任せるとして、
2)は、
<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI
</Directory>
をhttpd.confに書いておけば良いのでは
ないでしょうか?


このカテゴリの人気Q&Aランキング

おすすめ情報