締切済み CGIのパス /usr/bin/perl-- 2004/03/29 19:39 こんにちは。CGIの最初のパス名をusr/bin/perl --と「ーー」をつけないと動かないCGIがあります。「ーー」はなんの意味なんなのでしょうか? みんなの回答 (1) 専門家の回答 みんなの回答 estea ベストアンサー率44% (39/87) 2004/03/30 12:02 回答No.1 はじめますて。 思うに、 -- でなくてもいいはずなのですが、 おそらくは、改行コードをまともに認識できないことにあると思われ。 過去、これと同じ用に -- などをつけない場合 500 エラーを出した経験があります。 この場合は -w などをオプションにつけてやれば解決できたので。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発CGI 関連するQ&A perlの1行目が#!/usr/bin/perlだと動かず#!/usr perlの1行目が#!/usr/bin/perlだと動かず#!/usr/bin/perl5.8.9だと動くのですが、 #!/usr/bin/perlで動くようにするにはどうしたらいいのでしょうか? インストールされているperlは This is perl, v5.8.9 built for darwin-2level です。 どこかでパスの設定をしてやればいいと思うのですが、 どこに何を書けばいいのかよくわかりません。 環境はMacOsX v10.6 SnowLeopardです。 どなたかよろしくお願いいたします。 Perlのパス レンタルサーバーのCGIの説明で、「1.perl のパスは、/usr/bin/perl です。2.プログラムの先頭の記述は必ず、#!/usr/bin/perl となります。」って書いてあるんですけど、これを使用する場合、 http://www.kent-web.com/data/cart.html たぶん、admin.cgi , cart.cgi , order.cgi を エディタ で開いて以下の箇所をあたまの部分、#!/usr/bin/perl を変えればいいんですかね?それで1.の/usr/bin/perl は何処に書くのかな?それとも説明 の前置きですかね?「1.perl のパスは、」という意味はリンクがこうなるよ!って意味ですかね? ただま、KENT WEBみながら苦戦してます。 シロウトですいません。 「#!/usr/bin/perl --」でなければ動作しないのはなぜ? 新しい職場に来て、あるCGIの設定を依頼されたのですが、どのような設定になっているのか、どのプログラムをアップしても「Internal Server Error」になってしまいました。 人に聞いて、「#!/usr/bin/perl」を「#!/usr/bin/perl --」としなければ動かないことまでは分かりました。 確かに、先に他の方が作成されたらしいCGIプログラム(単純な構成のものばかりです)ではすべて「#!/usr/bin/perl --」となってました。 こうしなければ、どんな簡単なプログラムでも絶対に動かないようです。 「*.cgi」というファイルが1つのみ(他の構成ファイルは他の形式)というプログラムならその方法で動いたのですが、複数の「*.cgi」ファイルで構成されているものはどうしても動きませんでした。 構成するファイルの中に、先頭に「#!/usr/bin/perl」の行がないファイルもあるのですが、もしかしてそのせいでしょうか? その場合、どうしたら解決できますか? そもそも何が原因なのでしょう? 今まで、色々な会社でCGIをいじってきましたが、初めての経験で戸惑っています。 FFFTPの設定(開業など)の問題ではないように思えるのですが、サーバーの設定がおかしいのでしょうか? 「#!/usr/bin/perl --」としなければ絶対に動かないというのは、どういう場合に起こる現象なのですか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム #!/usr/local/bin/perlとしたい WindowsXP上でCGIを動作させる環境を構築しています。 しかし、サーバにアップロードする際にいちいちPerlパスを変更するのが 面倒なので、「#!/usr/local/bin/perl」と、基本的なディレクトリ指定にしたいです。 (サーバそうでなければ結局指定し直しですが) 現在、「#!c:/perl/bin/Perl」で動かしています。 どうすれば出来るでしょうか?ご教示願います。 ちなみにApacheは2.0.55です。 #!/usr/bin/perl -- IEでPerlのgciにアクセスすると 500 Internal Server Error だったので、 #!/usr/bin/perl の次に -- を加えて再びIEでアクセスするとエラーはありませんでした。 普通に#!/usr/bin/perlのソースで正常に動作するように したいのですが、解決策は分かりませんか? -- というのはどういう意味ですか? そうしてみれば動くことがあると聞いて試したものです。 perlのcgiが動かない・・・ cgiを組もうと思い、まずは簡単なもので試そうと思ったのですが、 うまくいかず困っています。 ↓プログラムは、こんな感じです。 ファイル名:index.cgi #!/usr/bin/perl print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; <やってみたこと> ・Perlのパス「#!/usr/bin/perl」 が間違っていないか? which perl で /usr/bin/perl とでます。 ・Apache の設定が正しく行なわれているか? http://localhost でindex.htmlがきちんと表示できています。 ・「hello.cgi」 の設置場所を間違っていないか? プログラムソースが出るということは、 間違っていないのではないでしょうか? ・ためしに実行してみた TELNETで ./index.cgi <html><body>abc</body></html> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。 #!/usr/local/bin/perlの変更。 ┬ cgi_script │ └***.cgi │ └ access_g └11111 └22222 └***.cgi 今まで、cgi_scriptフォルダの直下にあるcgiファイルの一番上の行は #!/usr/local/bin/perl できちんと動作していました。 今は、そのcgi_scriptフォルダと同じところにあるaccess_gフォルダの中にある、 11111フォルダの下の2222フォルダの下にあるcgiファイルを実行させたいのですが、 #!/usr/local/bin/perl をどのように変更していいかわからなくなってしまいました。 動作させたいcgiファイルはcgi_scriptフォルダの中に入れたところきちんと動作したので、 動作上の問題はないと思われます。 どうぞよろしくお願いいたします。 CGI Perlについて 低レベルな質問で恐れ入ります。 Perlのパスがサーバーのサイトで …/usr/local/bin/perl となっているのですが #!…/usr/local/bin/perl でしょうか? #!/usr/local/bin/perl でしょうか? Perlの初歩の初歩の初歩(#!/usr/local/bin/perlについて) いつもお世話になっています。 Perlを勉強し始めて1か月たっていない人間です。 調べてもよく分からず、気持ち悪いので どうか教えてください。 Perlで記述するとき1行目にperlへのパスを書きますが プロバイダでのパスは「#!/usr/local/bin/perl」です。 私のPC環境では「#!d:/perl/bin/perl」になります。 ある日、PC環境で動作検証するとき 間違ってプロバイダのパスのほうを記述してしまいました。 しかし、それでもPC上で動作しました。 なぜパスが違うのに動作するのでしょうか? なお、わけの分からないまま 「Perlへのパスを通す」というのを昔 やったことがあります。関係がありますか? ある場合、それをすると 「#!d:/perl/bin/perl」の「d:/perl/」の部分が 「/usr/local/」と同になるということなのでしょうか? perlパス Windows2000機でWebServerを建てたのですが、CGIが認識しません。 WEBサーバーのクライアントソフトはApacheで 普通にHTMLは見れています。 perlをインストールした場所は C:\usr\local で VerはActivePerl 5.8.8.822 for Windows (x86)です。 場所は↑なのでCGIファイルのperlのパスはそのままいじらず、 perlのパスは#!/usr/local/bin/perl です。 一応#!C:/~以下 もやりましたがだめで、 CGIのテキストが表示されています。 色々調べてやったのですがどうもうまくいかず 教えていただけませんか #!/usr/local/bin/perlで命令が出せません。 プログラミングのド素人で、独学でwindows上でcygwinを使っている者から質問させていただきます。「#!/usr/local/bin/perl」というコマンドをプログラムの先頭に書いて、[ファイル名]を入力してcygwinで命令をしたところ、命令が実行できず、「commond not found」と出てしまいました。そこで、ネット上で、いろいろ調べて、試してみたのですが、どうしても、解決できません。 どなたか、アドバイスをいただけないでしょうか? ちなみに、perl [ファイル名]では、命令を実行することができます。「type -a perl」というコマンドを入力すると、「/cygdrive/c/Perl/bin/perl」というのがでてきたので、「#!/cygdrive/c/Perl/bin/perl」というコマンドを書いても上手くいきませんでした。 ちなみに、私が書いたプログラムは、以下のようなものです。 #!/cygdrive/c/Perl/bin/perl (あるいは#!/usr/local/bin/perl) # hello -- 挨拶のプログラム print ("hello"); #!/usr/bin/perl --でも不安定です #!/usr/bin/perl ですと全く表示されず、Internal Server Error. #!/usr/bin/perl -- でも30%ぐらいしか画面表示されません。 サーバのファイルをTeraTermで見てもおかしなファイルが見当たりません。 問題のファイルを調べる方法はありますでしょうか? Carpモジュールをuseしても相変わらずInternal ServerError.でさっぱり見当がつきません。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム CGIのパス(Apache winで) 初歩的な質問ですみません。 環境 windows2000 サーバー Apache/1.3.20 ActivePerl-5.6.1.626 をインストールが完了して、CGIを動作させようとしています。 ApacheでのHTML動作はできています。 CGIプログラムの一行目に #!/usr/local/bin/perl と記載されています。 その文字列を #!c:/bin/perl.exe に変更して現在動作させています。 しかし、ISPのHPスペースのperlへのパスは #!/usr/local/bin/perl なので、転送前に一行目を変更しています。 変更しなくても良いように ApacheでのCGIのパスを #!/usr/local/bin/perl で動作する方法を どなたか教えていただけないでしょうか? ちなみに Perlは[c:\bin]にインストールしてあります。 Apacheは[g:\apache]にインストールしてあります。 CGIの最初の記述 つい先日、CGIをテキストエディタで開き編集をしていたところ最初にPerlの場所を示すパスらしきものが記述されていました。#!/usr/bin/perlみたいなのです。 そこで質問なのですが、/usr/bin/perlとはどこを示しているのでしょうか? 私、ウィンドウズPCでWWWサーバーを開設しておりますのでやはり気になってしまいます。それと言うのも、Apacheというソフトで開設しているのですがそのソフトでCGIを動かそうとすると、動かしたいCGIプログラムの最初の記述である/usr/bin/perlを私のサーバーのPerlをインストールしているフォルダへのルートに書き換えなくてはCGIが動かないからなんです。大変困っております。どうか、皆様私にお力をお貸し下さい。 CGIについて http://www.mytools.net/cgitools/quiz2.html#install こちらのCGIに挑戦したいのですが、初めてなのでさっぱりわかりません。 4つの.cgi ファイルの最上部のPerlのパスを正しくするというところで悩んでいます。 登録メールにはperl : /usr/bin/perl と書いてありますがこれでしょうか? あとダウンロード後にファイル名を変えるように書いてありますが、変えるとファイルが開けられなくなります。 これはどうしたらいいんでしょうか? 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 などの編集が必要なのかもしれませんが、 良く分かりませんでした。 申し訳ありませんが、教えて頂けると助かります。 よろしく御願い致します。 /usr/local/bin/perl の発音 あまりにも初歩の質問かもしれませんが、 /usr/local/bin/perl ・・・を、声に出すとすると、 /ユーザー/ローカル/ビン/パール ・・・で、良いのでしょうか? #!/usr/bin/perlについて メモ帳perlのパスはブロバイダやレンタルサーバーのHPにperlのパスは書いてありますというのですがどのように調べるのですか。それとも自分のHPのperlのパスを調べるのですか。 CGIのperlを確認するには??(CATV) こんばんわ。 いつもお世話になっています。 ホームページでメールを自動返信するCGIを設置したいのですが毎回 【一行目のperlのパスを自分の環境に合わせて書き直します。 大抵は、「#!/usr/bin/perl」 か 「#!/usr/local/bin/perl」です。 解らない場合はサーバー管理者(もしくはプロバイダー)に確認してください。】 という壁にぶちあたります。 インターネットはCATV(中部ケーブルネットワーク)を使っています。 どのように乗り切ればよろしいでしょうか? 宜しくお願いします。。。 UTF-8で書いたperlのパスが正しく読まれない 元々htmlファイルもcgiファイルもShift-JISで書いていました 英語環境に変えようと、UFT-8にすべくEncordingConverterでファイルを変換しました htmlファイルは文字コード指定も当然UFT-8にし、アップして表示させてみたところ問題なく表示されました しかし、cgiファイルの方が正しく表示されず、perlチェックをしてみたところパスが ・ソ#!/usr/bin/perl となっていました これが原因で正しく表示されなかったようです そこでcgiファイルをテキストエディタで開いてみたのですが、そのエディタ上では #!/usr/bin/perl と本来あるべき正しい表示になっています 文字コードもUTF-8形式になっています どうしれやればきちんと読み取ってもらえるのでしょうか? エディタで開いても「・ソ」の部分が表示されないのでなおしようがなく困っています どなたか解決方法お分かりの方ぜひご教授ください よろしくお願いします 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など