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