• ベストアンサー

apache でバイナリのCGIを動かすには

millionwalkerの回答

  • ベストアンサー
回答No.3

見たところおかしいところはなさそうなのですが。 Apache1.3.12をWin98上で使っていますが、同じようなことをしてもまるで問題なく動作しています。 試しに同じことをやってみましたが問題ありませんでした。コンパイラはVC6を使用しました。 参考にならなくてスミマセン。

kokucho81
質問者

お礼

ああ~、それでわかりました!!!! Apacheの設定も間違っていないし、プログラムも間違ってはいなかったのです!!! 私が使用しているのは1994年型の Borland C++ 4.02j です。 (VC++6.0 Enterpriseも持ってはいるのですが・・・BC++がお気に入りで・・・) BC++は同じプログラムソースに対して、 DOS16スタンダード DOS16オーバレイ WIN32コンソール WIN32グイ とできるのですが、普段からCGIプログラムではDOS16スタンダートを使用していました。これが原因だったみたいです。 『Nakata氏の An HTTP D』はかなりWindowsに対して高い柔軟性があるみたいで16bitプログラムでも問題なくCGIとして動くのですが、Apache(1.3.12)はどうやら動かないようです。WIN32コンソールとしてコンパイル・リンクすると、あっけなく動きました。 以前Apacheを使用していたときには、C++系のプログラムCGIがApacheでも動いていたのでおかしいな~と思っていたのですが、そのときには『Cygwin』でのG++で普通にコンパイルしていたので、自動的にWin32コンソールとなっていたのでApacheでも問題なく動いていたのでしょう。

関連するQ&A

  • CGI

    MacOS10.10のApache2でCGIが動きません。 httpd.confの最後にこう記述してます。 <VirtualHost *:80> DocumentRoot "/Users/ユーザー/Sites/www" ServerName ドメイン <Directory /Users/ユーザー/Sites/www> AllowOverride All Options Indexes MultiViews ExecCGI FollowSymLinks AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .pl .cgi DirectoryIndex index.html index.htm index.cgi </Directory> </VirtualHost> 記述は合ってると思うんですが……どこが間違ってるのでしょう?

    • ベストアンサー
    • Mac
  • cgi-binにアクセスできない

    apache初心者です。 Turbolinux6.0+apache1.3.12でHTTPサーバを試しているのですが、 cgi-binにあるファイルを見ようとするとHTTP 403エラーが出て表示できません。 属性とグループを色々変えてみたんですが、だめでした。 access.confで関係ありそうな所は <Directory /> Options None AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/html> Options Indexes Includes FollowSymLinks AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/cgi-bin> AllowOverride None Options FollowSymlinks ExecCGI order allow,deny allow from all </Directory> としていますが、なぜcgi-binの中身が見えないのかわかりません。 よろしくおねがいします。

  • 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
  • apacheのCGI設定

     pc9821にFreeBSD(98)をいれapache1.3を起動させています。cgiはlight.cgiというソフトをつかっています。なかなかcgiがうまくいきません。参考ページには public_html / index.html (トップページ) | +-- bbs / light.cgi [755] | admin.cgi [755] ・・・・(省略) +-- lock [777] / | +-- past [777] / 0001.cgi [666] とかかれていますが、実際に私のサーバーにはpublic_htmlというフォルダは存在していなくて /usr/local/www/cgi-binにbbsというフォルダをつくり あとは上のようにしています。またindex.htmlは/usr/local/www/dataのなかにいれて表示してWebサーバーとしてはたらいています。またapacheの/usr/local/etc/apacheのhttpd.confは 関係ありそうな行だけあげると ServerRoot "/usr/local" DocumentRoot "/usr/local/www/cgi-bin" <Directory "/usr/local/www/cgi-bin/bbs"> Options Indexes FollowSymLinks MultiViews <location "/cgi-bin/"> Options ExecCGI AllowOverride AuthConfig Limit Order allow ,deny Allow from all </Location> <IfModule mod_mime.c> TypesConfig /usr/local/etc/apache/mime.types ADDHandler cgi-script .cgi </IfModule> ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/" <Directory "/usr/local/www/cgi-bin/bbs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi どこがおかしいのかおしえていただけないでしょうか?

    • ベストアンサー
    • CGI
  • CGIが動きません!!

    CGIが動きません。htmlを表示できる状態です。 エラーログには「 couldn't spawn child process: g:/program files/apache group/apache/cgi-bin/hello.cgi」と表示されています。 どうしたら良いのでしょうか? windouw NT 4.0 + Apache version 1.3.19 + Active Perl version 5.005_03 です。 perlの構文チェックは問題なしです。 httpd.confの設定は下記のようにしました。 1.AddHandler cgi-script .cgi を追加。 2.オプションの設定にExecCGIを追加。 <Directory "G:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory>

  • xamppでcgiが動かない

    Mac OS10.6.8でXAMPPをインストールした後 htdocs/test/というフォルダを作って http://test/ となるような環境を作りました。 httpd-vhosts.confファイルには <VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/test" ServerName test </VirtualHost> <Directory "/Applications/XAMPP/xamppfiles/htdocs/test"> Options Indexes FollowSymLinks MultiViews Includes ExecCGI AddType text/html .shtml .html AddHandler server-parsed .shtml .html AddHandler cgi-script .cgi .pl AllowOverride All Order allow,deny Allow from all </Directory> このように記述しております。 http://test/test.cgiにアクセスしたら Error message: Premature end of script headers: test.cgi このように言われてしまいました。 これは何が原因なのでしょうか? パスが間違っているのかな?と思ったのですが、XAMPPを使った場合 test.cgiファイルのパスはどうすればいいのでしょうか? よろしければ教えて下さい。 ※ とりあえず usr/bin/perl としました。

  • CGIの500エラー

    玄箱Proの中にDebianを入れ,SSHでの公開鍵認証の設定,Apacheの導入を行いました. ネットにはつながり,OSのアップグレードや時刻の同期なども行えます. DDNSサービスにて無料ドメインをとり,外部からHTML文書にアクセス,表示させることもできました. しかしCGIファイルだけが外部からだと500エラーを返して表示されません. 外部へのアクセスチェックとして,プロキシをかましてアクセスしています. (ルータをかましているのでグローバルIPにアクセスしてもルータ管理画面にいってしまう為) /etc/apache2/sites-available/default の Options Indexes FollowSymLinks MultiViews AllowOverride None を Options Includes ExecCGI FollowSymLinks MultiViews AllowOverride All に変更, /etc/apache2/apache2.conf の AddHandler cgi-script .cgi .pl ここのコメントアウトをはずしました. エラーログでは Premature end of script headers: test.cgi と表示されており, Perlへのパス,改行コード,パーミッションはチェックしましたが問題ありませんでした. 他に見直すところはあるでしょうか? よろしくお願いします.

  • Apache2.0とActivePerl5.8でCGIが動作しない

    ご教授願います。  掲題の通り、Win2000ProにApache2.0.48、ActibePerl5.8.1.807をインストールしローカル上にてApacheの動作確認は出来ました。  色々なサイトを調べ、現在のhttpd.confは下記のような設定となっています。 【httpd.confの主な変更点】  1:DocumentRootは別ドライブのフォルダ(C:ではない)に変更(httpd.confのファイル、229行目あたり)  2:同様に<Directory>も1と同じフォルダ(httpd.confのファイル、255行目あたり)  3:Options Indexes FollowSymLinks MultiViews ExecCGI Includesと変更(httpd.confのファイル、269行目あたり)  4:ActivePerlのインストール先は「C:/usr/local/」です。  5:test.cgiの格納場所は1で指定したフォルダと同じです。 【症状】  ブラウザのアドレスに「http://localhost」を入力するとApacheの動作確認画面が出ますが、「http://localhost/test.cgi」を入力すると『Forbidden You don't have permission to access/test.cgi on this server」と表示されます。 知識不足で申し訳ございませんが、よろしくお願いいたします。

  • apache の設定

    ホームページを置いているディレクトリで、index.html がない場合に ディレクトリの中身が見えてしまうので、httpd.conf を修正しました。  <Directory /home/hogehoge> Options All </Directory> から  <Directory /home/hogehoge> Options Includes FollowSymLinks ExecCGI </Directory> で、Indexes をとったつもりで、apache をリスタート させたのですが、それでもディレクトリの中身が見えてしまいます。 何か、勘違いしているのでしょうか??? また他に行うことがあるのでしょうか。 教えて頂けますでしょうか。 よろしくお願い致します。

  • CGIの設置ができません。

    Apacheのhttpd.confを設定して、aska.cgiという掲示板を動かそうとしているのですが、うまく動きません。 色々調べた結果、httpd.conf内のOptionというところにExec CGIを追記すればいいとのことだったので、 <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> としましたが、 Options ExecCGI is off in this directory: C:/Program Files/Apache Group/Apache2/htdocs/aska/aska.cgi, referer: http://localhost/aska/ とerror.logには表示されてしまいます。 ちなみにaska.cgiは C:/Program Files/Apache Group/Apache2/htdocs/aska/ に入っています。 よろしくお願いします