參考:http://httpd.apache.org/docs/2.4/howto/cgi.html
一阁谆, CGI簡介
? ? ? ? 公共網(wǎng)關(guān)接口(Common Gateway Interface,CGI)是Web 服務(wù)器運行時外部程序的規(guī)范,按CGI 編寫的程序可以擴(kuò)展服務(wù)器功能。CGI 應(yīng)用程序能與瀏覽器進(jìn)行交互膀篮,還可通過數(shù)據(jù)API與數(shù)據(jù)庫服務(wù)器等外部數(shù)據(jù)源進(jìn)行通信芹橡,從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù)。格式化為HTML文檔后蚪缀,發(fā)送給瀏覽器,也可以將從瀏覽器獲得的數(shù)據(jù)放到數(shù)據(jù)庫中恕出。幾乎所有服務(wù)器都支持CGI询枚,可用任何語言編寫CGI,包括流行的Python浙巫、C金蜀、C ++刷后、Java、VB 和Delphi 等渊抄。
二尝胆,CGI 配置
? ? 1, Apache2 中CGI的配置文件位于 /etc/apache2/mods-available/ 中(mods-enabled “ 為常用的(也就是默認(rèn)開啟的)护桦, ” mods-available “為不常用的(也就是默認(rèn)不開啟))含衔。我們只需要將mods-available文件夾中的? " cgid.conf ", " cgid.load ", " cgi.load "? 軟連接到mods-enabled 文件夾就可以了
sudo ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf
sudo? ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load
sudo? ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
? ? 2,修改cgi.load的內(nèi)容如下(vim /etc/apache2/mods-available/cgid.load?):
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so? ? ?//默認(rèn)有則不需要加
AddHandler cgi-script .cgi .pl .py .sh? ? ? ?// 我們加入這一句二庵,使CGI支持 perl和python 和shell腳本
? ? 3,?修改默認(rèn)的cgi-bin的路徑(vim /etc/apache2/conf-available/serve-cgi-bin.conf)
<IfModule mod_alias.c>
????<IfModule mod_cgi.c>
????????Define ENABLE_USR_LIB_CGI_BIN
????</IfModule>
????<IfModule mod_cgid.c>
????????Define ENABLE_USR_LIB_CGI_BIN
????</IfModule>
????<IfDefine ENABLE_USR_LIB_CGI_BIN>
????????ScriptAlias /cgi-bin/ /var/www/cgi-bin/
????????????<Directory "/var/www/cgi-bin">
????????????????AllowOverride None
????????????????Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted
????????????</Directory>
????</IfDefine>
</IfModule>
? ? 4, 重啟Apache2 服務(wù)
sudo service apache2 restart