はじめまして、自宅でサーバーを立てようとしているのですが、つまずいてしまったので力を貸してください。
環境はRedhat9.0(?)、apache2.054を使用しています。
cgi自体はネットから落としてきた物を手始めとして使用してます。
/var/www/にcgi-binを作成、そこにcgiファイル等を格納しています。
cgi、perlファイルは705
ログファイルは606
ロックファイルは707にパーミッションを設定しています。
httpd.confは
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddHandler cgi-script .cgi .perl
<Directory "/var/www/cgi-bin">
allowoverride none
options execcgi
order allow,deny
allow from all
</directry>
上記のように設定しています。
HPを表示させようとすると
「InternalError」と表示され、先に進みません。
このサイトを検索し、アスキーモードで転送も行って見たのですが。。。
どなたかCGI設定方法をご教授お願いいたします。
No.2ベストアンサー
- 回答日時:
>which perlの結果
>/usr/bin/perl
から
>.cgiの1行目
>#!/var/www/cgi-bin
を
#! /usr/bin/perl
に変えたらどうですか?
>perlのパスが違うことが問題なのですか??
おそらく、そうです。
お書きに指定では、perlのスクリプトが動作しません。
この回答への補足
>>.cgiの1行目
>>#!/var/www/cgi-bin
>を
>#! /usr/bin/perl
>に変えたらどうですか?
変更しましたがまだ、同様のエラーで不可能でした。
エラーログを確認したところエラーが表示されていました。
[Mon May 23 20:33:54 2005] [notice] SIGHUP received. Attempting to restart
[Mon May 23 20:33:54 2005] [notice] Apache/2.0.53 (Unix) configured -- resuming normal operations
[Mon May 23 20:34:15 2005] [error] [client 192.168.11.3] (2)No such file or directory: exec of '/var/www/cgi-bin/memo.cgi' failed, referer: http://192.168.11.2
[Mon May 23 20:34:15 2005] [error] [client 192.168.11.3] Premature end of script headers: memo.cgi, referer: http://192.168.11.2
[Mon May 23 22:57:08 2005] [error] [client 192.168.11.3] (2)No such file or directory: exec of '/var/www/cgi-bin/memo.cgi' failed, referer: http://192.168.11.2
[Mon May 23 22:57:08 2005] [error] [client 192.168.11.3] Premature end of script headers: memo.cgi, referer: http://192.168.11.2
[Mon May 23 22:57:24 2005] [error] [client 192.168.11.3] (2)No such file or directory: exec of '/var/www/cgi-bin/memo.cgi' failed, referer: http://192.168.11.2
[Mon May 23 22:57:24 2005] [error] [client 192.168.11.3] Premature end of script headers: memo.cgi, referer: http://192.168.11.2
上記、apache再起動かけてから[.cgi]の一行目を
#! /usr/bin/perl
#! /var/www/cgi-bin
#! /usr/local/bin/perl5
と3パターン変更して作業した結果です。
3パターンともエラーの記述が同じため内容自体に不具合があるのではと考えているのですが、何かエラーからわかることはありますか。
お願いいたします。
No.8
- 回答日時:
httpd.confも記述を追加されて、/var/www/html以下に
test.cgiをの拡張子をちゃんとcgiにしてますか?
/var/www/html以下であれば全てcgiが動く設定になってます。cgiのソースが表示されるのであれば、perlを確認してみてください。
rpm -qa |grep perl
この回答への補足
ありがとうございます
端末不具合のためサーバー機プラウザからindexファイルにアクセスしていたのですが、それが原因だったようです。
クライアント側からアクセスすると
「TEST」と問題なく表示されました。
ですので、使用しようとしていたcgiファイルに原因があったようです。
cgiファイルの中身等検証していきたいと思います。
>rpm -qa |grep perl を確認してください
確認しましたが、perlから始まるものが多数表示されました。この結果から何がわかるのですか??
No.7
- 回答日時:
設定の記述を見る限り問題はなさそうですね。
一度、下記のように設定してみて、簡単なCGIを作り
動作するか確認してみては如何でしょうか?
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#
#<Directory "/var/www/cgi-bin">
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
#</Directory>
<Directory "/var/www/html">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
--------------------------------------------
【テストCGI】
#!/usr/bin/perl
print "Content-type: text/html\; charset=shift_jis\n\n";
print "TEST PAGE\n";
exit;
この回答への補足
確認してみました。
プラウザ上から確認したところ
プラウザのフレーム内に
「#!/usr/bin/perl
print "Content-type: text/html\; charset=shift_jis\n\n";
print "TEST PAGE\n";
exit; 」
と表示されるようになりました。
ログ自体は出力されていません。
本来ならフレーム内に
「TEST PAGE」
と表示されるべきなんでしょうか?
No.6
- 回答日時:
的外れでしたら申し訳ございません。
FTPはvsftpdでしょうか?vsftpdの場合、vsftpd.confファイルを編集し、アスキーモードをコメントアウトしないとアスキーモードでの転送は出来ません。
/etc/vsftpd/vsftpd.conf
#ascii_upload_enable=YES
#ascii_download_enable=YES
↓
ascii_upload_enable=YES
ascii_download_enable=YES
もし、設定してあるので有ればすみません。
この回答への補足
回答ありがとうございました。
FTPはvsftpdを使用しています。
>/etc/vsftpd/vsftpd.conf
>#ascii_upload_enable=YES
>#ascii_download_enable=YES
>↓
>ascii_upload_enable=YES
>ascii_download_enable=YES
上記は設定済みです。
なにかほかに考えられることはありますでしょうか。
No.5
- 回答日時:
No.3で
-------8<-------8<-------8<-------8<-------8<-------8<-------
>(2)No such file or directory: exec of '/var/www/cgi-bin/memo.cgi' failed, referer: http://192.168.11.2
「No such file or directory」とあるように「/var/www/cgi-bin/memo.cgi」のファイルが存在しないとApacheが言っていますが。
-------8<-------8<-------8<-------8<-------8<-------8<-------
と書きましたが、これについては撤回します。
ちょっと勘違いしてました。
cgiファイルの先頭行は、No.2で書いたように「#! /usr/bin/perl」になってますか?
「#! /usr/bin/perl」の後ろに何か制御文字(^Mとか)入っていませんか?
もし、入っているようならお書きになったエラーになります。
nkfコマンドがインストールされているなら、
# cd /var/www/cgi-bin
# mv memo.cgi memo.cgi.org
# nkf -Lu memo.cgi.org > memo.cgi
# chmod 705 memo.cgi
を実行してから、再度ブラウザから確認してみてください。
※RedHat9用nkfパッケージは、参照URLの所にあります。
インストールCD内にもたぶん存在していると思います。
参考URL:http://ftp.redhat.com/pub/redhat/linux/9/en/os/i …
この回答への補足
ご返事遅くなりました。
No.2の[#! /usr/bin/perel]は設定済みです。
>nkfコマンドがインストールされているなら、
結果をプラウザから確認しましたところエラー表示自体は変わりなかったのですが、エラーログに変化が現れましたので下記に記します。
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Premature end of script headers: memo.cgi, referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Scalar found where operator expected at /var/www/cgi-bin/memo.cgi line 351, near ""!$B%Q%9%o!<%I$K8m$j$,$"$j", referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] !(Missing operator before $j?), referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Scalar found where operator expected at /var/www/cgi-bin/memo.cgi line 351, near "$j$^", referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] !(Missing operator before $^?), referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Scalar found where operator expected at /var/www/cgi-bin/memo.cgi line 351, near "$^$9", referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] !(Missing operator before $9?), referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Final $ should be \$ or $name at /var/www/cgi-bin/memo.cgi line 351, within string, referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] syntax error at /var/www/cgi-bin/memo.cgi line 351, near "print "!$B%Q%9%o!<%I$K8m$j$,$"", referer: http://192.168.11.2/
[Mon May 30 23:07:51 2005] [error] [client 192.168.11.3] Execution of /var/www/cgi-bin/memo.cgi aborted due to compilation errors., referer: http://192.168.11.2/
少し長いですが、上記のエラーを眺めるとどうもおおもとのcgiファイル自体が問題である気が起こってきました。ファイル自体はあるサイトから落としてきたので問題はないと踏んでいたのですが、なにかほかの簡単なcgiファイルを作成してTESTしてみようと思います。
もし上記エラーからなにか読み取ることができましたら御教授お願いいたします。
No.4
- 回答日時:
>cgiファイルを
>/var/www/cgi-bin/に格納し、
念のため確認ですが、そのCGIファイルは、memo.cgiであっているのですよね?
><IFRAME src="../cgi-bin/memo.cgi"
これを
<IFRAME src="/cgi-bin/memo.cgi"
に変えたらどうなりますか?
この回答への補足
>念のため確認ですが、そのCGIファイルは、memo.cgiであっているのですよね?
確認しましたが問題ありませんでした。
><IFRAME src="/cgi-bin/memo.cgi"
に変えたらどうなりますか?
変更し、キャッシュ、クッキー削除後アクセスしましたが現象変わらずでした。
エラーログもANo4のものと同じでした。
cgiファイル自体がおかしいんですかね??
No.3
- 回答日時:
>(2)No such file or directory: exec of '/var/www/cgi-bin/memo.cgi' failed, referer:
http://192.168.11.2「No such file or directory」とあるように「/var/www/cgi-bin/memo.cgi」のファイルが存在しないとApacheが言っていますが。
その/var/www/cgi-binディレクトリ配下に置いたCGIファイルとURLで指定(たぶんhttp://192.168.11.2/cgi-bin/memo.cgiかな?)したCGIファイルと一致してますか?
この回答への補足
>その/var/www/cgi-binディレクトリ配下に置いたCGIファイルとURLで指定(たぶんhttp://192.168.11.2/cgi-bin/memo.cgiかな?) >したCGIファイルと一致してますか?
パスの設定が違うということですか?
cgiファイルを
/var/www/cgi-bin/に格納し、
/var/www/html/index.htmlよりcgiファイルを呼び出しています。そのときのソースは
<IFRAME src="../cgi-bin/memo.cgi"
にしています。
これが違うということですか?
No.1
- 回答日時:
Apacheのエラーログにはどのようなエラーメッセージが出力されていますか?
※エラーログファイルは、httpd.confファイル内でErrorLogで指定されているものです。
ちなみに、.cgiファイルの1行目にあるperlコマンドのパスと「which perl」を実行して表示された結果と比べて同じになっていますか?
この回答への補足
ありがとうございます。
errorlogのは以下のようになっています。
[Thu May 19 21:10:10 2005] [notice] Apache/2.0.53 (Unix) configured -- resuming normal operations
which perlの結果
/usr/bin/perl
.cgiの1行目
#!/var/www/cgi-bin
になります。
perlのパスが違うことが問題なのですか??
お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルが移動できません。
-
「E212:書込み用にファイルを開...
-
FTPでファイルがダウンロードで...
-
mrtgとは?
-
エラー「cpp0: /var/tmp/cczy3N...
-
lsでディレクトリのサイズが409...
-
嫌ってるのに真似してきたりマ...
-
Winmerge ファイルの中身は同じ...
-
バッチファイルで変数の中身を...
-
emlをtxtに変換するには?
-
onedriveの中身を削除したらパ...
-
教えてください!困ってます。
-
同期センターのマークが出てま...
-
GnuPGの複合化をパスフレーズ手...
-
ftpのmgetコマンドの自分の格納...
-
ファイルの先頭行を全て削除したい
-
フォルダ内の一覧を印刷するには?
-
メモ帳での一括たて列選択
-
BAKファイルを非表示にする方法
-
ホームページのディレクトリを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
shellscript内のコマンドを、su...
-
lsでディレクトリのサイズが409...
-
ファイルが移動できません。
-
「E212:書込み用にファイルを開...
-
Ubuntu、ファイル移動によるエ...
-
シンボリックリンクでパミッシ...
-
あり得ない!アーカイブを展開...
-
winSCPでlinuxフォルダを作りたい
-
RPM のソースパッケージが展開...
-
Index.html表示しない!!
-
PHPでchmod()を使えるようにす...
-
rootでも権限が無いようです
-
Apacheのドキュメントルート配...
-
/varの容量を変更の仕方
-
書き込み権限がありません
-
ファイル所有者を「apache」へ...
-
phpMyAdminが表示されない
-
ダウンロードしたファイル
-
rootユーザのメールボックスへ...
おすすめ情報