我安装一个apache,apche的cgi-bin在/usr/local/apache/cgi下,我又安装了一个程序,目录在/home/wmail,cgi-bin在/home/wmail/www/cgi-bin下。我设置apache的httpd.conf的虚拟主机:
<VirtualHost *:80>
SetEnv SQWEBMAIL_TEMPLATEDIR /home/wmail/html
ScriptAlias /cgi-bin/ "/home/wmail/www/cgi-bin/"
<Directory "/home/wmail/www">
AllowOverride All
Options +Includes
</Directory>
ServerAdmin a@a.net
DocumentRoot /home/wmail/www
ServerName mail.xxx.com
</VirtualHost>
这样设置以后可以访问/home/wmail/www/cgi-bin下的wmail了,但是现在不能访问apche目录下/usr/local/apache/cgi-bin下的cgi程序了,怎样才能实现我现在既能访问/home/wmail/www/cgi-bin下的程序,又能访问/usr/local/apache/cgi-bin下的程序呀?
谢谢各位帮忙,真是没有头绪呀!
peijun.jiang 回复于:2003-07-22 17:37:22 问题已经解决,可以使用一下方法实现:
[code:1:d38cfc4441]
Port 80
ServerName www.mydomain.com
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1:80>
SetEnv SQWEBMAIL_TEMPLATEDIR /home/wmail/html
ScriptAlias /cgi-bin/ "/home/wmail/www/cgi-bin/"
<Directory "/home/wmail/www">
AllowOverride All
Options +Includes
</Directory>
ServerAdmin a@a.net
DocumentRoot /home/wmail/www
ServerName www.mydomain.com
</VirtualHost>
<VirtualHost 192.168.0.1:80>
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
<Directory "/usr/local/apache/htdocs">
AllowOverride All
Options +Includes
</Directory>
ServerAdmin a@a.net
DocumentRoot /usr/local/apache/htdocs
ServerName www1.mydowain.com
</VirtualHost>
这是基于同一个IP地址,不同域名的实现方法。
CGI-BIN是一种特殊的目录,在进行交互式的WWW访问(如填写在线表格)时,需要服务器上有 相应的程序对访问者输入的信息进行处理,这些程序就是CGI程序。 CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。所以,你打开很多网站,不仅仅是腾讯旗下的网站,都会包含cgi-bin的哟。yum install fcgi-devel -yyum install autoconf automake libtool -y # 安装autoreconf
安装spawn-fcgi
yum install spawn-fcgi
yum install fcgiwrap
配置nginx
location ~/cgi-bin/.*.(sh|py|cgi) {
fastcgi_pass unix:/var//fcgiwrap/fcgiwrap.socket
fastcgi_param SCRIPT_NAME $fastcgi_script_name
includefastcgi_params
}
service fcgiwrap start
systemctl restart nginx
大概就i是这样折腾的,我在docker里用的,yum不太好用,所以调整过yum之后,用yum安装一切就方便多了
之前用apache安装cgi也是经历了一番折腾,最后是脚本的问题,所以多方面排查最好
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)