python web环境相关

时间:2020-12-12 19:40:15

一. 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后要输出两个空行。