cgi文件怎么打開 .cgi是什么文件
cgi格式文件是“公共網(wǎng)關接口腳本”類型文件,可理解是一個可執(zhí)行的腳本。可以使用Python、Perl、Ruby等語言進行創(chuàng)建。cgi腳本通常用于運行基本的Web腳本,比如在Web窗口中發(fā)送電子郵件等。
cgi文件怎么打開?
cgi格式文件它是一種常見的代碼文件,正如您所了解的代碼文件都是文本格式的,這意味著打開cgi格式文件的方法有很多。無論您使用的是Windows、Mac OS X、Linux,都可使使用系統(tǒng)里面都自帶的文本編輯器來打開及編輯cgi文件,您所需要做的只是雙擊它即可。改文件屬性需在服務器上改,不過NT和LINUX/UNIX下是有區(qū)別的。
NT文件屬性值不用更改,IMAGE文件也可以放到CGI-BIN目錄內LINUX/UNIX是要改屬性的,IMAGE方面的文件不能放到CGI-BIN目錄內,必須在CGI-BIN目錄外另建目錄,否則圖片無法顯示。
cgi格式的文件是HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網(wǎng)絡服務器上。絕大多數(shù)的cgi格式的程序被用來解釋處理杰自表單的輸入信息,并在服務器產生相應的處理,或將相應的信息反饋給瀏覽器。cgi程序使網(wǎng)頁具有交互功能。
cgi文件怎么打開?
可以用記事本類的文字編輯工具打開。[最好不要用DW等網(wǎng)頁編輯軟件打開,因為它們會自動添加代碼。]改文件屬性需在服務器上改,不過NT和LINUX/UNIX下是有區(qū)別的。
NT文件屬性值不用更改,IMAGE文件也可以放到CGI-BIN目錄內LINUX/UNIX是要改屬性的,IMAGE方面的文件不能放到CGI-BIN目錄內,必須在CGI-BIN目錄外另建目錄,否則圖片無法顯示。
任務易為自由職業(yè)工作者尋找和分析任務項目,并構建以任務為主題的社交平臺。
對一個 CGI 程序,做的工作其實只有:從環(huán)境變量(environment variables)和標準輸入(standard input)中讀取數(shù)據(jù)、處理數(shù)據(jù)、向標準輸出(standard output)輸出數(shù)據(jù)。
環(huán)境變量中存儲的叫 Request Meta-Variables,也就是諸如 QUERY_STRING、PATH_INFO 之類的東西,這些是由 Web Server 通過環(huán)境變量傳遞給 CGI 程序的,CGI 程序也是從環(huán)境變量中讀取的。
標準輸入中存放的往往是用戶通過 PUTS 或者 POST 提交的數(shù)據(jù),這些數(shù)據(jù)也是由 Web Server 傳過來的。
就比如,我們剛學 C 語言時寫的 Hello World,也可以作為一個合法的 CGI 程序。
現(xiàn)在用 CGI 的已經(jīng)很少了,因為每個 CGI 進程只處理一個請求,換句話說,每個請求都需要創(chuàng)建一個 CGI 進程處理,CGI 程序處理完畢后就退出了。
FastCGI 正是對 CGI 的改進,而且改進了不是一點點。
從總體上看,一個 FastCGI 進程可以處理若干請求(一般 FastCGI 進程是駐留著的,但不排除 IIS 之類的 Web Server 限制其空閑時間,在一段時間內沒有請求就自動退出的可能),Web Server 或者 fpm 會控制 FastCGI 進程的數(shù)量。
細節(jié)方面,F(xiàn)astCGI 是一套協(xié)議,不再是通過簡單的環(huán)境變量、標準輸入和標準輸出來接收和傳遞數(shù)據(jù)了。一般來說,F(xiàn)astCGI 用 TCP 或者命名管道(Named Pipe)傳輸數(shù)據(jù)。
現(xiàn)在絕大多數(shù) PHP 網(wǎng)站都是在用 FastCGI 的。
因此,這個問題的答案取決于題主對 CGI 的理解。
CGI 的意思是啥?不是一種語言,也不是一種技術,而是一種模式
搜索一下CGI的定義
Common Gateway Interface,簡稱CGI。在物理上是一段程序,運行在服務器上,提供同客戶端 HTML頁面的接口
“通用網(wǎng)關接口”,這就是CGI的中文意思。也沒人規(guī)定CGI一定是用PERL寫的。
換句話,只要是提供HTML的服務器端程序都可以叫CGI,APS、PHP、JSP這些都是,你用C語言寫一個可以提供HTML的服務器端EXE文件,也叫CGI。
不知道我的回答是否明確,希望能對你有所幫助。
C++課設并沒有限制一定使用MFC 所以我們組一直致力于尋找更好的方案解決界面美觀度的問題(有種更好的方法是利用c#寫界面這樣可以和程序分離開 但當時選題的時候我們并不知道這種方法)
所以選擇了WEB應用(c/s模式) 利用C++作為服務器端語言,利用古老的CGI技術進行交互。
由于CGI的不方便性 該技術早已被ASP等技術取代 所以請大家繞行 本文的目的在于那些誤入CGI歧途的人一個出坑的道路 并且證明CGI還是能行得通的
****************************************************************************************************************
CGI的基本原理就不向大家介紹了 我們的項目利用AJAX技術向后臺請求數(shù)據(jù) 后臺利用ADO向數(shù)據(jù)庫讀寫數(shù)據(jù) 然后直接COUT給前臺
1.注意編碼問題!
首先是漢字在網(wǎng)絡傳輸時的變化 前臺向后臺傳的時候會自動轉換成UTF-8(URL)格式的編碼 后臺需要先解碼再使用這些數(shù)據(jù)
其次 數(shù)據(jù)庫與cgi程序之間有時需要轉碼
在線編碼轉換這個網(wǎng)站可能會在編碼問題上幫助你
2.動態(tài)sql
利用win32控制臺程序 向數(shù)據(jù)庫寫入數(shù)據(jù) 需要用到動態(tài)sql 這個問題需要字符串格式的統(tǒng)一 所以會花一點功夫
注意APACHE的服務器不支持ADO的方式 所以請使用IIS服務器
3.不要在cgi程序里加入例如system("pause")這類的語句 會導致cgi程序不結束 無法返回給前臺數(shù)據(jù)(響應超時)
造成服務器內存不足 會報w3wp.exe錯誤 這時應該重啟服務器 刪掉相關語句
4.SESSION登錄控制 CGI可以通過環(huán)境變量設置COOKIE 但是在AJAX情況下不適用 所以請利用JAVASCRIPT設置
- cgi
cgi是一個web server與cgi程序(這里可以理解為是php解釋器)之間進行數(shù)據(jù)傳輸?shù)膮f(xié)議,保證了傳遞的是標準數(shù)據(jù)。
- php-cgi
php-cgi是php解釋器,就是上文提到的cgi程序。
- Fastcgi
Fastcgi是用來提高cgi程序(php-cgi)性能的方案/協(xié)議。
cgi程序的性能問題在哪呢?"PHP解析器會解析php.ini文件,初始化執(zhí)行環(huán)境",就是這里了。標準的CGI對每個請求都會執(zhí)行這些步驟,所以處理的時間會比較長。
Fastcgi會先啟一個master,解析配置文件,初始化執(zhí)行環(huán)境,然后再啟動多個worker。當請求過來時,master會傳遞給一個worker,然后立即可以接受下一個請求。這樣就避免了重復勞動,效率自然提高。而且當worker不夠用時,master可以根據(jù)配置預先啟動幾個worker等著;當然空閑worker太多時,也會停掉一些,這樣就提高了性能,也節(jié)約了資源。這就是Fastcgi的對進程的管理。
- php-fpm
上文提到了Fastcgi只是一個方案或者協(xié)議,那么php-fpm就是這個實現(xiàn)了Fastcgi的程序,也就是說,上文所描述的進程分配和管理是FPM來做的。官方對FPM的解釋是 Fastcgi Process Manager(Fastcgi 進程管理器) 。
PHP對并發(fā)訪問的處理
- 進程和線程
PHP從代碼級別來講不支持多線程操作,不能像Java、C#等語言一樣可以編寫多線程代碼。但多線程和并發(fā)沒有直接關系,多線程只是代碼被運行時在同一時間同時執(zhí)行多個線程任務,來提高服務器CPU的利用率,提高代碼效率。但php是可以多進程執(zhí)行的,上文所述的FPM進程管理機制就是多進程單線程的,有效提高了并發(fā)訪問的響應效率。
0 Comments.