一. apache配置与支持cgi
1. 配置文件
Apache是一个后台运行的程序,没有界面。所有的配置,都包含在配置文件里。主配置文件是:
~\Apache\conf\httpd.conf
如果要修改Apache的配置,可以用任何一个文本编辑工具(例如记事本)编辑这个配置文件。在配置文件里,以“#”开头的行是注释行。
2. 配置选项
在配置文件里的主要选项如下:
#Listen 3000
#Listen 12.34.56.78:80
Apache的IP地址和端口。一般来说不需要设置,Apache会绑定在本机所有IP地址的80端口上。
Port 80
Apache的端口。默认值是80。
ServerName test.dnschek.net
Web服务器的名字。安装时输入的“Server Name”就是保存在这里。
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
这是网站的根目录。如果您想把网站文件存放在“D:\myweb”目录下,可以把DocumentRoot后面的目录修改为“D:/myweb”。
目录访问控制,由于是测试,都打开就好
<Directory "D:/Apache2.2/cgi-bin">
AllowOverride Options
Order allow,deny
Allow from ALL
Options +ExecCGI
# AddHandler cgi-script .cgi .pl .exe
</Directory>
Options Indexes FollowSymLinks MultiViews
为了安全起见,请把上面的“Indexes”删掉。否则别人可以浏览到您网站里的所有文件。
DirectoryIndex index.html
默认首页文件名。在浏览器里输入一个地址(例如http://test.dnschek.net/)的时候,Apache会查找这个默认的首页文件打开。如果要配置多个默认首页文件名,请用空格分开。
LoadModule cgi_module modules/mod_cgi.so //一定要加载
然后设置cgi运行目录,当然可以直接指定一个目录使其php,cgi都能用,但现在才开始,纯粹点。
ScriptAlias /cgi-bin/ "D:/Apache2.2/cgi-bin/" 这个一般文件里有了,自己改下地址
这句话是说在根目录下的cgi-bin这个目录就是访问的D:/Apache2.2/cgi-bin/里面的文件。
下面设置cgi目录的权限,能运行的cgi程序的后缀名可以不在这儿设置,在这儿设置就只在这个文件夹下用这几个后缀名了。重要的是要使这个目录能运行cgi程序,加入Options +ExecCGI
<Directory "D:/Apache2.2/cgi-bin">
AllowOverride Options
Order allow,deny
Allow from ALL
Options +ExecCGI
# AddHandler cgi-script .cgi .pl .exe
</Directory>
在<IfModule mime_module>里面加入下面的,所有能运行的文件后缀都放这里,找着方便。
AddHandler cgi-script .exe .pl .cgi
常见错误:
CGI不执行,APACHE错误日志:Premature end of script headers,或 malformed header from script. Bad headerXXX,这种情况,还是检查一下CGI输出的第一句话是啥。应该是形如:
Content-type:text/html\n\n
注意:声明好Content-type后要输出两个空行。