- ベストアンサー
パールスクリプトを呼び出すときのパスの指定について
わたしはあるインターネットのスクールに通っていたのですが パスについて頭が混乱しています。 CGIのコースのアクセスカウンターの授業で ディレクトリ構造が /usr/home/www/s1000000/cgi-bin/counter.pl となっているパールスクリプトをhtmlファイルのimgタグで呼び出すとき <img src="/usr/home/www/s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その1) と記述したらうまく動作せず、 <img src="/~s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その2) と訂正され、解決しました。 サーバのローカルルールでホームディレクトリのファイルは/~で呼びだせるように なっているようなのですが、それならば(その1)と(その2)は 同じことだと思うのです。 パスの相対指定はわかるのですが、絶対指定やurl指定がわかりません。 (その1)は絶対指定で(その2)はurl指定ということなのですか? (その1)と(その2)の違いは何ですか? なぜ(その1)では動作しないのですか? パスの根本的なところを知りたいです。 どなたか教えていただければ幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- dany
- ベストアンサー率35% (27/77)
- dany
- ベストアンサー率35% (27/77)
- supersonic
- ベストアンサー率52% (57/109)
関連する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
- 相対パスについて
初歩的なことですみません。 相対パスについて教えてください。 <public_html>---<cgi-bin>---<ccc>---<ttt.pl> *************| *************---<eee>---<test.html> こちらの構成で、(***は無視してください。) (public_htmlの下はcgi-binとeeeフォルダです。) test.htmlから見た、ttt.plのパスは ../cgi-bin/ccc/ttt.pl でよいのでしょうか?? CGIを設置する時、ディレクトリを変えたら、動かなくなってしまったので・・・ 宜しくお願いします。
- 締切済み
- CGI
- カウンターの画像が表示されない
無料カウンターの画像が「×」になります perlパスはusr/bin/perlです。 indexと同じ階層にdaycounterのフォルダをおきました。パーミッションはサーバーの方が HTML画像ファイル604 CGI実行ファイル700 CGIデータファイル600 .htaccessファイル604 ディレクトリ705 index.html ┃ daycounterフォルダ(755) ┃ img1フォルダ(701)━gif画像(604) ┃ img2フォルダ(701)━gif画像(604) ┃ cgi-lib.pl(600) ┃ counter.html(604)←使用しないそうです ┃ daycounter.cgi(700 ┃ daycounter.dat(600) ┃ gifcat.pl(600) そこのapeboardの設置を参考にしました。 http://www.lolipop.jp/?mode=faq&state=detail&genreid=6&faqid=000120 imgフォルダだけバイナリで転送してあります。 カウンターのソースは <IMG src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=total"><P> 本日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=today"> 昨日:<IMG align="absmiddle" src="http://127.0.0.1/yoshi/public_html/free_cgi/counter/daycounter/daycounter.cgi?mode=yesterday"> です。
- ベストアンサー
- CGI
- Postfixでメールを受信したらPerlスクリプトを実行したい
Solaris10で構築したサーバにて、ユーザー宛のメールを受信したら Perlで記述したスクリプトを実行したい為、下に記載の手順1及び2の 方法で受信メールを渡すパイプを記述したのですがスクリプトが実行されませんでした。 手順1,2共に他のメールアドレスへ転送させた場合、メールの転送は正常に行われました。 メールを受信したらPerlスクリプトを実行するには、どのように設定すればよいのでしょうか? main.cfやmaster.cfに更なる設定の記述が必要なのでしょうか? 主な環境は下記の様になっているのですが不足がありましたら御指摘下さい。 申し訳ありませんがよろしくお願いします。 【手順1】~/.forwardによるスクリプト起動 (1)~/.forwardに、下記の様な記述をしましたがスクリプト起動せず。 (.forwardの記述) (パターン1) \username,"|/home/username/test.pl" (パターン2) "|/home/username/test.pl" (パターン3) |"/home/username/test.pl" (パターン4) "|/usr/local/bin/perl /home/username/test.pl" ※下記のような転送は処理されました \username,username@test.ne.jp 【手順2】main.cf修正によるスクリプト起動 (1)/usr/local/etc/postfix/main.cfに下記行を作成 alias_maps = hash:/usr/local/etc/postfix/aliases,hash:/usr/local/etc/postfix/usr_alias (usr_aliasの記述) username: :include:/home/username/include (includeの記述) |"/home/username/test.pl" 他に上記.forwardの記述の4パターンを試しましたが全てスクリプト起動せずでした。 【サーバ環境】 OS:Solaris10(Sparc) MTA:postfix-2.5.3 【test.plの内容】 #!/usr/local/bin/perl open(DATA_FILE, "> test_log.txt"); print DATA_FILE "Test_OK!!!\n"; close(DATA_FILE); ※備考 ・保存場所:/home/username/test.pl ・パーミション:test.plと/home/username共に777 (オーナはusername) 【main.cfについて】 念のために allow_mail_to_files = alias,forward,include allow_mail_to_commands = alias,forward,include の記述を追加しています。
- ベストアンサー
- その他([技術者向] コンピューター)
- 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
- Perlをcshスクリプトに書きなおしたい
以下のPerlで書かれたCGIをcshスクリプトに書き直したく思っています。 #!/usr/local/bin/perl # load libraries require ("/usr/local/bin/cgi-lib.pl"); # cancel stdout buffering $| = 1; # header response print "Content-type: text/html\n\n"; print STDOUT "<HTML><HEAD></HEAD><BODY>\n"; &ReadParse; open(COMM, "|./message > ./message.out") || die; $in_text = $in{"Name"}; print COMM "Name: $in_text\n"; ... "Name"という変数名で受け取った文字列を$in_textに代入している ようですが、この辺りの処理、cshではどう書けばよいのでしょうか。
- ベストアンサー
- CGI
- biglobeでperl利用
biglobeのホームページにcgiを置きたいです。 GsMonというフリーのスケジューラーを設置したいのですが、 既にローカルサーバーでのテストはできています。 GsMon http://www17.ocn.ne.jp/~seiko/ Biglobeサポート http://homepage.biglobe.ne.jp/manual/shiyou/index.html より CGIの呼び出し方 http://www**.biglobe.ne.jp/~ホームページアカウント/xxxxx.pl 利用可能なコマンド 実行パス perl /usr/local/bin/perl とありますが インストール、初期設定時の画面で データディレクトリ (/user など) CGIの実行ディレクトリ (/Gsmon や CGIの呼び出し方[.pl]など実行ファイルは設定してない) ドキュメントルートからのパス の書き方がわかりません。 相対パスやHttpを含むパスを入れてみたのですが500エラーが出てしまいます。 biglobe側もCGIはサポート対象外ですし困ってます。
- 締切済み
- Perl
- CGIスクリプト 保存用ディレクトリ
ApacheというWWWサーバーでは、srm.confというファイル内に ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述し、かつaccess.confというファイル内に、 <Directory /usr/local/www/cgi-bin> </Directory> という記述を行うことで、/usr/local/www/cgi-bin/というディレクトリがそのCGIスクリプトの保存用ディレクトリになります。 と書いているのですが、どういうことかよくわかりません。srm.confというファイルはあらかじめ、パソコンにはいっているのでしょうか? ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述しと書いているのですが、何で記述したらいいのでしょうか。 すいませんが、教えてください。
- ベストアンサー
- その他(インターネット・Webサービス)
- 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
お礼
ご回答ありがとうございます。 すべてを理解することは今の私では難しいですが、 今回とてもためになりました。 もう少し勉強してみようと思います。 ありがとうございました。
補足
ご回答有難うございます。 あともう少し教えていただけますでしょうか。 ”<IMG>タグのSRCで指定するパスは全てURL指定”との事ですが、<FORM>タグのACTIONや<A>のHREFでCGIを呼び出すときも同様と考えてよろしいのでしょうか? よろしくお願い致します。