第五弾——apache配置fastcgi&C/C++


前回はfastcgiを簡単に紹介しましたが、この記事ではfastcgiの使い方について説明します.
apacheでfastcgiモジュールを構成するには、次の手順に従います.
まずfastcgiモジュールをインストールする必要があります.公式版はとっくに更新を停止しています.だから、apacheが持っているfcgidを使っています.ダウンロードします.
#wget http://www.apache.org/dist/httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz

これは最新バージョンです.ダウンロード完了後の解凍
#tar -zxvf mod_fcgid-2.3.9.tar.gz

そしてフォルダに入ります
#cd mod_fcgid-2.3.9

ここで覚えておきたいのは、フォルダのconfigure接尾辞の名前がapxsで、開くと中のパスが設定されていないことがわかりますので、
#APXS=/usr/local/apache/bin/apxs ./configure.apxs

ここのusr/local/http/bin/はあなたのインストールアドレスで、終わったらできます.
./configure
make
make install

完了してから構成を開始しますが、実は構成も簡単です.
<Directory "/usr/local/httpd/cgi-bin">  
    AllowOverride None  
    Options Indexes ExecCGI   
    Order allow,deny  
    Allow from all  
Directory>  

AddHandler cgi-script .cgi .py  

よしhttpdを再起動
service httpd restart

Cのcgi実現:
#include "fcgi_stdio.h"  
#include   

void main(void)  
{  
    int count = 0;  
    while(FCGI_Accept() >= 0)  
    printf("Content-type: text/html\r
"
"\r
"
"FastCGI Hello!" "

FastCGI Hello!

"
"Request number %d running on host %s
"
, ++count, getenv("SERVER_NAME")); return 0; }

そしてコンパイル
gcc -o fcgi_test.fcgi cgi_test.c -I/usr/local/include -L/usr/local/lib -lfcgi

fcgiが見つからないとヒントを与える人もいるかもしれません.stdio.h筆者はいろいろな方法を試しても解決できず、最後に原版のfastcgiをインストールし、持参したfcgiを使用しました.stdio.hやっと問題を解決した.(私のリソースをダウンロードすることができて、直接winの下で解凍して、linuxの上で直接インストールすることができます)このダウンロードをスタンプします