1. 程式人生 > >windows下 python+apache+cgi

windows下 python+apache+cgi

作業系統:windows10 x64   Python:3.6

 步驟:

1.下載符合本作業系統最新apache: 官網 http://httpd.apache.org/

本人下載為 apache 24  x64

2. 將下載的apache壓縮包解壓

本人解壓至:E:\apache24

3.進入到E:\Apache24\conf 修改httpd.conf檔案

將SRVROOT  “/Apache24” 修改為:SRVROOT "E:/Apache24"

將Listen 80 修改為 Listen 8080   ,ServerName localhost:80    修改為 ServerName localhost:8080

因為80埠可能會被iis佔用

或者將80埠改為其他的不被佔用的埠

4.進入 E:\Apache24\bin  雙擊 httpd.exe 啟動Apache服務

在瀏覽器中輸入 localhost:8080 若左側it works則說明啟動了服務

還得到E:\Apache24\htdocs下建立一個測試檔案,如:

2.html 內容為 hello world

然後在瀏覽器中輸入: localhost:8080\2.html  若顯示為hello world 則表示 httpd.conf檔案並未出現錯誤

5一個建立test.py檔案:

#! C:\Users\i\AppData\Local\Programs\Python\Python36\python.exe
#coding=gbk
print("Content-type:text/html\n")
print('<h2>Hello Word! 我的第一個cgi</h2>')

 

其中C:\Users\i\AppData\Local\Programs\Python\Python36\python.exe 為python 解析器所在地址

coding=gbk為編碼格式

#號並不是註釋, 一定要新增

將 test.py檔案放入E:\Apache24\cgi-bin目錄 下

6.在瀏覽器中輸入http://localhost:8080/cgi-bin/test.py,若正確顯示Hello Word! 我的第一個cgi則成功,若顯示錯誤,則到

E:\Apache24\logs的error檔案中查詢錯誤原因

 

 可能出現的問題:

對於httpd.conf的檔案修改出現的問題:

1.反覆替換${SRVROOT} 字元為絕對路徑,這太 浪費時間了,因為 

Define SRVROOT 就已經 定義了SRVROOT 只要將

Define SRVROOT "/Apache24" 改為Define SRVROOT "E:/Apache24"即可

2.將 <Directory "${SRVROOT}/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

修改為

 <Directory "${SRVROOT}/cgi-bin">
   Order allow,deny

  Options+ExecCGI

  Allow from all
</Directory>

這是錯的,這會導致檔案錯誤,因為這對windows系統無效

 

對於.py檔案的錯誤:

1.開頭新增 #!usr/bin/python 而不是xxx/python.exe

這是錯的,因為這在windows系統中無效