qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          C語(yǔ)言CGI和Apache服務(wù)器的開(kāi)發(fā)環(huán)境

          今天中午在研究c語(yǔ)言gui時(shí)看到了cgi。之前花了些時(shí)間找c語(yǔ)言的gui框架,也找到了幾個(gè)暫時(shí)比較滿意的,但是看到了cgi后覺(jué)得也可以嘗試一下。在web開(kāi)發(fā)方面有點(diǎn)經(jīng)驗(yàn),或許會(huì)簡(jiǎn)單一些。Google了一下,現(xiàn)在討論cgi,尤其是c語(yǔ)言cgi的話題已經(jīng)很少了,花了些精力,總算搭建好了一個(gè)可用的開(kāi)發(fā)環(huán)境,也運(yùn)行出了程序。下面簡(jiǎn)單分享一下,我的實(shí)驗(yàn)過(guò)程。其實(shí)是很簡(jiǎn)單的事情。

            首先,需要用到的這些工具和代碼:

            C語(yǔ)言編譯器,我用了IDE(Vsiual C++ 2008 Express Edition,下面稱VC2008),其他編譯器(gcc、tcc等)也可;

            Apache服務(wù)器,我用的是USBWebSever中包含的Apache服務(wù)器(下載地址) ,這是個(gè)AMP服務(wù)器套裝,不用安裝即可使用,而本地安裝的Apche服務(wù)器也可以使用;

            cgic(下載地址 ),這是用ANSI C寫(xiě)的一個(gè)cgi庫(kù),這里用它提供的代碼來(lái)測(cè)試我們的運(yùn)行環(huán)境,其他規(guī)范的c代碼也是可以的;

            接著,編譯C語(yǔ)言的cgi程序。

            在VC2008里面建一個(gè)Visual C++空項(xiàng)目;

            從剛才下載的cgic代碼壓縮包中提取cgic.h、cgic.c和cgictest.c三個(gè)文件,添加到新建的項(xiàng)目里面;

            打開(kāi)當(dāng)前項(xiàng)目的屬性頁(yè)(在解決方案資源管理器右擊項(xiàng)目名稱,選菜單中的屬性),在配置屬性-C/C++-預(yù)處理器中找到預(yù)處理器定義,添加WIN32;

            這時(shí)可以按F7生成解決方案,VC2008開(kāi)始編譯代碼和鏈接,生成可執(zhí)行文件(.exe)。報(bào)出若干警告,忽視之。這樣cgi程序就做好了。

            然后,配置和啟動(dòng)Apache服務(wù)器。

            對(duì)于本地安裝的Apache服務(wù),需要修改配置文件httpd.conf若干內(nèi)容(參考文章鏈接),如下:

          1. ScriptAlias /cgi-bin/ "E:/apache2/Apache2/cgi-bin/"  
          2. <Directory "E:/apache2/Apache2/cgi-bin"> 
          3. AllowOverride None  
          4. Options ExecCGI  
          5. Order allow,deny  
          6. Allow from all  
          7. </Directory> 
          8. AddHandler cgi-script .exe .pl .cgi

            其中E:/apache2/Apache2/cgi-bin/要改成你準(zhǔn)本放cgi程序的目錄。修改好httpd.conf后可能需要重啟Apache服務(wù)器

            對(duì)USBWebSever,似乎不用修改httpd.conf。如果需要,應(yīng)該對(duì)settings目錄下的httpd.conf類比上面的內(nèi)容進(jìn)行修改,文中{rootdir}/cgi-bin/這類文字最好不要修改!修改好以后,雙擊USBWebSever.exe就可以啟動(dòng)Apache服務(wù)器了。

            最好把剛才生成的cgi程序(.exe文件),復(fù)制放到上文中提到的/cgi-bin/目錄下,文件名最好改成index.cgi這樣的形式。對(duì)于USBWebSever,cgi-bin目錄應(yīng)該是root目錄下的cgi-bin目錄(如果沒(méi)有要新建一個(gè)),不是和USBWebSever在同一目錄下的cgi-bin目錄。我的目錄結(jié)構(gòu)是這樣的

            打開(kāi)瀏覽器輸入http://localhost:8080/cgi-bin/index.cgi(地址取決于你自己的具體設(shè)置),就可以看到cgi程序已經(jīng)運(yùn)行了。

          posted on 2011-11-23 16:55 順其自然EVO 閱讀(556) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 绥德县| 西林县| 巴中市| 德化县| 弋阳县| 昌图县| 白水县| 临邑县| 玉龙| 阿尔山市| 望奎县| 治县。| 涪陵区| 巴林左旗| 五指山市| 措美县| 晋宁县| 广州市| 台前县| 丰城市| 清水河县| 定兴县| 清涧县| 洛宁县| 南靖县| 东乌珠穆沁旗| 陆良县| 浮梁县| 鄂托克旗| 新营市| 眉山市| 定远县| 集贤县| 浦县| 长岛县| 广安市| 永济市| 蒙城县| 新津县| 贡觉县| 洮南市|