问题描述:
在通过IE浏览器通过apache2.4.7服务器来调用linux操作系统下CGI程序时,普通HTML页面可以正常显示,但是用c写的执行程序,无法正常执行,一执行浏览器出现一堆乱码(浏览器是直接打开二进制执行文件,而不是服务器正常执行,再给浏览器返回),如果是Firefox浏览器打开时,直接就弹出保存cgi文件对话框。
解决办法:
通过对运行结果仔细分析,再加上网上他人经验,首先排除不是字符集导致(因为通过调用简单shell实现CGI程序,浏览器原样输出shell内容,shell CGI并没有被执行,而且字符显示正常),其实主要原因是apache2.4.7所有编译安装完成后少了一个库文件,叫做mod_cgi.so,这玩意在解压出来的安装包*/httpd-2.4.7/modules/generators目录下用:/usr/local/apache2/bin/apxs -i -a -c mod_cgi.c 编译出.so文件,最后如果在配置文件httpd.conf中没有的话则加上LoadModule cgi_module modules/mod_cgi.so