注意:为了在nginx下使用Tcl脚本,这里记录下配置过程,已测试有效
安装fcgiwrap
安装fcgiwrap需要fcgi-devel包支持,此包在epel中包含,已安装epel的可以直接安装
yum install fcgi-devel
下载并安装fcgiwrap
wget https://github.com/gnosek/fcgiwrap/archive/master.zip -O fcgiwrap.zip
unzip fcgiwrap.zip
cd fcgiwrap-master
autoreconf -i #这里报错的话安装automake包
./configure
make
make install
安装spawn-fcgi
安装spawn-fcgi包,通过此包来使fcgiwrap作为一个daemon运行
yum install spawn-fcgi
编辑spawn-fcgi配置文件
vi /etc/sysconfig/spawn-fcgi
添加如下内容
FCGI_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"
NOTICE: -F 1表示启动一个fcgiwrap进程,有性能需要的可以多启动几个
添加开机启动:
chkconfig spawn-fcgi on
启动spawn-fcgi服务:
service spawn-fcgi start
设置nginx
在nginx.conf中添加如下配置:
location /cgi-bin/ {
gzip off;
root /var/www/;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fast
cgi_script_name;
}
创建/var/www/cgi-bin目录
mkdir /var/www/cgi-bin
目录赋予权限为nginx
chown -R nginx:nginx /var/www/cgi-bin
在/var/www/cgi-bin目录下创建一个test.cgi测试文件
#!/usr/bin/tclsh
puts "Content-type: text/html"
puts ""
puts "This is a tcl test script"
修改文件权限,使其具有执行权限
chmod 755 test.cgi
打开浏览器,可以看到能访问脚本执行内容了
http://localhost/cgi-bin/test.cgi
到此,已经能够通过CGI方式执行Tcl脚本了,Tcl脚本的可玩性又更强了。也可以通过这种方式来执行bash、python等脚本语言。