• ベストアンサー

ローカルではうまくいってたのに、サーバにあげるとエラーになります、これってどうして?

911turboの回答

  • ベストアンサー
  • 911turbo
  • ベストアンサー率50% (1/2)
回答No.5

CSVファイルのパーミッションを666にしてみてはどうですか? 644でも動くと思うので、期待薄ではありますが・・・・ どれも、間違っていないとなると厄介ですね。 絶対に動く!スクリプトを一つ組んで、アップロードして 稼動するか確認してみたらどうですか? それを設定して、動けばプログラム中のコマンドが引っかかっている事になりますし、動かなければ、サーバーの設定に間違いがあると言う事になります。 絶対に動くスクリプトをサンプルで載せておきます。 必要な部分を書き換えてやってみてください。 あと、CGIがリードする、CSVファイルは必ずありますか? もし、無かったら、ファイルオープン時にエラーになりますよ。(書込みは自動生成される) ********サンプル******* #!/usr/bin/perl require 'cgi-lib.pl'; ######ファイルオープンチェック#####このブロックは消しても良い open (FILE,"ファイル名"); flock(FILE,2); flock(FILE,8); close(FILE); ####################################### print "Content-type: text/html\n\n"; print <<"EOF"; <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>絶対に動く!</TITLE> </HEAD> <BODY> 動いたよ! </BODY> </HTML> EOF exit ;

関連するQ&A

  • ローカル環境でのCGIエラー

    ActivePerlとAn HTTPdでWindowsXP HomeEditionのPC上でCGIを動かそうと思っています。 どちらも最新版をダウンロードしてインストールしました。 ActivePerlに関してはegフォルダ下のexample.plで動作確認が取れています。 An HTTPdに関してはhttp://127.0.0.1以下のURLを指定してページが表示されています。 ですが、htmlからcgiを呼び出そうとすると「ページを表示できません」「サーバーが見つからないか、DNS エラーです。」のエラーが出てしまいます。 試しにcgiファイルをフルパスで指定したのですが同じでした。 ちなみに、簡単なCGIプログラムtest.cgiを作成、サーバにアップして動作を確認しましたがローカルではエラーになります。 また、ローカルでコマンドプロンプトにて c:\usr\local\bin\perl c:\プログラムのパス\cgi-bin\test.cgi と入力すると内容を表示します。 コマンドプロンプトでCGIプログラムのあるcgi-binディレクトリに移動して perl -v と入力するとperlのバージョン情報を表示するので、パスは通っていると思われます。 Au HTTPdのerrors.logには Thu Aug 16 19:21:18 2007 Warning: CGI TerminateProcess 2500 error 5 とりあえず、自分で原因を絞れるであろうところはあたってみたつもりですが、何か見落としていることがあるでしょうか? もしかしたらAu HTTPdに問題があるでしょうか?

    • 締切済み
    • CGI
  • なんでサーバーエラー??

    CGIをはじめて、まだまだ初心者です。 プログラムは、MS-DOSで構文チェックして、 OKとでるのに、サーバーエラーっておかしくないですか? もちろん、サーバは、自分のパソコンに アパッチいれて、Perlいれて確認するんですが、 何がエラーなんでしょう・・・? まだ、高級なCGIなど作れないので、 フリーのスクリプトをDLしてきました。 まず、構文チェックOK。 そして、Perl開いたまま、 ブラウザにアクセスします。 そうしたら、サーバーエラーとなるのです。 何を変えていったらいいのか教えて下さい。 (自分で作った簡単なアンケートフォーム とかは成功しました)

    • ベストアンサー
    • CGI
  • ローカルテストOKのPerl サーバでのエラーです。

    よろしくご教授下さい。 単純にフォームに入力された内容を確認するためのページを作成しようとしていますが、 ローカルでのテストはOKでしたが、いざサーバにアップするとサーバエラーが出ます。 ローカルのテスト環境 サーバ AnHTTP ActivePerl Ver.5 本サーバの環境 Apache Perlのバージョン 5.6.0 パーミッションは755に変更済み。 PerlのパスもOKです。 あと、考えられるエラーの可能性をご指摘頂けませんでしょうか? よろしくお願いします。 説明不足なとこがありましたら補足致します。 参考にならないかもしれませんが、一応・・・ サーバエラーの内容です。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, *******@*******.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. ----------------------------------------------------------- Apache/1.3.19 Server at www.********.com Port**

  • robocopy でServer2003のエラー

    robocopy C:ディレクトリ \\server\コピー先 /MIR のように書いたファイルを拡張子を.bat にしてフォルダのバックアップをしたいと思ったのですが、Server2003で「アクセスが拒否されました」、「ディレクトリを作成できませんでした」のエラーとなりコピーができません。自分のPCから自分のPCのコピーであれば動きますが、サーバーには拒否されてしまいます。 他のコマンドも含めて解決方法を教えてください。 よろしくお願いします。

  • ローカルサーバーでパーミッションエラーが発生する

    ローカルで開発実験用にサーバーを立てています。外部には接続していません。このサーバー上で、phpのrmdir関数(引数に指定したディレクトリを削除する関数)を実行したところ「Permission denied.」というエラーが発生しました。パーミッションが許可されていないとのことですが、WWW上なら分かるのですがローカルにパーミッションがあるということを知りませんでした。現在、この関数を実行できないとプログラムの動作確認が出来ないので困っています。どのようにすれば解決できるのでしょうか? 環境は以下の通りです。 OS: WindowsXP Server: Apache2.2.4 PHP: v5.2.4 自分で検索してみたところ、OSはLinuxなどを想定していることが多く、「PHPのchmod関数(パーミッションを設定する関数。ただしWindowsでは無視される。)を使え」といったような、Windowsユーザーには解決策とならない情報ばかりでした。

    • 締切済み
    • PHP
  • Internal Server Error になってしまいます。

    とある書籍を元にperlを学んでいます。まだ初心者で少々わかりずらい質問になってしまっているかもしれませんが、よろしくお願いします。 下記のコードがある事で Internal Server Error になってしまいます。 open(FILE,">>$logfile") or die("エラー:ログファイルが開けませんでした。"); $logfileの変数値には本日の日付 + .dat が入ります。 自分なりにいろいろ原因を探してみて、$logfileの変数値と同名のファイルをあらかじめ用意してやればエラーにはならない事がわかりました。 それから >> と書けば「対象ファイルが存在しない場合は新規作成される」と書籍には説明があるのですが、新規ファイルは作成されていませんが、>>はそのような動作にはならないものなのでしょうか? それから、or die 以降を削除してしまえば エラーは起きませんでした。 上記コードがあるとなぜ Internal Server Error になってしまうのでしょうか? アドバイスやご教授をよろしくお願いします。

    • ベストアンサー
    • CGI
  • 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関係エラーについて

     現在私は AH HTTPD を使って自宅サーバを運営していますが、ときどきCGI掲示板のみが閲覧できなくなるときが あります。そのような時は必ず以下のようなエラーメッセージが出ます。  Error 500 CGI エラー - 以下のコマンドラインを実行できません : "perl C:\www\public_html\yybbs\yybbs.cgi ", errorcode = 2, No such file or directory  この問題はどのように解決したら良いか? どうか教えていただきたいm(_ _)m

  • cgi(perl使用)でファイルを作る方法を教えてください

    こんにちは、 perlをやっています。 プロバイダ上にperlスクリプトを拡張子cgiでUPしています。 いまやりたいことがあるんです、それは ファイルをサーバ上の領域に作るというものです (ちなみにサーバの種類はUNIX系です) ファイルはゼロバイトの何も無いテキストファイルを作りたいんですが どのような関数を使えばファイルができるのでしょうか。 また、ファイルを作った後パーミッションの変更(chmodコマンドのような 動き)をする関数等があれば教えてください。

    • ベストアンサー
    • Perl
  • Perlスクリプトが、ローカルでは実行できるが、HTTP経由では実行できない

    現在Perlスクリプトを作成し サーバにアップしました。 SSHでサーバにログインし #perl a.cgi と実行したところ(CGIとして動作させるため。中身はPerlスクリプト) Content-type: text/html <html> <body> あああああ </body> </html> のようなメッセージが表示され正常に動作しているとおもいます。 しかし、 http://www.hoge.com/a.cgi をURLとしてブラウザ上で実行すると 500 Internal Server Error になります。 パーミッションは755で正常 Perlのパスは#!/usr/bin/perlとしており、これも正常です。 文字コードはeuc-jp 改行コードLF サーバはApache/1.3.33 Perlバージョンは5.8.4 自分のパソコン上でperl+HTTPサーバ(httpd)を使うと HTMLふぁいるとして出力されます。 サーバ上でHTTPを使ってアクセスしたときのみエラーとなります。 このような現象が起こるのですが原因がわかりません。 お願いします。

    • ベストアンサー
    • Perl