• ベストアンサー

www.URL 付のcgi を動かす

nipotanの回答

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.3

すみません。No.2のnipotanです。 回答後にコードを読んでいて間違いに気付いたので補足です…。 Socketを使う場合のコードにミスがありました。 >socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); という行は、正確には socket(SOCK, PF_INET, SOCK_STREAM, scalar(getprotobyname('tcp'))); としないとダメかも知れません。 ちなみに、 >my $test = 'http://master/'; というのは、私の手元の環境で/etc/hostsに加えているローカルコンテンツのURLを書いてしまいました ^^; $testという変数に、実行したいCGIのabsolute URIを代入すればOKです。 (テストしてみました)

naru
質問者

お礼

Socket の方法と両方試してみたのですが、LWP::Simple の方法であっさり動いたので、感激しました。 いい感じです。ありがとうございました!!!

関連するQ&A

  • cgi から cgi を実行する。

    cgi から cgi を実行するにはどうしたらいいので しょうか。 test.cgi の中で、 $test='/public_html/cgi/cookie/cooke.cgi'; open (test); print while <$test>; とやったのですが、うまくいかないようです。 cooke.cgi は、cookie を書き込むだけのcgiです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • 私の作ったCGIスクリプトを見てください。どこが間違えていますか

    アクセスありがとうございます。 Red Hat Linux8.0でサーバを構築してCGIスクリプトを実行しようとしているのですが、どうもうまくいきません。 私が作成したCGIスクリプトは次のようなものです。 ファイル名「first.cgi」 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>First CGI</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "文字を表示するCGIです。\n"; print "</BODY>\n"; print "</HTML>\n"; そして文字コードを「EUC」、改行コードを「LF」に変換しサーバにアップロードしました。 その後SSHでサーバにログインし $ chmod 755 /home/burn/public_html/first.cgi と「first.cgi」に実行権限を追加し $ /home/burn/public_html/first.cgi と作成したCGIスクリプトをテストしてみたのですが : bad interpreter: No such file or directory とエラーメッセージが表示されてしまいます。 「そのようなファイルやディレクトリはありません」というような意味でしょうか。 しかし、そんなはずはないと思います。 $ ls /home/burn/public_html first.cgi と「ls」コマンドを実行すれば「first.cgi」が表示されるのですから。 他に何かする必要があるのですか。 このCGIスクリプトを動作させるにはどうすればいいのか教えてください。

  • Linux7.2のApacheのCGIについて

    CGIを作成してアクセスしたところInternalServerErrorとなってしまいました エラーログを参照したところ Premature end of script headers; /home/tenchan/public_html/cgi-bin/test.cgi となっていました。 原因がわからず困っておりますもしおわかりの方いらっしゃいましたら教えてください。 アパッチの設定は以下の点を修正しました AddHandler cgi-script .cgiのコメントをはずしました <Directory "/home/*/public_html/cgi-bin"> Options ExecCGI </Directory> test.cgiの内容は #!/usr/bin/perl print "Contetnt-type: text/html\n\n"; print "<HTML><BODY>Hello</BODY></HTML>"; です コンソールで実行した際には「Hello」と表示されたので test.cgiには問題はないと思います また、Linux上で作成しましたので改行コードなどの問題はないと思うのですが 何か参考になるようなアドバイスありましたらよろしくお願いします。

  • apacheのCGI設定について教えてください。

    CGIの勉強のために、古いパソコンに fedora core 4 をインストールしてapache でローカルのテスト用サーバーにしようとしています。 /var/www/html に設置した簡単な perl CGI は動くのですが、同じものをユーザーのホームディレクトリに設置すると、internal server error になってしまいます。 ***** 以下 httpd.confの抜粋です。***** #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride All Options Includes ExecCGI FollowSymLinks SetHandler cgi-script </Directory> AddHandler cgi-script .cgi .pl ************************************** サーバーのエラーログを見ると Premature end of script headers: test.cgi となっています。htmlをprintしているだけのスクリプトで、/var/www/html では動くので、apache の設定の問題かと思っています。 ちょっとカテゴリーが違うかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • ユーザー毎のディレクトリでCGIを設置

    ユーザー毎のディレクトリでCGIを設置可能にしようとしているのですが、うまくいきません。 教えて下さい。 【環境】 Apache/2.0.40 Red Hat Linux 8.0 【httpd.confの設定抜粋】 DocumentRoot "/home/homepage/public_html" <Directory /home/homepage/public_html> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> <IfModule mod_userdir.c> UserDir public_html </IfModule> <Directory /home/*/public_html> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> #ScriptAlias /cgi-bin/ "/home/homepage/public_html/cgi-bin/" 【.htaccessの設定】 AddHandler cgi-script .cgi Options +ExecCGI 以上のような設定で #!/usr/bin/perl print "Content-type: text/html\n\n"; print "hello"; こんなCGIをつくって実行してみました。 /home/homepage/public_html/cgi-bin/においたものはうまくいくのですが /home/user/public_html/cgi-bin/においたものはエラーになってしまいます。 エラーの内容は↓のとおりです。 Server error! The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: hello.cgi If you think this is a server error, please contact the webmaster Error 500 perlのパスは間違ってないし、パーミッションも755にしてあります。 どうすればいいのか分からず困っています。 どこを調べれみればいいのかだけでも教えていただけると助かります。 よろしくお願いします。

  • RedHatLinux9でCGIがうまく動きません。

    RedHatLinux9でApache2x系なのですが、CGIがうまく動きません。 Server error! The server encountered an internal error and was unable to complete your request. Error message: Premature end of script headers: test.cgi error 500 が出てしまいます。 行った作業としては、 # UserDir public_html の#をはずす #AddHandler cgi-script .cgi の # を外す. # <Directory /home/*/public_html> <略> # Options MultiViews .... <略> # </Directory> の3カ所の # を外し,Options に ExecCGI を追加. /usr/sbin/suexec を削除 という、こちらの掲示板に書いてあった作業を行いました。cgiがまず動くのかどうか確かめるために /var/www/cgi-bin/ にtest.cgi(ほかのサーバで検証したcgiです)を送りましたが見れなかったです。 http://サーバのIP/cgi-bin/test.cgi でよいんですよね、上のcgiを確かめるパス。 これが間違ってたら。。。動かしたいのは一般ユーザの中でcgiが動くようにしたいのです。 パーミッションも問題なかったです。お願いいたします。

  • 自CGIのURLのパス部分を取得する方法

    CGIのURLが http://example.com/test/test.cgi だったとして、自身のURLのパス部分(http://example.com/test/)を出すには どのようにしたらいいでしょうか。 CGIモジュールでURLを取得して 最後の/まで切り取る方法もあるかと思いますが そのURLを取得するのと同じくらい、スマート?に出来ないでしょうか。 アドバイスのほどよろしく御願いします。

    • ベストアンサー
    • Perl
  • Apacheでcgiができないんです。

    以下のホームページと同じように、設定したのですが。。。 http://www.futomi.com/lecture/apache/config.html 下のcgiは実行できます。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>Apache</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "<H2>Welcome to my computer, Apache Server!</H2>\n"; print "</BODY>\n"; print "</HTML>\n"; しかし、下のcgiは実行できません。htmlファイル、cgiファイル共に、あるホームページからコピペしたので、間違いないと思います。ここではhtmlファイルは書きませんが、以下のURLです。 http://www2j.biglobe.ne.jp/~apollo/server/apacuse.html #!/usr/local/bin/perl $countfile= "count.dat"; open(IN, "< $countfile"); $count = <IN>; close(IN); $count++; open(OUT,"> $countfile"); print OUT $count; close(OUT); print "Content-type: text/plain\n\n"; print $count;

    • ベストアンサー
    • CGI
  • htaccessで静的URLを動的URLに書き換え

    SEO対策としてcgiで動的に表示されるページを静的なURLで記載したいと思っております。 htaccessを使えば可能なようですが、http://www.aaa.com/tokyo/sibuyaのURLでhttp://www.aaa.com/cgi-bin/test/search.cgi?pref=tokyo&city=sibuyaを実行するにはどのように記載したらよいのでしょうか。 *tokyo,sibuyaの部分には任意の都道府県、都市名を入れたいです

  • 無料サーバーでパスワードCGI設置

    はじめまして、今、パスワード制限付きのホームページを作成しようかと 思っているのですが、どこの無料サーバーでも規約でパスワードCGI禁止と 書かれていて大変困っています。検索しまくった結果、「トクトク」と言う サーバーにHITしたのですが、 http://tok2.com/ ここでのCGI設置がかなり難しくて、もう1ヶ月も苦戦していまだ成功していません。ブザマな姿を見てやって下さい http://www37.tok2.com/home/netdehost/public_html/cgi-bin/sblu1_bbs.cgi ここのサーバーは諦めて、ちがう無料サーバーに変えたいのですが、 どこかパスワードCGI設置可能な無料サーバーはないものでしょうか? どうかお助けを~、、、