• ベストアンサー

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みながら苦戦してます。 シロウトですいません。

  • legs
  • お礼率92% (1500/1623)
  • Perl
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.3

補足説明です。 #! は、シェルに実行すべきプログラムを教えるための指示です。 #!/usr/bin/perl と書くと、これ移行に続く文章(スクリプト)は、/usr/bin と言う場所にある perl と言うプログラムに引き渡してくださいな。 と、シェルに依頼している。と言う意味があります。 サーバーによって、perl などのプログラムを格納しているパスが異なっている場合があるため、KENT WEB さんは、 #!/usr/bin/perl の部分を、そのサーバーにあわせて書き換えて下さいね。 と言うことを言わんとしているのです。 ちなみに、この指定を書き換える必要があるファイルは、直接実行されるスクリプトファイルのみです。それ以外のファイルは書き換える必要はありません。(書き換えても、悪さはしませんが。) CGI作者でも、シェルの事まで意識して説明して居られる方は少ないですね。致し方ないのかも知れません。

legs
質問者

お礼

ありがとうございました。 内容がわかると、応用がききますよねぇ。 なぜ、そうなるとかとか、、。 こんなに詳しく書いてもらい感謝しております。

その他の回答 (2)

noname#25358
noname#25358
回答No.2

 最初から #!/usr/bin/perl になっているなら、何もする必要はありません。  フリーのCGIは、たまに #!/usr/local/bin/perl になっているので、その場合だけ書き換えます。

legs
質問者

お礼

ありがとうございます! なるほど、localはいらないんですね! 同じだと思ったら違ってました。 やれやれってかんじです。 どうもでした。

  • sisya
  • ベストアンサー率39% (97/245)
回答No.1

legsさんの推測で正解だと思います。 「このレンタルサーバのperlのパスは/usr/bin/perlだから、  プログラムの先頭には#!/usr/bin/perlと付けてください」 と言う意味です。

legs
質問者

お礼

さっそくのお答えいただきありがとうございました。 やっぱりそうだったんですねぇ。 これで週末やってみます!!

関連するQ&A

  • 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のテキストが表示されています。 色々調べてやったのですがどうもうまくいかず 教えていただけませんか

  • CGIのパス /usr/bin/perl--

    こんにちは。CGIの最初のパス名をusr/bin/perl --と「ーー」をつけないと動かないCGIがあります。「ーー」はなんの意味なんなのでしょうか?

    • 締切済み
    • CGI
  • UTF-8で書いたperlのパスが正しく読まれない

    元々htmlファイルもcgiファイルもShift-JISで書いていました 英語環境に変えようと、UFT-8にすべくEncordingConverterでファイルを変換しました htmlファイルは文字コード指定も当然UFT-8にし、アップして表示させてみたところ問題なく表示されました しかし、cgiファイルの方が正しく表示されず、perlチェックをしてみたところパスが ・ソ#!/usr/bin/perl となっていました これが原因で正しく表示されなかったようです そこでcgiファイルをテキストエディタで開いてみたのですが、そのエディタ上では #!/usr/bin/perl と本来あるべき正しい表示になっています 文字コードもUTF-8形式になっています どうしれやればきちんと読み取ってもらえるのでしょうか? エディタで開いても「・ソ」の部分が表示されないのでなおしようがなく困っています どなたか解決方法お分かりの方ぜひご教授ください よろしくお願いします

    • ベストアンサー
    • CGI
  • CGIの使い方について教えてください

    CGIの使い方について教えてください。 自分が運営しているホームページに掲示板を作成したいので、以下のCGIを使うことにななりました。ですが、初心者のためうまく出来ません。詳しい方、教えてください。 http://www.kent-web.com/bbs/joyful.html? joyful.cgi を エディタ で開いて以下の箇所を修正します。 #!/usr/local/bin/perl  (プロバイダで定められたPerlへのパスを指定します) と説明されていますが、Perlの意味が解りません。これは一体なんでしょう? 設定のやり方等を詳しく教えてください。

  • FreeBSDのperl

    自分のPCでCGIが動かずに苦戦しているのですが 環境はpc9821にFTPでインストールしてUSER環境を 選択しています。この環境でperlへのパスをCGIを使うためのファイルを/usr/bin/perlに指定していたとおもうのですがperlはきちんとうごいているのでしょうか? USER環境にはperlははいっていないということはありませんでしょうか?よろしくおねがいします。

  • FC2にwebPatio設置の方法

    カテゴリはこちらでよかったでしょうか? 無料のホームページを置けるFC2に webPatio(スレッド式掲示板、http://www.kent-web.com/bbs/patio.html)を置こうとしています。 webPatioの説明にあるように patio.cgi, regist.cgi, read.cgi, admin.cgi, registkey.cgi を #!/usr/local/bin/perl(プロバイダで定められたPerlへのパスを指定します)ということで FC2なので #!/usr/bin/perlに変更しました。 FFFTPを使い,まずcgi-binフォルダを作成しその中にpatioフォルダを転送しました。 *-------------- i index.html cgi-bin>patio>patio.cgi等・・・・ *-------------- 次にパーミッションはFC2のcgiは全て755ということで、その値に設定(tapioの説明書と違う値) 「チェックモード」で動作チェックをしましたが(http://~~.web.fc2.com/cgi-bin/patio/patio.cgi?mode=check) 「アクセスする権限がありません」となります。 http://www.kent-web.com/support/old/64/0265.htmlを参考にやってみましたが、結果はおなじです。 どなたか、教えて頂ければありがたいです。

    • ベストアンサー
    • CGI
  • プロバイダで定められたPerlへのパス、って。。?

    お世話になっております<m(__)m> HP作成で、パスワード制限をかけてみたくて、 http://www.kent-web.com/pwd/login.html 上記のページを参考にしようとおもいました。 スクリプトを修正しなければ使えないみたいなのですが、 ******************************* 主なスクリプトの修正個所は以下のとおりです。  #!/usr/local/bin/perl  (プロバイダで定められたPerlへのパスを指定します)  $pass = '0123';  (認証用のパスワードを半角英数字で指定します) ***************************************** と、説明があるのですが、 まったくちんぷんかんぷんです。。(涙 HP作成するサーバーはヤフーなのですが、 プロバイダーでさだめられた。。 って。わたしの使っているプロバイダーはOCNですが。。 初心者の私にもわかりやすくおねがいいたします<m(__)m>

    • ベストアンサー
    • CGI
  • PATHいついて

    ShellScriptの中で Perlを呼び出して動かそうとしています。 Command not foundと返ってきてしまいます。 ShellScriptの先頭には、 #! /bin/bash が入っています。 また、$PATHを見てみると、 bash: /usr/local/bin:/usr/bin:/bin:..... となっています。 後、何をチェックして、正せば良いのでしょうか? よろしくお願い致します。

  • DebianのApache(掲示板)CGIエラー 500エラー

    debianでkent-webさんのASKA BBSを使いたいんですが うまくいきません http://www.kent-web.com/bbs/aska.html aska BBS rootで/lib/usr/cgi-binに移動してvi test.cgi ------------------------------- #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; -------------- を試して http://192.168.1.12/cgi-bin/test.cgi は動くんですが which perl /usr/bin/perlです パスはあっています 本題のBBSをデスクトップにDLし tar -xvzf 解凍をし rootで/usr/lib/cgi-bin/に aska.cgi askalog.dat jcode.plを置き パーミッションをhttp://www.kent-web.com/bbs/aska.htmlにあわせて わらかないのでsuEXECサーバ CGIWrapサーバ用のパーミッションと一般サーバを両方ためしてみたんですが http://192.168.1.12/cgi-bin/aska.cgi?mode=checkで試したんですが 500エラーがてしまいます ちなみにaska/aska.cgi?mode=check のaskaフォルダは作らず cgi-bin/aska.cgiです かわらなそうなので http.confの設定は <IfModule mod_alias.c> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ # # "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory /usr/lib/cgi-bin/> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </IfModule> AddHandler cgi-script .cgi .sh .pl ちゃんと#を外してあります それとほかの質問者の方を参考にしたんですが mod_aliasなんたら モジュールとかよくわからず apt-cache search module cgiなどといろいろ探したんですが無く これのperlのパスをわざと間違えさせてやっると500でエラーが出るってことはちゃんと動いてるはずだと思うんですが ちゃんともどすとhelloと表示されます 間違えーー>#!/hogehoge/hogehge/perl 元-->#!/usr/bin/perl #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; それと疑いがあるのが aska.cgiのパスはちゃんと/usr/bin/local/perlを whichでみたperlのパス /usr/bin/perlに設定したんですが 動かないみたいです もしかしてgnome-text-editorなどviで開くと文字コードがかわったりしてだめなんでしょうか? もう思い当たる節がありません どなたか詳しい方教えてくださいお願いします

  • パス??

    BIGLOBEで自作HPをつくっています。CGIのサンプル集を買ってきて、とりあえず適当なモノをUPしてみました。 アクセス権の変更など一通りの事はBIGLOBEの規格に合わせたのですが、forbidden となります。 パス一覧にサンプルCGIの /usr/bin/perl ↑というのが無く /usr/local/bin/perl なら使えるそうなので強引に /local を外してUPしましたが、やはりうまく作動しません。 どうしたら良いのでしょうか? そもそもパスってなんなのでしょうか? ご教授の程、宜しくお願いいたします。

    • ベストアンサー
    • CGI