新聞中心
CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口)是一種用于在Web服務(wù)器(如Apache、Nginx等)上執(zhí)行程序的標(biāo)準(zhǔn)接口。CGI程序可以讓W(xué)eb服務(wù)器在接收到客戶端請(qǐng)求時(shí)執(zhí)行指定的程序,并將程序運(yùn)行的結(jié)果返回給客戶端,實(shí)現(xiàn)交互式網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)。

創(chuàng)新互聯(lián)的客戶來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜希瑥膭?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。專業(yè)領(lǐng)域包括成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、電商網(wǎng)站開(kāi)發(fā)、微信營(yíng)銷(xiāo)、系統(tǒng)平臺(tái)開(kāi)發(fā)。
在Linux系統(tǒng)下,CGI程序的執(zhí)行與Windows下有所不同。本文將詳細(xì)介紹Linux下CGI的執(zhí)行方法,以幫助讀者更好地了解CGI的基本原理和應(yīng)用。
一、CGI程序的基本原理
在Web服務(wù)器上托管的CGI程序是由Web服務(wù)器啟動(dòng)的獨(dú)立進(jìn)程。當(dāng)服務(wù)器接收到對(duì)CGI程序的請(qǐng)求后,將fork出一個(gè)新的進(jìn)程,執(zhí)行CGI程序并將結(jié)果返回給客戶端。
CGI程序一般由一個(gè)可執(zhí)行文件和若干個(gè)腳本文件組成??蓤?zhí)行文件通常是編譯好的可執(zhí)行二進(jìn)制文件,可以由任何語(yǔ)言編寫(xiě)(如Perl、PHP、Python等)。腳本文件一般是一些用于配置和輔助執(zhí)行的文件,例如設(shè)置環(huán)境變量、調(diào)用其他程序或庫(kù)等。
在Linux系統(tǒng)下,CGI程序的執(zhí)行需要滿足以下條件:
1. Web服務(wù)器需要配置CGI的執(zhí)行路徑和參數(shù)。一般來(lái)說(shuō),這些配置存放在Web服務(wù)器的配置文件中,如Apache的httpd.conf文件。
2. CGI程序需要具有可執(zhí)行權(quán)限。權(quán)限可以通過(guò)chmod命令進(jìn)行設(shè)置,例如“chmod +x cgi_prog”。
3. CGI程序需要能夠讀取和寫(xiě)入文件。這意味著CGI程序必須以一個(gè)合適的用戶身份運(yùn)行,通常是Web服務(wù)器的用戶身份(如www-data)。
4. CGI程序需要能夠訪問(wèn)其他資源,例如數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)等。這需要在程序中進(jìn)行相應(yīng)的配置和處理。
二、在Linux中安裝和配置CGI程序
1. 安裝Web服務(wù)器
在Linux系統(tǒng)上安裝Web服務(wù)器是CGI程序運(yùn)行的必要前提。常見(jiàn)的Web服務(wù)器有Apache、Nginx、Lighttpd等,一般可以通過(guò)包管理器進(jìn)行安裝,例如yum、apt-get等。
以Apache為例,可以使用以下命令安裝Apache服務(wù)器:
yum install httpd
安裝完成后,啟動(dòng)Apache服務(wù)器:
systemctl start httpd
2. 配置CGI執(zhí)行路徑和參數(shù)
在Apache的配置文件httpd.conf中配置CGI的執(zhí)行路徑和參數(shù)。在該文件中,可以找到以下內(nèi)容:
ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
這個(gè)指令告訴Apache將URL路徑/cgi-bin/中的請(qǐng)求轉(zhuǎn)發(fā)到目錄/var/www/cgi-bin/中執(zhí)行。這意味著,如果想在Apache服務(wù)器上執(zhí)行一個(gè)名為test.cgi的CGI程序,需要將該程序放置在目錄/var/www/cgi-bin/中,并訪問(wèn)URL:http://localhost/cgi-bin/test.cgi。
另外,還需要在httpd.conf文件中配置文件類型和響應(yīng)頭信息。例如,要支持Perl腳本的執(zhí)行,可以添加以下內(nèi)容:
AddHandler cgi-script .pl
這個(gè)指令告訴Apache將擴(kuò)展名為.pl的文件視為Perl腳本文件,并將其執(zhí)行結(jié)果作為響應(yīng)發(fā)送給客戶端。
3. 設(shè)置CGI程序的執(zhí)行權(quán)限
要使CGI程序具有可執(zhí)行權(quán)限,需要在Linux系統(tǒng)中使用chmod命令進(jìn)行設(shè)置。例如,要設(shè)置test.cgi文件具有可執(zhí)行權(quán)限,可以使用以下命令:
chmod +x /var/www/cgi-bin/test.cgi
這個(gè)命令將test.cgi文件的可執(zhí)行權(quán)限設(shè)置為所有用戶均可執(zhí)行。
4. 測(cè)試CGI程序的執(zhí)行
在完成上述配置后,可以使用瀏覽器訪問(wèn)http://localhost/cgi-bin/test.cgi來(lái)測(cè)試CGI程序的執(zhí)行。如果一切正常,瀏覽器會(huì)顯示CGI程序的輸出結(jié)果。
三、CGI程序的實(shí)現(xiàn)和開(kāi)發(fā)技術(shù)
在Linux系統(tǒng)下,可以使用Perl、Python、PHP等語(yǔ)言來(lái)編寫(xiě)CGI程序,也可以使用C/C++等編程語(yǔ)言。不同的語(yǔ)言和開(kāi)發(fā)技術(shù)有不同的優(yōu)點(diǎn)和適用場(chǎng)景。
例如,Perl語(yǔ)言開(kāi)發(fā)CGI程序使用起來(lái)非常方便,可以快速實(shí)現(xiàn)從表單獲取數(shù)據(jù)、連接數(shù)據(jù)庫(kù)、處理文件上傳等功能,還可以使用Perl模板引擎實(shí)現(xiàn)模板輸出。下面是一個(gè)使用Perl語(yǔ)言編寫(xiě)的CGI程序的示例:
#!/usr/bin/perl
print “Content-type:text/html\n\n”;
print “\n”;
print “\n”;
print “Hello, World!\n”;
print “\n”;
print “\n”;
print “
Hello, World!
\n”;
print “\n”;
print “\n”;
這個(gè)程序的作用是在瀏覽器中顯示一個(gè)包含“Hello, World!”的HTML頁(yè)面。程序的核心部分是使用print命令向?yàn)g覽器輸出HTML代碼。
Python和PHP也是常見(jiàn)的CGI編程語(yǔ)言,它們具有良好的開(kāi)發(fā)體驗(yàn)和性能優(yōu)勢(shì)。區(qū)別在于,Python需要將腳本文件放置在cgi-bin目錄下,并在腳本中導(dǎo)入CGI模塊;而PHP則可以直接在Web根目錄下編寫(xiě)腳本文件,并將文件名以.php結(jié)尾。
四、CGI程序的優(yōu)化和安全注意事項(xiàng)
在開(kāi)發(fā)和使用CGI程序時(shí),需要注意以下問(wèn)題:
1. 優(yōu)化CGI程序的性能。CGI程序的運(yùn)行速度取決于程序本身的設(shè)計(jì)和實(shí)現(xiàn),以及服務(wù)器硬件性能等因素。為了提高CGI程序的性能,可以采用緩存技術(shù)、使用異步編程模型等.
2. 避免CGI程序的安全漏洞。CGI程序可能會(huì)有文件讀寫(xiě)、網(wǎng)絡(luò)連接、命令執(zhí)行等安全問(wèn)題。為了避免這些風(fēng)險(xiǎn),需要采用安全編程技巧,例如輸入過(guò)濾、錯(cuò)誤處理、用戶身份驗(yàn)證、代碼審查等。
3. 將CGI程序的配置和管理獨(dú)立出來(lái),以方便管理和應(yīng)對(duì)突發(fā)事件。對(duì)于大型和復(fù)雜的應(yīng)用程序,可以使用全新的方案來(lái)管理和部署CGI程序,例如使用容器化技術(shù)和自動(dòng)化部署。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
上傳到linux服務(wù)器上的cgi 文件在瀏覽器上不顯示 只能打開(kāi)或保存
隨著操作系統(tǒng)版本的不斷更新,Windows的體積也在不斷增大。因工作需要,我們一直想找到一個(gè)便攜性強(qiáng),可以隨身帶著走,又操作簡(jiǎn)單、易用的操作系統(tǒng)。Windows基本上不可能完成這個(gè)任務(wù)。終于有一天,我找到了一張軟盤(pán)就可以裝下的系統(tǒng)—Mclinux,它出自中國(guó)人之手,完全的中文界面,親切又好用。
MClinux小檔案
版本:2.02 大?。?.86M
性質(zhì):免費(fèi)軟件 平臺(tái):Linux
軟件特點(diǎn):
1.可做網(wǎng)絡(luò)工件站,可瀏覽中文網(wǎng)頁(yè),維護(hù)網(wǎng)站,處理信件。
2.可做HTTP+CGI(可加密目錄)、FTP、TELNET服務(wù)器。
3.具有路由器、防火墻功能,可在局域網(wǎng)上Internet,支持Modem撥號(hào)上網(wǎng),也可設(shè)置撥入功能,支持ADSL寬帶撥號(hào)上網(wǎng)。
4.可使用硬盤(pán)、光驅(qū)和軟驅(qū)。
將Mclinux裝入軟盤(pán)
之一步:下載后的文件名為MClinux202.zip,將其解縮到任意文件夾,比如C:\linux。重啟電腦用Windows 98啟動(dòng)盤(pán)啟動(dòng)進(jìn)入DOS界面下,插入一張空白軟盤(pán),從命令提示符進(jìn)入“A:,然后輸入以下命令切換到C:\linux目錄:
A:\c:
C:\cd linux
第二步:輸入“2m”命令,使系統(tǒng)支持2MB的軟盤(pán)。接著,輸入“2mf a: /m”命令將軟盤(pán)格式化為更大容量2MB(依軟盤(pán)品牌不同,顯示的數(shù)值可能是1886KB,沒(méi)關(guān)系,繼續(xù))。
第三步:輸入“syslinux -s a:”命令使軟盤(pán)成為可引導(dǎo)電腦的啟動(dòng)盤(pán)。
第四步:輸入以下命令將系統(tǒng)復(fù)制到軟盤(pán)中:
copy syslinux.cfg a:
copy zimage a:
copy mclinux.img a:
第五步:在BIOS中設(shè)置軟盤(pán)為之一啟動(dòng)設(shè)備,用剛才創(chuàng)建的MClinux軟盤(pán)引導(dǎo)系統(tǒng),中間會(huì)提示“請(qǐng)插入MClinux配置盤(pán)并按“Y”,否則按回車(chē)”,之一次啟動(dòng),直接回車(chē)。
然后輸入“root”登錄,這時(shí)已將系統(tǒng)全部裝入內(nèi)存,輸入命令“cce”進(jìn)入中文系統(tǒng)。
用Modem上網(wǎng)
之一步:取出MClinux軟盤(pán),換上另一張空白軟盤(pán),使用“mkfs.ext2 /dev/fd0”命令格式化軟盤(pán)為ext2格式;或用“mkfsdos /dev/fd0”命令格式化成dos格式。
第二步:輸入命令“mclinux.conf”進(jìn)入系統(tǒng)配置(見(jiàn)圖1),選“1”,回車(chē)后進(jìn)入撥號(hào)網(wǎng)絡(luò)PPP配置(見(jiàn)圖2),將其中的“PHONE,ACCOUNT,PASSWORD”三個(gè)項(xiàng),分別對(duì)應(yīng)改成ISP的上網(wǎng)號(hào)碼、用戶名和密碼。
第三步:“Modem_DEV=ttyS1”要根據(jù)自己Modem占用的com口更改(注:可以在Windows下打開(kāi)設(shè)備管理器查看Modem占用的COM口,如果是com1則鉛漏改為ttyS0,如果是com2則改為ttyS1,以此類推)。
然后按”ctrl+x”組合鍵,并按“y”鍵退出(注:進(jìn)入配置后,按”ctrl+x”,會(huì)有“SAVE:Ynl”提示,“y”表示保存,“n”為不保存)。
第四步:進(jìn)入DNS設(shè)置,將ISP服務(wù)商提供的DNS填入到“namesever”后面。(注:大部分地區(qū)可以直接使用,少數(shù)地區(qū)需要自己設(shè)置一下)
第五步:按“8”將設(shè)置存入剛格式化完成的軟盤(pán)中,下次再啟動(dòng)系統(tǒng)時(shí)就可以不用再設(shè)置了。按“9”退賣(mài)激攔出系統(tǒng)配置,“ppp-on”,過(guò)一會(huì),就連上網(wǎng)絡(luò)了,“clinks”進(jìn)入中文瀏覽器(見(jiàn)圖3,這里作者已做了一些中文網(wǎng)站的連接向?qū)В梢栽谄渲羞x擇站點(diǎn)),也可以按Esc鍵,點(diǎn)“File→Go To URL”輸入網(wǎng)址?!癱links”是字符瀏覽器,所以只能顯示文本信息。
小提示
1.如果想斷開(kāi)網(wǎng)絡(luò)則輸入命令“ppp-off”。
2.系統(tǒng)默認(rèn)開(kāi)啟web服務(wù)功能,當(dāng)上網(wǎng)后,用其他機(jī)器鍵入
使用FTP功能
MClinux在系統(tǒng)啟動(dòng)時(shí)已經(jīng)自動(dòng)打開(kāi)這項(xiàng)服務(wù)并有FTP客戶端命令,需要按照以下步驟操作。
之一步:設(shè)定可下載文件的目錄:先建立一個(gè)下載文件分區(qū)的映射(這里以之一硬盤(pán)之一分區(qū)為例)“mkdir /mnt/hda1”,再用“mount”命令掛載下載文件的硬盤(pán)分區(qū),“mount dev/hda1 /mnt/hda1”。
第二步:設(shè)定登錄的用戶:MClinux默認(rèn)為anonymous(匿名)登錄,可以在mclinux.conf里更改。
第三步:從遠(yuǎn)程機(jī)傳送指定文件到本地機(jī):輸入“ftpopen 遠(yuǎn)程機(jī)的地址 輸入用戶名和密碼 get 遠(yuǎn)程機(jī)文件 本地機(jī)文件”。
第四步:從本地機(jī)傳送指定文件到遠(yuǎn)程機(jī):輸入“ftp open 遠(yuǎn)程機(jī)的地址 輸入用戶名和密碼 pub 本地機(jī)文件 遠(yuǎn)程機(jī)文件”
第五步:從連在網(wǎng)絡(luò)的其他機(jī)器上輸入
CGI文件上傳之后,在UNIX上要設(shè)置x屬性,否則就無(wú)法執(zhí)行的,上傳的文件一般沒(méi)有x屬性的,你局逗孝使用UNIX命令設(shè)指櫻置x屬性,命令如下:
chmod +x 文件名
注意,UNIX的文件名字桐稿區(qū)分大小寫(xiě)的。
不是太懂cgi,不信帶過(guò)也學(xué)linux,猜測(cè)一下,是否含橘需要x權(quán)限而你租用的服務(wù)器沒(méi)給你這個(gè)權(quán)限?談坦團(tuán)或者需要額外的腳本解釋器,比如說(shuō)perl?
linux下怎么查找php-cgi進(jìn)程執(zhí)行的是那個(gè)文件
查看進(jìn)游斗程的命令行就可以,下面的代碼在SCO UNIX上答升可以,LINUX的清磨老語(yǔ)法可以ps -?查查:
ps -f 進(jìn)程id
ps -x
可以把這個(gè)東西找出來(lái)啊
私聊吧?
linux 下如何執(zhí)行cgi的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 下如何執(zhí)行cgi,Linux下CGI的執(zhí)行方法詳解,上傳到linux服務(wù)器上的cgi 文件在瀏覽器上不顯示 只能打開(kāi)或保存,linux下怎么查找php-cgi進(jìn)程執(zhí)行的是那個(gè)文件的信息別忘了在本站進(jìn)行查找喔。
香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
當(dāng)前題目:Linux下CGI的執(zhí)行方法詳解(linux下如何執(zhí)行cgi)
網(wǎng)頁(yè)鏈接:http://fisionsoft.com.cn/article/dhhpppp.html


咨詢
建站咨詢
