- ベストアンサー
500 Internal Server Err で困ってます
私、CGI初心者なんですが、”500 Internal Server Err ”が出てしまい困ってます。 カウンターの設置し、きちんと動いているんですが、フォームを入力してもらい、ファイルに保存するCGI(Perl)です。このエラーはスクリプトにエラーがある時や、FTPで バイナリモードでスクリプトを送ってしまった時などに起こると本に書いてありました。なので、次の事を試してみたんですが・・・ ・TELNETでPERLの構文チェックと動作確認 ・FTPでアスキーで再度アップロード ・再度スクリプトを検証 ・念のため、ファイルの属性をチェック ・念のため、.htaccessをチェック(改行コードなど、・・でもカウンタプログラムが動いているから問題ないはずですよね??) 以上の事を試したんですがダメでした。 そこで、もっと簡単なスクリプト(簡単な標準出力だけを するもの)を動かしてみたんですが、やはりダメで、上記のチェックをやってみたんですが、ダメでした。 この簡単なスクリプトはCGIの本で一番最初に載っている ものでわずか10行のものです。 TELNETで動作も確認したんですが・・・ 何分、初心者なもので・・・考えられることがあったら 教えていただけると助かります。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- 500 Internal Server Error
500 Internal Server Errorが出ます。 サーバ:CentOS6.4 サーバ側の文字コード:UTF-8 perlのパス:/usr/bin/perl index.cgiの文字コード:LF (サーバ上で直接作成) index.cgiのパーミッション:777 (パーミッションの問題を避けるためわざと、777に設定) ここで、サーバ上で直接実行 perl /var/www/html/index.cgi すると、正しく処理の結果が返ってきてエラーは出ません。 しかし、クライアントのブラウザでindex.cgiにアクセスすると、500 Internal Server Errorが出ます。 なお、index.cgiを設置するディレクトリはApacheで以下のように設定しcgiスクリプトを有効にしています。 <Directory “/var/www/html”> Options FollowSymLinks ExecCGI </Directory> AddHandler cgi-script .cgi .pl #AddDefaultCharset UTF-8 ******************************************************* 【/var/www/html/index.cgi】 #!/usr/bin/perl print "Content-type: text/html"; print "<html>"; print "<body>"; print "<p>"; print "CGI"; print "</p>"; print "</body>"; print "</html>"; スクリプトの文法に問題があれば、サーバ上で直接実行させた時点でエラーを吐きそうですし、 パーミッションは777にしていますし、Apacheの設定もcgiを有効にしているので 他に500 Internal Server Errorが出る原因が掴めません。 Apacheの設定で、#AddDefaultCharset UTF-8 として文字セットを無効にした場合は CGIスクリプトの方で何か追加してやらないと、文字化け以前の問題で必ず500 Internal Server Errorを吐くんですかね? ご指導のほどよろしくお願い致します。
- ベストアンサー
- CGI
- なんでサーバーエラー??
CGIをはじめて、まだまだ初心者です。 プログラムは、MS-DOSで構文チェックして、 OKとでるのに、サーバーエラーっておかしくないですか? もちろん、サーバは、自分のパソコンに アパッチいれて、Perlいれて確認するんですが、 何がエラーなんでしょう・・・? まだ、高級なCGIなど作れないので、 フリーのスクリプトをDLしてきました。 まず、構文チェックOK。 そして、Perl開いたまま、 ブラウザにアクセスします。 そうしたら、サーバーエラーとなるのです。 何を変えていったらいいのか教えて下さい。 (自分で作った簡単なアンケートフォーム とかは成功しました)
- ベストアンサー
- CGI
- C言語で作成したCGIにて「Internal Server Error」
こんばんは。CGIについて質問させて下さい。 現象: C言語でCGIを作成し、ローカルで動作しているApacheで 動作確認をしようとしたところ、 「Internal Server Error」が出てしまいました。 質問: 上記の現象が起こったのですが、C言語でCGIを実行するには なにが足りないでしょうか? 環境: OS:WindowsXP Webサーバ:Apache 2.0.61 Cコンパイラ:gcc 3.4.4(cygwin) 状態: ○「http://localhost:8080/」にアクセスすると「あなたの予想に反して・・・」画面は見れます。 ○「http://localhost:8080/cgi-bin/test.cgi」にアクセスすると、「Internal Server Error」が表示されます。 ○httpd.confの設定値(デフォルトから修正した部分) ・ServerName 127.0.0.1:8080 ・<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">内 Options none → Options ExecCGI ・#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi ○Apacheのerror.log ~[error] [client 127.0.0.1] Premature end of script headers: test.cgi ○test.cgiのコンパイル前ソース ---ここから #include <stdio.h> int main(void){ printf("Content-Type: text/html\n\n"); printf("<html><body>Hello, World!</body></html>"); return 0; } ---ここまで ○test.cgiはcygwinにて標準出力を確認済み。 ・・・ちなみにperlでCGIを作成すると表示されます。 (ActivePerlインストール済み) perl側のソース ---ここから #! c:/perl/bin/perl print "Content-Type: text/html\n\n"; print "<html><body>"; print "Hello, CGI!"; print "</body></html>" ---ここまで なにかおかしな点がございましたらご指摘をお願い致します。
- ベストアンサー
- CGI
- アクセスカウンタ
プロバイダWAKWAKの無料HPサービスで、 アクセスカウンタを作成、設置しました ユーザー設定ガイド http://www.wakwak.com/support/setup/homepage/cgi/counter.html の通り、 txtファイルに、下記の記述を追加 <img src="/cgi-bin/Count.cgi?df=xxxxx|user=yyyyy"> xxxx はアクセスカウンタ名 yyyyyはFTPログインID を入力しました txtファイルは、『count.txt』とファイル名をつけて、保存 これを cgi-bin に アップロードして、 アドレスバーに下記の通り入力、表示しようとしましたが・・・ http://park21.wakwak.com/~○○○/cgi-bin/count.txt (○○○は私のFTPログインID) エラーの表示になってしまいました CGI Error The error was detected while processing this request. Be sure of followings: The CGI script does exist. The permission of CGI script is 755. The Perl path in CGI script is #!/usr/local/bin/perl. CGIスクリプトの呼び出し中にエラーが発生しました。 下記の点をご確認ください。 ・CGIスクリプトが存在すること。 ・CGIスクリプトのパーミッションが755であること。 ・CGIスクリプトのperlのパスが #!/usr/local/bin/perl であること。 アクセスカウンタが表示できない理由は何でしょうか?
- 締切済み
- その他(インターネット・Webサービス)
- これはサーバー側の設定?
お世話になります。 ろくにperlも書けない初心者です。 Flash(SWF)内でメールフォームを作っています。 丁度良いサンプルがあり、そのCGI(perl)をそのまま拝借。 テスト用(自前)のサーバーでは問題なく動作。 ところが実際に使用するサーバーに上げてみると動かないのです。 仕組みとしては、swfからgetURLで変数(送信元、送信先、メッセージなど)をcgiへPOST送信。 cgiは未記入のモノがあったらerror、埋まっていればOKの変数を返す。 (swf内のテキストボックスを受信用に空けています) その変数によって、飛ぶフレームを判断、「送信完了」「送信エラー」などを表示する。 といったモノです。 CGIの設置位置(perlへのパス、cgiへのパス)は確認しました。 パーミッションも確認済み。 何より、返り値の無い、HTMLを生成するタイプのCGIは動作しています。 さて、どうすれば上手く表示されるか分かりませんか? サーバーによってそういった違いってあるのでしょうか? 念のため、仕様は以下の通りです。 ウェブサーバーソフト(httpd) Apache1.3.22 Cコンパイラ gcc (ver2.8.1)/usr/local/bin/gcc OS Solaris2.6 SPARC版 利用可能なPerl Perl5 ( 5.005_03 ) よろしくお願いします。
- ベストアンサー
- Perl
- cgiのサーバー設置
現在知り合いのHPを作っていてメールフォームを設置しようとしたところ 500番のエラーが出てしまいます。 同じメールフォームを別のサーバーに設置したところ正常に動作しました。 Perl文法チェッカーでチェックしたところ文法エラーとなり 「sh: perl: command not found」がでてきます。 本等を見ても対処方が見つかりません。 cgiになにか付け足したらいいのでしょうか? お解りの方いらしたら宜しくお願いします。
- 締切済み
- CGI
- RedHatLinux8.0でのサーバー、FTPサーバー管理について
初心者です。お尋ねします。 ネットワーク内でCGI(PERLでかかれた)プログラムを稼動させたいと考えています。インターネットでの公開はしない、あくまでもLAN内での運用です。 現在RedHatLinux8.0のパブリッシャーエディションを本のCDからインストールフルインストール(Xウィンドウ)し、ネットワークの接続まで出来ています。 var/www/htmlにテストインデックスHTMLを置き、LAN内のPCからブラウザでIPを打ち込むと日本語が文字化けしていますが、アクセスの確認は出来ました。 --ここからが本題-- 1.OSを立ち上げたときにテストHTMLは確認できますが、FTPやCGIを稼動するもの(アパッチ?)は起動しているのか確認したい? 2.もし、1で両者が既に起動しているのであれば、実際にFTPしたい。こちらは、本等をみながらアクセス制限等確認したのですが、 /etc/vsftpd.conf /etc/vsftpd.ftpusers は、存在しておりそれぞれ本を見た感じでは問題ないと思います。ただ本にあった /etc/proftpd.conf が存在せず、勝手にテキストで作成してディレクトリに設置してみました(涙)。 レンタルサーバーの例をとると、ID+PWDを設定したりアクセス制限をしたり出来ると思うのですが、この辺の操作を知りたいです。 結局は、FTPソフトでFTP転送してCGIモジュールの起動を現実化したいのです。
- 締切済み
- その他(ITシステム運用・管理)
- 社内のリナックスサーバーのファイルがIEブラウザみれません
初心者で申し訳ありません。 先日リナックス、ネットワーク系会社に勤務することになって リナックスとperlの勉強しています。 会社のサーバーの指定アドレスのhtmlファイルはIEブラウザでみれるのですが、会社から提供された/home/usernameのフォルダに、htmlファイルとperlのcgiファイルをwindowsXPからftpソフトによってアップロードして、telnetソフトからperlのcgiファイルを実行できるのですが、IEブラウザからhttp://xxx.xxx.xxx.xxx/~username/filename.cgiを指定するとファイルがありませんとでますが、 何がいけないのでしょうか?よろしくお願いします。
- ベストアンサー
- Linux系OS
- MP Form Mail CGI で 500サーバーエラー
初めまして、gibasense といいます。 サーバーエラーが表示されて困っています。 助けてもらえないでしょうか(>_<) 【使用CGI】 futomi's CGI Cafe MP Form Mail CGI Professional 版 (メールフォームCGI) http://www.futomi.com/library/mpmailp.html 【エラー内容】 CGIを実行すると505 Error - Internal Server Error が表示される。 【仕様サーバー】 ロリポップ 【PC環境】 ・OS WindowsXP ・FTP FFFTP V1.92 【操作設定内容】 ・サーバー上のCGIディレクトリの削除 ・再度、CGIをダウンロード ・サーバーにアップロード(ASCIIモード) ・パーミッションの設定 フォルダ[705] HTML,画像ファイル[604] CGI[700] 又は、[704] 【CGIサイト管理者より】 CGIフォルダをサーバーにアップロード後、パーミッションをmpmail.cgi[704]admin.cgi[704] に設定するだけでCGIは動作する。とコメント頂きました。 (ロリポップのサーバーでテストをして頂きました。) 【その他テスト】 上記のフォームメール以外のCGIは問題なく動作します。 (アクセスカウンター、アクセス解析等) 【追記】 ・Perl のパスは標準で #!/usr/local/bin/perl でした。 ・ロリポップのサーバー番号によって仕様がちがうのでしょうか? どうぞ宜しくお願いします。m(_ _)m
- ベストアンサー
- CGI
- Internal Server Error になってしまいます。
とある書籍を元にperlを学んでいます。まだ初心者で少々わかりずらい質問になってしまっているかもしれませんが、よろしくお願いします。 下記のコードがある事で Internal Server Error になってしまいます。 open(FILE,">>$logfile") or die("エラー:ログファイルが開けませんでした。"); $logfileの変数値には本日の日付 + .dat が入ります。 自分なりにいろいろ原因を探してみて、$logfileの変数値と同名のファイルをあらかじめ用意してやればエラーにはならない事がわかりました。 それから >> と書けば「対象ファイルが存在しない場合は新規作成される」と書籍には説明があるのですが、新規ファイルは作成されていませんが、>>はそのような動作にはならないものなのでしょうか? それから、or die 以降を削除してしまえば エラーは起きませんでした。 上記コードがあるとなぜ Internal Server Error になってしまうのでしょうか? アドバイスやご教授をよろしくお願いします。
- ベストアンサー
- CGI
補足
御回答ありがとうございます。 書いていただいたものでやってみたんですが・・ やはりダメでした。何故でしょうか??? .htaccessに関してですが、同じディレクトリで自分で入れたカウンタプログラムがちゃんと動いてるんで・・・ 念のため、.htaccessの中身を書いてみます。間違いありますか? Options ExecCGI AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ Options Includes AddType text/x-server-parsed-html .html AddType text/x-server-parsed-html .html/