• 締切済み

Windowsで書かれたCGIファイルのUNIX上での扱いについて

hazenokiの回答

  • hazenoki
  • ベストアンサー率33% (21/62)
回答No.1

回答に確信はないのですが、思い付くままに。 UNIX上の perl は、普通 SJISでなくてEUCをサポートしていますが、コメント部分なら問題ないと思います。 「LINUXで編集したい」 というのは、サーバー上で編集したいということですよね。 編集前後で、問題が発生するということは、その編集内容を疑ってみては? 他に、 permission は、正しく設定されていますか?

oksana
質問者

お礼

ご指摘ありがとうございます。 編集内容はプログラムに差し障りの無い物だったので、他に原因があると思い、 調査したところ、編集対象のcgiファイルをftpでサーバーにもってくる際に、 やはりゴミが入っていたようで、このゴミを取り除いたところ 正常に動作しました。 どうもありがとうございました。

関連するQ&A

  • 携帯電話でCGIのファイルを読むと文字が・・・

    携帯電話で読めるようなホームページを作っています。 ところが、FORMでCGIファイルを見に行くと、日本語が文字が化けます。 CGIファイルはPERLですが、UNIXサーバでPERLスクリプトをSHIFT JISで書くとうまく動作しないことがある、と、手持の本には書いてありました。 みなさんは、どの様にされておられるのでしょうか? あるいは先の本に書かれていることは昔の話しで、今はUNIXのPERLでもSHIFT JISとCR+LFでスクリプトを書いても問題ないのでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • CSVファイルをCGIでダウンロード

    Perlを使ってCGIを書いています。 申し込みフォームを送信すると、CSVファイルに書き込むのとメールで送信するというCGIを作りました。 そこで、その作ったCSVファイルをFTPソフトを使うのではなく、ブラウザ上でCGIを使ってダウンロードしたいのですが、どうしたらよいのでしょう? 環境は OS:Linux、PerlのバージョンはPerl5です。

    • ベストアンサー
    • CGI
  • Windows の *.cgi ファイル を Linux で動かすには?

    お願いします。初心者です。Windows XP コンピュータ に Apache、activ perl で、イントラネットで、やっています。Windowsで作った *.cgi ファイルを 別のコンピュータ=SUSE Linux 10.1 OSS に移して 、同じことを実行したいのですが、samba でコピーしただけでは、ダメでした。 Linux で *.cgi ファイルを作るのは、とても大変なので、なんとか、簡単に Winndows で作った *.cgi ファイルを、上記の Linux コンピュータで動くようにしたいのでが...。お教えください。どうか、よろしく、お願いいたします。

    • ベストアンサー
    • CGI
  • cgiがうまく稼動しません。

    【環境】 os Windows XP サーバー Apache2.0.55 perl active perl5.6 お世話になります。Windows環境でApacheでサーバーを立てたのですが、cgiがうまく稼動しません。基本的な設定はconfで設定しています。 実際にcgiにアクセスすると、 Forbidden You don't have permission to access /bbs/xxxx.cgi on this server. と表記されてしまいます。 Windows環境なので、permissionは関係ないと思うんですが。 いろいろ調べたのですが、わかりません。 考えられる原因等、ご教授下されると幸いです。 よろしくお願いします。

  • CGIファイル内の CGI呼出しのパスについて

    CGI 内からの .cgi ファイルの呼出しのパスについて質問があります。 動作環境は linux - apache - perl です perl の cgi ファイル内で次のように、同じ /cgi-bin ディレクトリ内の reset.cgi をコールしています。 ========== #!/usr/bin/perl (省略) if($form[0] =~ /reset/){ `reset.cgi`; } ========== バッククォートで実行していますが、これでは動作せず、 ./reset.cgi と ピリオド,スラッシュを前に付けると動作します。 少し調べた結果、カレントディレクトリのパスが通っていないのかと考え、 /etc/profile の PATHに下記のように ピリオド を追加してリブートしたところ、 export PATH=$PATH:. ホームディレクトリなどで作成した シェルスクリプトは ./ なしで動くようになりましたが、 /cgi-bin ディレクトリ内の前述のような呼出しは動作しませんでした。 後は httpd.conf などの編集が必要なのかもしれませんが、 良く分かりませんでした。 申し訳ありませんが、教えて頂けると助かります。 よろしく御願い致します。

    • ベストアンサー
    • CGI
  • cgiがうごきません

    ApacheとPerlをインストールしてローカルでの動作確認OKなのですが、HP上では機能しません。 プロバイダー側が作った「アクセス権が認められてません ・・・どうたら、こうたら」のメッセージがでます。 すべてのファイル(cgi,html,pl・・)をEUC(文字)CR+LF (改行)にして、アスキーモードでアップロードしました。 Perlパスやパーミッションは間違いないとは思うのですが 、アクセスすると凄い文字化けになっています。掲示板は機能しません。FTPはFFFTPですので自動改行すると思うの ですが、コードの設定に関係があるのでしょうか? 私はWin98,プロバイダーはUNIX系です。それから、Apache とPerlを使ってエラーを調べられるようなことを聞いたの ですが、どのようにするのでしょうか?お願いします。

    • ベストアンサー
    • CGI
  • cgiがうまく動作しません。

    はじめまして。 現在独学でlinuxの勉強をしている者です。検索をしたり本を読んだりして対策を試みたのですがどうしても解決できないため、質問させていただきます。 環境は redhatlinux9 Apache2.0.40 です。 cgiを置いたディレクトリにブラウザでアクセスすると、 Internal Server Error と出てしまいます。 ログを見ると、 [error] 6099: ModPerl::Registry: Can't locate ./jcode .pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/li b/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe rl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i3 86-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_per l /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /var/w ww/cgi-bin/bbs/wforum.cgi line 11.! と表示されています。試しにwforum.cgiの11行目以下の require './jcode.pl'; require './fold.pl'; require './wf_init.cgi'; を require 'jcode.pl'; require 'fold.pl'; require 'wf_init.cgi'; と変更してみたところ、今度は (略)Can't locate fold.pl(略) at /var/www/cgi-bin/bbs/wforum.cgi line 12.! というエラーログが表示されました。 perlプログラムの文法、パーミッション、改行コード、FTP転送の際の転送モードは確認済みのため、問題ないと思われます。また、ここの過去ログを参考にして作成した #!/usr/bin/perl print<<EOF Content-type: text/html <HTML><BODY>CGI works Good.</BODY></HTML> EOF というtest.cgiは動作可能でした。 こういった場合、どのような原因が考えられるでしょうか。どうかご教授ください。よろしくお願いします。

  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • 自宅サーバでCGIが機能しないのです

    素人の質問で恐縮です。自宅サーバを構築中ですが、アパッチをインストールし、DDNSによるドメインを取得し、HPを公開できました。FTP環境もできました。ただ、ActivePerlの最新版ををインストールし、コマンドプロンプトで起動確認もできたのですが、CGIファイルをcgi-binフォルダに入れても機能しません。一行目を#!c:/perl/bin/perlか、#!c:/perl/bin/perl.exeにしたのですが、パールをつかみにいかないのです。サーバはWindowsXPのホームエディションSP2ですが、WindowsはUNIXみたいにパーミッションの概念がないので設定は不要だと、あるサイトに書いてましたが不要ですか?確かに以前、プロバイダのWEBスペースでCGIの掲示板を使っていた時は、FTP上でパーミッションを設定していましたが、自宅サーバ(windows)ではFTP上で設定しようとしてもはねつけられてしまいました。どなたかアドバイスいただけましたら幸いです。

    • ベストアンサー
    • CGI
  • .htmlから.cgi

    現在、Linux(Fedora9)マシンにApacheとTomcatを連結し、その後htmlからcgi(perlファイル)を見ようとしたのですが、見れませんでした。 (cgiファイルのソースがそのまま出力 or cgiファイルのダウンロードが面になります) バージョンは以下のとおりです。 apache 2.2.11 tomcat 6.0.18 perl  5.10.0 ざっくりとしているとは思いますが、何かいい解決案がありましたらお願いします。