寫乙個CGI程式並執行

2021-07-24 16:43:46 字數 2843 閱讀 6644

準備linux和apache

我在/var/www/cgi-bin/下建乙個檔案get.c

#include #include 

int main(void

)

然後編譯

gcc -o get.cgi get.c

編譯完後會生成乙個get.cgi檔案

然後我配置apache,我是這麼配置的(我的apache是2.4.23版本)

將loadmodulecgid_module modules/mod_cgid.so前面的#去掉

新增

addhandlercgi-script.cgi .pl

然後配置虛擬空間

80>servername cgi.***.com

serveradmin admin

@***.com

documentroot /var/www/cgi-bin

allowoverride none

options +execcgi -multiviews +symlinksifownermatch

require

all granted

errorlog "logs/error.cgi.log"customlog "/var/www/cgi.log"combined

然後重啟apache

在瀏覽器中輸入cig.***.com/get.cgi?m=3&n=7

輸出如下內容:

3 and 7 result: 21

thank you to use the zongshuai webserver

以下**網路
linux cgi程式設計基礎
1.為什麼使用cgi?
2. cgi是什麼?
cgi全稱是 common gate intergace ,在物理上,cgi是一段程式,它執行在server上,提供同客戶端 html頁面的介面。
3. cgi程式語言
你可以用任何一種你熟悉的高階語言, c,c++,c shell,perl和vb都可以。
4. cgi的安全性
實際上cgi是比較安全的,至少比 那些沒有數字簽名的activex控制項要安全的多。除非你有意在程式裡加入了破壞server的命令, 否則一般不會有什麼嚴重的後果。
簡單的說來,cgi是用來溝通html表單和伺服器端程式的介面(inte***ce)。說它是介面,也就是說cgi並不是一種語言,而是可以被其他語言所應用的乙個規範集。理論上講,你可以用任何的程式語言來編寫cgi程式,只要在程式設計的時候符合cgi規範所定義的一些東西就可以了。由於c語言在平台無關性上表現不錯(幾乎在任何的系統平台下都有其相應編譯器),而且對大多數程式設計師而言都算得上很熟悉(不像perl),因此,c是cgi程式設計的首選語言之一。這兒我們介紹的,就是如何使用c來編寫cgi程式。
作為cgi程式設計的最為簡單的例子,就是進行表單的處理。因而在這篇文章中,我們主要介紹的就是如何用c來編寫cgi程式來進行表但處理。
5.傳送方法:
所謂方法是指呼叫cgi程式的途徑。事實上,要執行程式時,你用一種方法向伺服器提出請求,此請求定義了程式如何接受資料。 下面介紹常用的兩種方法:get和post 1.get 當使用這種方法時,cgi程式從環境變數query_string獲取資料。
query_string 被稱為環境變數,就是這種環境變數把客戶端的資料傳給伺服器。為了解釋和執行 程式,cgi必須要分析(處理)此字串。
post 使用post方法時,web伺服器通過stdin(標準輸入),向cgi程式傳送資料。伺服器 在資料的最後沒有使用eof字元標記,因此程式為了正確的讀取stdin,必須使用content_length 。當你傳送的資料將改變
web伺服器端的資料或者你想給cgi程式傳送的資料超過了1024 位元組,這是url的極限長度,你應該使用post方法。 實現方法:
get實現方法
post實現方法:

如何寫乙個shell指令碼並執行

linux下你可以有兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等 一般來說第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...

寫乙個簡單的組合語言並執行

最近在學彙編,剛剛開始學習發的博文都是一些比較簡單的入門的東西,希望以後會越來越好。接下來講一下怎樣寫乙個簡單的彙編指令碼並成功執行。大牛勿噴 首先用notepad 編寫一段匯程式設計序 這裡我是在32位的windows系統下寫的,學彙編推薦32位win因為自帶debug可以試調,64位的要自己再安...

程式只執行乙個例項,並啟用前乙個例項

實現程式只執行一次的方法很多,但是原理都是一樣的,就是執行第一次的時候設定乙個標記,每次執行的時候檢查該標記,如果有就說明已經執行了。具體實現 1 在程式初始化的時候 initinstance 列舉所有的視窗,查詢本程式的例項是否存在 2 在主視窗初始化的時候在本視窗的屬性列表中新增乙個標記,以便程...