OptionsIndexesFollowSymLinksMultiViewsExecCGI &" />

在windows下配置apache以cg

发布时间:2019-08-29 07:34:28编辑:auto阅读(1412)

    Apache配置


    在httpd.conf中查找DocumentRoot:

    允许目录可以执行cgi:

    DocumentRoot  "D:\WWW"
    <Directory />
        Options Indexes FollowSymLinks MultiViews ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    只允许在特别目录下执行cgi程序:

    ScriptAlias /cgi-bin/ "D:/Program/phpStudy/Apache/cgi-bin/"

    让apache识别py文件为cgi程序:

    AddHandler cgi-script .cgi .py

     以上就配置完成了apache。

    但是,有时候我们可能会遇到:

         > > [Sat Apr 01 13:30:03 2006] [error] [client 127.0.0.1] C:/Program
         > > Files/Apache Group/Apache2/cgi-bin/test.py is not executable; ensure
         > > interpreted scripts have "#!" first line
         > > [Sat Apr 01 13:30:03 2006] [error] [client 127.0.0.1] (9)Bad file
         > > descriptor: don't know how to spawn child process: C:/Program Files/Apache
         > > Group/Apache2/cgi-bin/test.py
        

         这个时候可以尝试在配置文件结尾添加:'ScriptInterpreterSource Registry'

    下面开始写个例子程序:

         test.py

         #!D:\Program\Python27\python.exe
         print "Content-type: text/html"     
         print     
         print "<h1>hello,world!</h1>"

         写cgi程序要注意,

          第一:#!前面不能有空格,后面紧跟解释程序;

          第二,python等解释程序的目录是否正确;

          第三,作为http协议的要求,一定要输出http headers;

          第四,在存在http headers的前提下,一定要在headers后面打印一个空行,否则服务器会报错;

          第五,把错误的程序在python的idle中执行一下,验证正确性;

          最后,实在搞不定的情况下,查看apache的logs文件夹下的error.log文件,来确定问题。


    运行http://127.0.0.1/cgi-bin/test.py

    wKiom1Quy5SSlXgHAAAj9TfcTKs924.jpg

关键字