No.1ベストアンサー
- 回答日時:
デフォルトの設定が分からないので確認点だけ、、、
・ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
・AddHandler cgi-script .cgi
・<Directory [ScriptAliasで指定したディレクトリ]>
Options ExecCGI
httpd.confの設定は以上です。
あとは、CGIファイルに「実行属性(x)」パーミッション
が付いているか確認してください。
P.S.
どのようなエラーメッセージが出ているのかが
分かれば、およその見当がつくのですが、、、
この回答への補足
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"の "/usr/local/apache/cgi-bin/"は何を設定するのですか?(初心者なので申し訳ありません。)apacheのところがwwwになっていました。それでOptions ExecCGI
は追加しました。でも動きません。CGIファイルに「実行属性(x)」パーミッションはついています。
NINJA104さんの回答との違いは何でしょうか?どちらもやりましたが・・まだ駄目でした。
No.11
- 回答日時:
むずかしいですねぇ...
となると、該当のCGIスクリプトの中でinclude又はsystem呼出しを行っている追加スクリプトや実行プログラムが見付からないのかもしれません。
jcode.plやnkf等の追加ツールを使用する様なCGIスクリプトになっておりませんか?
もしそれらがサーバ上に存在していたとしても、apacheの実行ユーザ(デフォルトでは"apache"の筈)のパスの通っているディレクトにいなければ動作しません。
CGIスクリプトと同一のディレクトリにそれらも一緒に置くか、またはCGIスクリプトの中で夫々を呼び出している記述を個々の絶対パスに書き換える必要があります。
お騒がせして申し訳ありませんでした。
perlの存在場所を正しく記述していたはずでしたがもう一度見ると間違えておりましたので修正して動かしたら正常に動作しました。
エラーの意味をよくよく考えればそういう意味だったみたいです。(笑)
apacheのコンフィグが間違っているとばかり思っていたのですが・・・単純なエラーでした。(笑)
No.10
- 回答日時:
では、最後に一つ以下の点を確認してください。
sambaで転送したperlスクリプトの改行コードは LF になっていますか?
私の経験では、CR+LF(Win系) や CR(Mac系)のままだと動作致しません。
(エラーとしては、コード501の Internal Server Error が出る筈なのでちょっと違うかな... )
此れでも違う様でしたら、現物を直接チェックしていかないと私も此れ以上は思い付きません。m(_'_;m
この回答への補足
NINJYA104さんの補足に書いているエラーはapacheのエラーLOGの内容です。直接URLにCGIのあり場所を記述したら「エラーです管理者に相談するかエラーLOGに書いてある」と出るので見てみたら、そんな内容でした。sambaで転送して駄目ならFTPで転送しても同じ結果です。スクリプトの実行でファイルがないと怒っているのが何なのかがわかりません。
以前インターネットでCGIを挙げたとき他のユーザーの所に無理やり入れたらCGIが動かなかったことがあります。(それとは今回は関係ないのかな?)
No.9
- 回答日時:
/home/jin/WWW/cgi-bin/cnt.cgi に実体があるのなら、
http://www.foobar.org/~jin/cgi-bin/cnt.cgiで
参照するもののような気がするのですが???
No.8
- 回答日時:
>エラーLOGをみると「そんなファイルまたはディレクトリーがない」
というログとsambaで転送したという事ですが、もしかしてCGIファイル名の拡張子が ~.CGI ← 大文字 になっていませんか?
unixは大文字と小文字を区別しますので、大文字のファイル名でも実行可能にさせたい場合は、
> AddHandler cgi-script .cgi .CGI
と、書き足してあげるか、または必ず小文字に直せば良いでしょう。
この回答への補足
エラーの内容は下記です。
[Sun Apr 15 09:40:44 2001] [error] (2)No such file or directory: exec of /home/jin/WWW/cgi-bin/cnt.cgi failed
[Sun Apr 15 09:40:44 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/cnt.cgi
それで、CGIを削除したらスクリプトが無いって言うエラーに変わったのでCGIは動いているのではないかと思いますが、ファイルが無いとういのは確かにファイルを使ってますがCGIの中でちゃんとパスを切っているので見つからないというエラーは理解しがたいのですが・・・パーミッション等の関係で(インターネットサーバー管理者に尋ねるとユーザー・グループ・パーミッションの関係でおかしくなる・・という回答だったので・・)そのようなエラーが出るのでしょうか?
あと別のCGIを動かしても(そのCGIはCGI-BINディレクトリの中のデータファイルを見ているだけですが・・)同じエラーが出ます。
理解範囲を超えております(笑)
No.7
- 回答日時:
間違っていたらごめんなさい。
ScriptAlias行があると、cgiはこのディレクトリに
強制されていたような気がしてます。
以下のようにデフォルトの
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
をコメントアウトして、
<Directory "/home/*/WWW">
~
Options ExecCGI
~
</Directory>
としては如何でしょうか。
この場合だと、http://hogehoge.com/~hoge/abc.cgi
という形で呼び出すことになるのかなあ?という感じですが、
もしdocumentrootの/var/www/cgi-binを使っているなら、
ScriptAlias は生かしておいて、
usrごとにディレクトリを作って、
SYMB_LINKを~USRからはるのも手だと思います。
この場合だと
~hoge/WWW →/var/www/cgi-bin/hoge
http://hogehoge.com/cgi-bin/hoge/abc.cgi
で呼び出しかなあなんて思ってます。
参考になればとおもいます。
ではでは
参考URL:http://www.apache.org
No.6
- 回答日時:
/home/wwww/cgi-bin/の下においていますか?
この回答への補足
selenityさんのエラーの質問ですが、エラーLOGをみると「そんなファイルまたはディレクトリーがない」というエラーです。しかしながら現実には存在しています。転送をsambaで行ったのですが・・その辺に問題があるのでしょうか?(このCGIはインターネット上では正常に動作しております。)
ken2さんの質問は置いている場所は
/home/ユーザー/WWW/cgi-bin
の下です。
ファイル名をちゃんと認識すれば上手く動作するのではないかと思います・・
No.5
- 回答日時:
基本のお話になりますが、httpd.conf を書き換えた場合、その内容を反映させるには apache(httpd)を再起動させないといけませんが、行っておりますか?
単純にスーパーユーザー(su)にてコンソール又はターミナルのコマンドラインから
/etc/init.d/httpd restart
とタイプすればOKです。
話しの流れから 各ユーザ用ディレクトリ(/home/*/WWW)の下層の任意ディレクトリでCGIを実行させたいのだと推測されますが、その辺りの認識誤りが有ればご指摘ください。
selenityさんと私の先述の内容差は CGIをCGI設置推奨の共通デフォルトディレクトリで行うか否かの違いです。
この回答への補足
再起動は常にしております。(あしからず・・)
>各ユーザ用ディレクトリ(/home/*/WWW)の下層の任意ディレクトリでCGIを実行させたい
その通りです。
では・・どうすればよろしいのでしょうか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(ブログ) ランキングサイトのポイントが発生しない理由 1 2023/01/21 11:40
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
ファイルが移動できません。
-
cronで定期的にWGETしたい
-
Index.html表示しない!!
-
lsでディレクトリのサイズが409...
-
「E212:書込み用にファイルを開...
-
shellscript内のコマンドを、su...
-
ファイル「所有者」と「所有グ...
-
apacheユーザの実行権限設定は...
-
PHPでchmod()を使えるようにす...
-
Winmerge ファイルの中身は同じ...
-
嫌ってるのに真似してきたりマ...
-
同期センターのマークが出てま...
-
linuxのエディタgeditは複数フ...
-
onedriveの中身を削除したらパ...
-
コマンドプロンプトによるフォ...
-
Windows10 フォルダ内の自動並...
-
メモ帳での一括たて列選択
-
ファイルの単位
-
バッチファイルで変数の中身を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
lsでディレクトリのサイズが409...
-
ファイルが移動できません。
-
Ubuntu、ファイル移動によるエ...
-
shellscript内のコマンドを、su...
-
シンボリックリンクでパミッシ...
-
Index.html表示しない!!
-
あり得ない!アーカイブを展開...
-
RPM のソースパッケージが展開...
-
PHPでchmod()を使えるようにす...
-
SFTPでファイルのアップロード...
-
rootでも権限が無いようです
-
rootユーザのメールボックスへ...
-
umask757をvar/www/htmlへ適用?
-
ダウンロードしたファイル
-
ファイル所有者を「apache」へ...
-
書き込み権限がありません
-
apacheに詳しい方教えてください
-
winSCPでlinuxフォルダを作りたい
-
ファイル「所有者」と「所有グ...
おすすめ情報