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系統中無效