• ベストアンサー

Perlのアドレスについて

はじめまして、 Webサーバー初心者です。 CGIを動かすモジュールを入れて実際自分のサーバーでCGIを動かそうと思ったんですが、CGIのプログラムの頭にある「#!user/local/bin/user」(←例です)などのアドレスの指定がよくわかりません。よく、レンタルサーバーとかであると「うちのPerlのアドレスは#!user/local/bin/user」ですなどと表示されていたりしますが、今回は自分がサーバーなのでほかのユーザーがPerlを使うときにアドレスを指定してあげないといけません。どうしたら自分のサーバーのPerlの場所の指定ができるのでしょうか?(ようは,私の場合どのようなアドレスになるのかが知りたいわけです) ちなみにPerlのインストール先は「C:\Perl」でソフトは「Active Perl」を使用しております。サーバーのOSはWindowsXP(Pro)です。 よろしくお願いします。

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

  • ベストアンサー
noname#9381
noname#9381
回答No.2

#!/Perl/perl でOKです。HTML文に対するCGIとして使う場合、WEBサーバソフトが同じパーティションにインストールされていることが条件です。  perlはウィンドウズのパスのディレクトリ区切り「\」をUNIX流に「/」に置き換えて解釈しています。  なので、 C:\Perl\perl.exe は /Perl/perl  でOKです。

jonjonxp
質問者

お礼

やってみましたがだめでした。Windowsじゃ微妙なのかもしれませんね。ありがとうございます。

その他の回答 (5)

noname#9381
noname#9381
回答No.6

環境変数は、マイコンピュータを右クリックして、プロパティを開き、詳細設定タブのなかに「環境変数」ボタンがあるので、それをクリックすると設定画面が表示されます。

jonjonxp
質問者

お礼

ありがとうございます。

  • Yupa3
  • ベストアンサー率37% (190/513)
回答No.5

可能性としてですが、 WindowsXPの環境変数「Path」にPerlへのパスが設定されているでしょうか? 私のは「D:\Perl\bin\」と指定されてました。 jonjonxpさんの場合は「C:\Perl\bin\」となっていればいいはずです。 Windowsではこれが指定されていなければPerlは動かないはずです。ご確認を。

jonjonxp
質問者

補足

お恥ずかしいですが、環境変数はどこで設定するのでしょうか?

  • Yupa3
  • ベストアンサー率37% (190/513)
回答No.4

WindowsでPerlを使ってテキスト処理の為のスクリプトを作ってます。環境はjonjonxpさんと同じでWindowsXP(Pro)、ActivePerlを使ってます。Perlインストール先はD:\Perlです。 私の場合、 #!/usr/bin/perl で問題なく動いてます。パスとして意味があるのかはよくわかりません。ActivePerlの場合、ただ「このスクリプトはPerlである」というだけの意味かもしれません。 Apacheを使ったこともありますが、同じでした。YukiWiki(結城浩氏作成のPerlによるWiki)をその環境で動かしたこともあるので、問題ないと思います。

参考URL:
http://www.hyuki.com/yukiwiki/
jonjonxp
質問者

お礼

ありがとうございます。返信送れて申し訳ございません。なぜか分かりませんが動きませんでした。原因はまったく分かりません。

  • toshi7607
  • ベストアンサー率12% (60/482)
回答No.3

Windows上でUnixライクに使いたいのであればCygwin等が便利です。 Shellがインストールされるので、 #!user/local/bin/userも使えるようになります。

jonjonxp
質問者

お礼

ありがとうございます。参考にさせていただきます!

  • strife
  • ベストアンサー率53% (112/209)
回答No.1

#!はunixの機能なので、残念ながらwindowsでは使用できません。

関連するQ&A

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

    • ベストアンサー
    • Perl
  • #!/usr/local/bin/perlとしたい

    WindowsXP上でCGIを動作させる環境を構築しています。 しかし、サーバにアップロードする際にいちいちPerlパスを変更するのが 面倒なので、「#!/usr/local/bin/perl」と、基本的なディレクトリ指定にしたいです。 (サーバそうでなければ結局指定し直しですが) 現在、「#!c:/perl/bin/Perl」で動かしています。 どうすれば出来るでしょうか?ご教示願います。 ちなみにApacheは2.0.55です。

    • 締切済み
    • CGI
  • PERL 宣言文 -wについて

    Perl初心者のWEBサーバエンジニアです。 サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。 【サーバ環境】 perl実行パス      /usr/local/bin/perl シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl ソース記述       #!/usr/bin/perl ヴァージョン      5.8.5 perl実行環境      http://△△△.jp/cgi-bin/ ※apacheのスクリプトエイリアス指定 options +ExecCGI -Include SetHandler cgi-script 上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。 ファイルは以前動作したサーバから引っ張ってきました。 原因を探っていたのですが、cgiファイルのソース記述を #!/usr/bin/perl -w と記述を変更すると正常に動作しました。 -w について 【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】 と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。 なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • FreeBSDのperl

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

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

  • IIS+Activeperl データファイル等を絶対パスでしか受け付けてくれません

    Windows2000serverの IIS5.0(だと思います、バージョンの見方が良く分かりません) ActivePerl5.6.1を導入した環境です。 このまえ、Windows2000serverのマシンを入れ替え、 新規にperlをインストールしなおしました。 それでwebページをすべて移動して稼動し始めたのですが、 一部動作しないCGIがあるのです。 調べてみると"./"ではじまるデータファイルやモジュールの読み込みを しているCGIがことごとく動作してませんでした。 データファイルやモジュールを c:\usr\local\bin\perl\libに移動して"./"を削除するか ファイルの指定を "C:\Inetpub\wwwroot\cgi-bin\secure\wforum\wf_log.cgi"のように フルパスで指定しないと動かないのです。 サーバ移転前はちゃんと動いてたのですけど・・・。 いったい私は何の設定を忘れてるのでしょうか。 ややこしい説明ですみませんがよろしくお願いします。

    • ベストアンサー
    • Perl
  • プロバイダの指定する所定のディレクトリかまたは、 所定のCGI専用サーバがない場合のGGIの設置について

    自作CGI設置可能なレンタルサーバーでプロバイダの指定する所定のディレクトリや、所定のCGI専用サーバがない場合はどうすればいいですか?自分でディレクトリを作成するのですか? たとえばその場合、パーミッション#!/usr/local/bin/perl はどう変えればいいですか?

    • ベストアンサー
    • CGI
  • Mac(snowLeopard)でPerlでウェブアプリケーションを作

    Mac(snowLeopard)でPerlでウェブアプリケーションを作成しています。 まずは、web共有サーバーで自分のローカルアドレスを設定し、簡単なcgiスクリプトを書いて(Print関数の記述)、ブラウザでアクセスしたのですが表示されません。 アドレスは以下ですが、この前に何か指定しなければいけないのでしょうか? または階層の表記が間違っていますか? http://XXX.XXX.XX.X/Library/WebServer/CGI-Executables/◯◯◯.cgi

    • ベストアンサー
    • Mac
  • Perlからrshでvxquotaを実行する方法

    はじめまして。Perlの質問です。 サーバAの/usr/sbin/vxquotaをサーバBで動いているWeb(perl/cgi)から 起動したいのですがpermission deniedのエラーがでて動きません。 サーバBからコマンドで、rsh サーバA /usr/sbin/vxquota -v ユーザID とすれば動きます。 サーバBのCGIはprintf "I am %s.\n",(getpwuid($>))[0];で確認し、 rootで動いています。 このサーバBのPerlで、 system("/usr/local/apache/cgi-bin/DISK/vxquota.csh $user"); として rsh サーバA /usr/sbin/vxquota -v $1(上のvxquota.cshの中身) を実行しようとするとうまく動きません。 このようなことは、Perl(CGI)ではできないのでしょうか? 何かよい方法がありましたら、アドバイスをお願いいたします。

  • ApacheがPerlを作動してくれないのです。。。

    CGIテストのためにローカルにサーバーマシンを立てました。サーバーはApacheを使用しPHPとPerlをそれぞれインストールしました。 PHPは正常に動いてくれますがPerlだけが何回やってもyou dont have a permission ~~~と表示されます。 ためしにコマンドでperl -v と打ったら正常にPerlは作動していました。ちなみにPerlは C:Perl\bin\perlになっておりCGIスクリプトにも #!C:Perl\bin\perlと表示しています。又、confも各サイトを見てCGIが動くようにしっかり編集しました。 どうすれば動くようになるのでしょうか?