乙個小範例
python使用cgihttpserver呼叫shell作為cgi指令碼
mkdir -p /data/cgi-bin
vim hello.sh
1
2
3
4
#!/bin/bash
echo
"content-type:text/html"
echo
""
echo
"hello world!"
執行python -m cgihttpserver
然後在瀏覽器中輸入http://:8000/cgi-bin/hello.sh
即可呼叫我們的cgi指令碼
說明:1、指令碼前三行是必須的,第一行用於指定指令碼執行使用的直譯器,第二行和第三行是http協議規範,在傳送html正文之前要傳送mime頭和空行
2、cgi指令碼都是使用nobody使用者執行的,所以要確保nobody可以讀取並執行hello.sh
nginx下啟用cgi指令碼(py,shell)
安裝fcgiwrap,spawn-fcgi,fcgi
yum -y install autoconf automake libtool fcgi fcgi-devel spawn-fcgi
1.安裝fcgiwrap
wget -o fcgiwrap.zipunzip fcgiwrap.zip
cd fcgiwrap-master
autoreconf -i #這裡報錯的話安裝automake包
./configure
make
make install
2.配置spawn-fcgi
編輯spawn-fcgi配置檔案
vi /etc/sysconfig/spawn-fcgifcgi_socket=/var/run/fcgiwrap.socket
fcgi_program=/usr/local/sbin/fcgiwrap
fcgi_user=nginx
fcgi_group=nginx
fcgi_extra_options="-m 0700"options="-u $fcgi_user -g $fcgi_group -s $fcgi_socket -s $fcgi_extra_options -f 1 -p /var/run/spawn-fcgi.pid -- $fcgi_program"
新增開機啟動:
chkconfig spawn-fcgi on
啟動spawn-fcgi服務:
service spawn-fcgi start
修改時間的cgi應用 (這裡是我同事用py寫的乙個修改系統時間的工具)
tar zxvf cgi-bin.tar.gz -c /data
修改index.py 裡面的herf位址
設定nginx
cgi應用在/data/cgi-bin目錄下
}}重啟nginx
service nginx reload
訪問 即可呼叫我們的cgi指令碼
apache 編寫cgi指令碼
1 裝載相關模組 可寫在 etc httpd conf httpd.conf 裡也可寫在虛擬主機配置檔案裡 loadmodulecgi modulemodules mod cgi.so cgi相關模組 loadmodulealias modulemodules mod alias.so 別名相關模組...
shell指令碼 初識CGI
cgi 是web 伺服器執行時外部程式的規範,按cgi 編寫的程式可以擴充套件伺服器功能。cgi 應用程式能與瀏覽器進行互動,還可通過資料庫api 與資料庫伺服器等外部資料來源進行通訊,從資料庫伺服器中獲取資料。格式化為html文件後,傳送給瀏覽器,也可以將從瀏覽器獲得的資料放到資料庫中。幾乎所有伺...
Apache 通過CGI執行指令碼
1.配置伺服器,開啟注釋 告訴伺服器cgi和pl字尾的檔案都是cgi指令碼 編寫python指令碼,並放入 var www cgi bin 目錄下 usr bin python coding utf 8 print content type text plain print hello,world ...