• ベストアンサー
  • すぐに回答を!

c言語とperlのcgi設定方法

(Arch linuxにてlighttpdサーバを立ち上げています) cgiは一般にperlが多いとは思いますが、C言語からのcgiも試みています perlによるcgiを有効にするにはlighttpd.confの設定に以下を追加  server.modules += ( "mod_cgi" )  cgi.assign = ( ".cgi" => "/usr/bin/perl")  static-file.exclude-extensions = ( ".cgi" ) C言語から作成したcgiを有効にするにはlighttpd.confの設定に以下を追加  server.modules += ( "mod_cgi" )  cgi.assign = ( ".cgi" => "")  static-file.exclude-extensions = ( ".cgi" ) 同一のサーバ下で「"/usr/bin/perl"」「""」ともにを有効にする設定方法はありますでしょうか よろしくお願いいたします

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数241
  • ありがとう数6

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

  • ベストアンサー
  • 回答No.2
  • Wr5
  • ベストアンサー率53% (2177/4070)

同じ拡張子で…ということかと思われます。>#1 で、該当のものを試したコトはありませんが…… >cgi.assign = ( ".cgi" => "") に設定して、perlの方は http://www.perl-labo.org/junbi/iamperl.htm の設定を行い、cgiファイルに実行可のパーミッション付けてみたらどうです?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

どちらもcgiで実行というわけにはいきませんでしたが、自分なりに解決しました やり方は ".cgi"=> "/usr/bin/perl", に "" を加えることが出来なかったため、 バイナリのcgiは.binでコンパイルし直し対処しました cgiについてもbinについてもよく分からないですが、とりあえずはブラウザで表示できました ありがとうございました

質問者からの補足

頭に#!/usr/bin/perlを付けても、HTTPサーバの設定でperlを有効にしていないと出来ないようなのです 「&」のようなもので並列に並べたりするやり方があればうれしいんですが・・・

関連するQ&A

  • 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> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • CGI設置時に500エラーになります

    CGIを設置しようとしたところ、500 Internal Server Error になります。 共用サーバーIDを使用しています。 CGIファイルは「cgi-bin」の中に入れています。 たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。 ↓ #!/usr/local/bin/perl print "Content-type: text/html \n\n"; print "Hello"; #!/usr/local/bin/perlを #!/usr/bin/perlにしても結果は同じです。 (サーバーの指定は#!/usr/local/bin/perl) パーミッションは755にしています(705に変えてもダメでした)。 CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。 それでも500 Internet Server Errorになります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

  • windows上でC言語のCGI環境について

    sea_clear_sky8です。 Windows上でC言語によるCGIを使える環境を作りたいです。 <環境> OS Windows98SE APACHE1.3 Boland BCC55 コンパイラ  APACHE1.3とBoland BCC55 コンパイラはインストールしてあります。 C言語の環境はPHPとPerlの環境と共存できるのでしょうか? PHPとPERLの環境も作ってあります。 C言語でも、PERLみたいに、コンパイルをし、ブラウザに出力する環境が つくれるのでしょうか? httped confのファイルに次を追加すると LoadModule cgi_module module/mod_cgi.so Cannot load c:/program files/apache group/apache/module/mod_cgi.so into server (1157) このアプリケーションの実行に 必要なライブラリ ファイルのうちの 1 つが見つかりません。: と表示されます。 Yahoo,Google、MSN等で調べましたが、解決方法がみつかりませんでした。 Windows上でのC言語によるCGIの作り方をご教授願います。 よろしくお願いします。

    • 締切済み
    • CGI

その他の回答 (1)

  • 回答No.1

Linx使いなら最低でもマニュアル読まなければ・・ 私がこの世界に入った当時は、マニュアル読めば分かることをメーリングリストやニュースグループで聞いたりすると、ひとこと "man!" とだけ帰って来た。今に皆優しいし、日本語のサイトも豊富だし・・  ⇒Lighttpd (日本語) - ArchWiki( https://wiki.archlinux.org/index.php/Lighttpd_(%E6%97%A5%E6%9C%AC%E8%AA%9E)#CGI )

共感・感謝の気持ちを伝えよう!

質問者からの補足

このページはすでに読んでいたのですが2つの言語で書いたcgi(cで書いたcgiとperlで書いたcgi)を同時に有効にする方法が分からず、質問させていただきました そういった方法も書いてありますでしょうか 私には読んでも分からなかったので、出来ればもう少し詳しく教えていただけますか よろしくお願いします

関連するQ&A

  • perlの設定の方法

    お世話になります。 コマンドプロンプトで実施すると C:\>perl d:\wwwroot\test.cgi hello world と返ってきますが、 URLにhttp://localhost/test.cgiとすると Forbidden You don't have permission to access /test.cgi on this server. と返ってきます。 windowsですので、permissionと言われても何を設定するのか・・・ 何の設定を実施すれば、CGIが動くのか教えて下さい。 まったく検討がつきません。よろしくお願いします。 環境は以下のとおりになります。 Apache/2.0.49 (Win32) [C:\Program Files\Apache Group\Apache2]にインストール PHP/4.3.4 [c:\php]にインストール This is perl, v5.6.0 built for MSWin32-x86-multi-thread [C:\usr]にインストール Windows XP pro SP2 test.cgiの中身 #!/usr/bin/perl # test print "hello world";

    • ベストアンサー
    • Perl
  • CGIの設定(UUENCODE)について教えてください

    大塚商会のホスティングサービスを始めようと思って現在仮会員になって無料体験をしているのですが、 ショッピングカート、CGIの設置でどうしても分らないのが# UUENCODEの設定(プロバイダに聞くこと) プロバイダの大塚商会には聞いてもお客様の自作のCGIについては受け答えできないとの返答です どなたか設定をした事がある方教えてください $UUENCODE = "/usr/bin/uuencode"; ↑ この設定でやってみたのですがうまく動作しませんでした または、大塚商会のホステイングサービスで使えるCGIのプログラムが、以下でしたが、もしかしたらこのUUENCODEはつかえないのでしょうか? Perl:Perl4及びPerl5がご利用可能です。  Perlのバージョンは、5.005_03 を利用しています。 パス:/usr/bin/perl sendmail(ご利用時の注意事項) パス:/usr/sbin/sendmail パス:/usr/sbin/sendmail_ssl ※SSL通信領域でご利用の場合 nkf パス:/usr/bin/nkf date パス:/bin/date もしかしたら、こんな程度では分らないのなら追記しますので宜しくお願いいたします

    • 締切済み
    • CGI
  • cgiの設定方法

    はじめまして、自宅でサーバーを立てようとしているのですが、つまずいてしまったので力を貸してください。 環境はRedhat9.0(?)、apache2.054を使用しています。 cgi自体はネットから落としてきた物を手始めとして使用してます。 /var/www/にcgi-binを作成、そこにcgiファイル等を格納しています。 cgi、perlファイルは705 ログファイルは606 ロックファイルは707にパーミッションを設定しています。 httpd.confは ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AddHandler cgi-script .cgi .perl <Directory "/var/www/cgi-bin"> allowoverride none options execcgi order allow,deny allow from all </directry> 上記のように設定しています。 HPを表示させようとすると 「InternalError」と表示され、先に進みません。 このサイトを検索し、アスキーモードで転送も行って見たのですが。。。 どなたかCGI設定方法をご教授お願いいたします。

  • cgi(perl)でパラメータが渡せない

    以下のプログラムでnum=9が伝わらないので、ミスをご指摘ください。 グラフィカルなアクセスカウンタを表示させようとしていますが うまくいかないのでテキストモードでデバッグしています。 [ /usr/local/apache2/htdocs/gif-view.html ] <html> <head> <meta http-equiv="Content-type:" content="text/html; charset=UTF-8"> <title>gif-view</title> </head> <body> <iframe src="/cgi-bin/gif-test.cgi?num=9"></iframe> <!-- <img src="/cgi-bin/gif-test.cgi?0" width=50 height=50> --> </body> </html> [ /usr/local/apache2/cgi-bin/gif-view.cgi ] permission は 755 にしています。 #!/usr/bin/perl print "Content-Type: text/plain;\n\n"; print "gif-test.cgi\n"; $prm0 = @ARGV[0]; if($prm0 = "") { print "Param is exist\n"; } else { print "Param is empty\n"; 実行結果として gif-test.cgi Param is empty となります。 httpd.conf で Script Alias /cgi-bin/ "/usr/local/apache2/cgi-bin/" を有効にしています。

    • ベストアンサー
    • Perl
  • すみません、二度目です。fedora core3でcgiが動きません。

    すみません、以前も質問したのですが、残念ながら解決に至らなかったので ここでまた質問させていただきました。お詳しい方のアドバイスをよろしくお願い致します。 cgi-binの中にauctというディレクトリを入れその中にあるindex.cgiにアクセスしたいのですが http://localhost/cgi-bin/auct/index.cgi とアクセスすると、500 internal server error となってしまいます。 httpd.confの設定は scriptalias /cgi-bin/ "/var/www/cgi-bin/"を                     ↓ alias /cgi-bin/ "/var/www/cgi-bin/"と変え(#は外しています)、 <Directory "/var/www/cgi-bin"> のoptionsをnoneからExecCGIにしました。 あと #AddHandler cgi-script .cgi の#は外しました。 scriptaliasをaliasに変えたのはindex.cgiにアクセスすると、同ディレクトリ内にある、start.shtmlというファイルを開くという設定になっているので、それをCGIと認識されないようにするためにしました。 そのほかはデフォルトの状態ですので、documentrootはvar/www/htmlです。 各CGIのperlのパスは#!/usr/bin/perlとしていて 実際そこにperlがあるか確認もしました。 設定した後httpdの再起動もしました。 error log は premature end of script headers: index.cgiと File does not exist: /var/www/html/favicon.ico となっています。 この設定でWindowsのapacheはCGIが動作したのですが、fedora core3ではうまくいかないのは どうしてでしょうか?アドバイスお願いいたします。

  • 「#!/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 --」としなければ絶対に動かないというのは、どういう場合に起こる現象なのですか?

    • 締切済み
    • CGI
  • C言語のapacheの設定

    apacheを使うとC言語で作ったプログラムもCGIで動かせると聞きました httpd.confをいじるとC言語でも表示されるらしいのですがいじり方が分かりませんでした。 どのようにいじればC言語を動かせますか? apacheのバージョンはapache_1_3_12_win32です。 普通の(perlでの製作)cgiの拡張子のは動かせます。

    • 締切済み
    • CGI
  • fedora core3でCGIがソースコードで表示されてしまいます。

    document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。

  • CGIが動かない

    /var/www/html/hoge.cgiを作りました。 ----- #!/usr/bin/perl print <<'END'; Content-type: text/html; charset=utf-8 <html> <body> <p>hoge</p> </body> </html> END ----- ターミナル上でperl hoge.cgiとやった場合も、実行権を与えて./hoge.cgiとやった場合も、出力はちゃんとなされました。 httpd.confにはExecCGIとAddTypeにより、ソーステキストがそのまま表示されていたのを、Internal Server Errorまでこぎつけたのですが、なんでエラーなのかわかりません。 CGIってもしかしたら所有者がrootだと動きませんか? あとはぜんぜん思い当たることがなくて・・・。 Redhat7.3 Apache1.3.23

  • 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