首页 > 代码库 > 解决apache上访问 cgi脚本时总是在网页中显示出脚本的源代码而不是执行结果的问题

解决apache上访问 cgi脚本时总是在网页中显示出脚本的源代码而不是执行结果的问题

apache是支持cgi脚本的,但是需要保证四个条件:

1.放置cgi脚本的文件夹本身需要对apache服务器这个用户(一般默认用户名是www,linux下的用户机制请自行百度)开放x(即可执行)权限。

2.这个脚本本身必须对apache服务器这个用户开放x权限

3.脚本的首行附有如何使用什么解释器执行该脚本代码的信息

如python脚本首行

#!/usr/bin/env python

4.apache需加载了mod_cgi.so这一动态链接库

最后这个问题不是经常遇到但由于容易被忽略所以常常是致命所在。

这里大家需要自行去熟悉下apache的目录结构(参见http://blog.csdn.net/jibcy/article/details/8060651),而且2.2和2.4两个版本结构还不太一样,不过只是2.4更细致化了,基本的原理还是差不多。所以上面的那个问题通过在配置文件里(可以直接是httpd.conf/apache2.conf或者规范一些看看文件中include语句里表明的有哪个补充配置文件是管modules的到那个里面也行)加上

LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so 解决。(注意/usr/lib/apache2/modules/mod_cgi.so是我电脑里mod_cgi.so的存放路径,如果不是这个路径的得自行查找mod_cgi.so存放的地方)。

解决apache上访问 cgi脚本时总是在网页中显示出脚本的源代码而不是执行结果的问题