【Web】CGI简介
什么是CGI
CGI的全稱是Common Gateway Interface,通用網(wǎng)關(guān)接口。粗略地說,CGI就是位于服務(wù)器端的處理網(wǎng)頁請求的程序。CGI程序本身是服務(wù)器操作系統(tǒng)上的一個簡單的應(yīng)用程序,它接受輸入進(jìn)行處理并輸出內(nèi)容,這些輸入輸出都又通過Web服務(wù)器軟件(比如apache)處理,最終完成需要的功能。下圖是CGI在整個網(wǎng)頁服務(wù)中的位置:
CGI的編寫
下面是一個CGI的基本示例:
#include <stdio.h>int main() {printf("Content-Type: text/html\n\n");printf("hello world!\n");return 0; }這里使用了c語言的實現(xiàn),可以看到它其實沒有什么特別之處,但是還是需要說明幾點:首先這里使用的printf就是往標(biāo)準(zhǔn)輸出輸出字符,不過Web服務(wù)器會進(jìn)行處理轉(zhuǎn)發(fā),實際上當(dāng)然不會打印到我們的終端;其次這里有一句特殊的打印“Content-Type: text/html\n\n”,它是告訴瀏覽器接收到的文件格式的,必須要加上否則會報錯(500 Internal Server Error)。
之后編譯也是使用最普通的方式:
gcc test.c -o test.cgi只是文件名稱稍微修改了下。
為了使用該CGI程序,需要相關(guān)的瀏覽器和Web服務(wù)器支持,瀏覽器通常沒有問題,Web服務(wù)器則需要安裝,這里使用apache服務(wù)器。
安裝apche和配置CGI
使用Ubuntu2004搭建服務(wù)器,首先需要安裝httpd:
不過可以看到不能直接安裝httpd,而是需要安裝對應(yīng)的軟件包,這里就安裝apache2,它是最常用的開源服務(wù)器,安裝如下:
安裝完成之后可以查看是否打開apache2服務(wù)器:
從上圖可以看到已經(jīng)打開了。為了進(jìn)一步證明,最好的辦法就是打開apache服務(wù)器的網(wǎng)頁,我們可以直接使用本機(jī)的IP(127.0.0.1或localhost)來訪問該服務(wù)器,如圖所示:
到這里就說明apache服務(wù)器已經(jīng)正常搭建。上述的網(wǎng)頁其實就存放在如下的目錄,當(dāng)我們打開網(wǎng)頁并輸入本機(jī)地址之后,apache服務(wù)器就將該網(wǎng)頁輸出:
之后是配置CGI。apche服務(wù)器是支持CGI的,但是默認(rèn)沒有開啟,注意下圖中的兩個目錄:
mode-enabled目錄下是當(dāng)前開啟的,而mod-available是當(dāng)前支持的,如下所示,這里是有cgi相關(guān)的支持的:
我們需要將上面的cgid.conf,cgid.load和cgi.load映射到mod-enabled目錄中,下面是具體的命令,注意需要使用root權(quán)限:
ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load之后重啟apache服務(wù):
/etc/init.d/apache2 restart默認(rèn)存放cgi程序的目錄是/usr/lib/cgi-bin,后面新建的程序放在該目錄即可使用,對應(yīng)的網(wǎng)頁是/cgi-bin/xxx.cgi。這里是相對路徑,xxx.cgi是程序名。
CGI的使用
前面已經(jīng)編譯出了需要的CGI程序,只需要將該文件放到apache服務(wù)器指定的目錄(cgi程序默認(rèn)存放目錄/usr/lib/cgi-bin)即可。之后就可以通過瀏覽器和apache服務(wù)器訪問該CGI,如下所示:
以上就是CGI的簡要說明。
總結(jié)
以上是生活随笔為你收集整理的【Web】CGI简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python函数部分2
- 下一篇: 4G物联卡跟NB物联卡有什么区别