Windows 配置Apache+CGI


首先還是先在官網下載Apache,版本為Apache 2.4.26 x64,下載64位的
地址為:http://www.apachehaus.com/cgi-bin/download.plx

 

 下載完成后解壓,Apache24移動到你想放置的地方

 

我這里是把Apache24放在G盤下。 

  


 接下來進行CGI配置

進入conf,用記事本(或者Notepad等編輯器)編輯httpd.conf文件

 

【簡潔版修改步驟:這里只列出了要修改的關鍵地方】(后面有介紹詳細修改步驟)
# STEP:1.設置Appache在你電腦的安裝目錄 Define SRVROOT "G:/Apache24" ServerRoot "${SRVROOT}" ...
#Listen
12.34.56.78:80 # STEP:2.修改監聽端口 Listen 88 ...
# STEP:
3.開啟基於主機的組授權(去掉下面這行的注釋即可) LoadModule access_compat_module modules/mod_access_compat.so ... # STEP:4.開啟apache的代理模塊(直接去掉前面的注釋即可) LoadModule proxy_module modules/mod_proxy.so ... # STEP:5.開啟代理http和https請求(直接去掉前面的注釋即可) LoadModule proxy_http_module modules/mod_proxy_http.so ...
# STEP:
6.開啟rewrite模式(直接去掉前面的注釋即可) LoadModule rewrite_module modules/mod_rewrite.so ...

# STEP:7.開啟虛擬主機動態配置(直接去掉前面的#注釋即可)
LoadModule vhost_alias_module modules/mod_vhost_alias.so
...

# STEP:8.開啟CGI路徑的訪問權限
<Directory "G:/var/www/cgi-bin/">
    AllowOverride All
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
...

    # STEP:9.修改映射地址
    ScriptAlias /cgi-bin/ "G:/var/www/cgi-bin/"
    ... 
    
    # STEP:10.添加后綴
    AddHandler cgi-script .cgi .pl .py
    ...

# STEP:11.開啟虛擬主機配置
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
...

 

 

 

 


 

詳細講解配置步驟:


Step:1.修改安裝目錄,在39行左右
當前Apache安裝存放的目錄,例如我這里的"G:/Apache"
修改Define SRVROOT后面的路徑

  

Step:2.修改Listen端口,在67行左右
默認為80,80端口可能會被其他程序占用,所以我這里修改為88,當然也可以修改為其他的8088、90等,只要沒有被占用就行了

  

Step:3.開啟基於主機的組授權(名稱或IP地址),在81行左右

直接去掉前面的#注釋即可
LoadModule access_compat_module modules/mod_access_compat.so

  

Step:4.開啟apache的代理模塊 ,在149行左右
直接去掉前面的#注釋即可
LoadModule proxy_module modules/mod_proxy.so

 

Step:5.開啟代理http和https請求,在157行左右
直接去掉前面的#注釋即可
LoadModule proxy_http_module modules/mod_proxy_http.so

 

Step:6.開啟rewrite模式,在167行左右
直接去掉前面的#注釋即可
LoadModule rewrite_module modules/mod_rewrite.so

 

Step:7.開啟虛擬主機動態配置,在188行左右
直接去掉前面的#注釋即可
LoadModule vhost_alias_module modules/mod_vhost_alias.so

 

Step:8.設置CGI路徑的訪問權限,在239行左右
原本的內容為
<Directory />
AllowOverride none
Require all denied
</Directory>

刪掉或注釋掉,修改為下面的內容
<Directory " G:/var/www/cgi-bin/">
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>

注意,所有的HTTP服務器執行CGI程序都保存在一個預先配置的目錄。
這個目錄被稱為CGI目錄,並按照慣例,它被命名為/var/www/cgi-bin目錄。
所以這里修改的目錄為“G:/var/www/cgi-bin/”。(我在G盤手動創建了"G:/var/www/cgi-bin/"目錄)

 

Step:9.設置CGI腳本文件路徑,在373行左右

后面的路徑修改為“G:/var/www/cgi-bin/”,跟上一步一樣
這里的意思是將" G:/var/www/cgi-bin/"映射為/cgi-bin/,當通過瀏覽器訪問/cgi-bin/目錄時,實際上就是訪問" G:/var/www/cgi-bin/"目錄

 

Step:10.AddHandler中添加.py后綴,,在428行左右
這樣我們就可以訪問.py結尾的Python腳本文件
先去掉前面的#注釋,再在后面加上.py就行了,注意用空格隔開

 

Step:11.開啟虛擬主機配置,在509行左右

直接去掉前面的#注釋即可
Include conf/extra/httpd-vhosts.conf

 

這樣修改httpd.conf就可以了,保存即可。

然后把Apache安裝成Windows后台服務
使用命令:httpd -k install -n "Apache2.4"
前面的配置沒問題的話,一般是安裝成功的
注意要先指定到Apache的bin目錄下再執行命令

  

啟動Apache
啟動:httpd.exe -w -n "Apache2.4" -k start 
停止:httpd.exe -w -n "Apache2.4" -k stop 
重啟:httpd.exe -w -n "Apache2.4" -k restart

注意,如果啟動失敗,出現這樣的錯誤, make_sock: could not bind to address [::]:443

請參考這篇文章的處理方式:https://www.cnblogs.com/music-liang/p/11845975.html

 

 啟動成功后,瀏覽器輸入 http://localhost:88/ 

現實這樣即為成功。

 

如果提示啟動失敗
進行winsock的修復
在運行里輸入:netsh winsock reset
然后重啟電腦即可

在G:/var/www/cgi-bin目錄下面放一個文件

 

 chap15.5.cgi文件內容如下。這是我學習Python基礎教程第15章的一個示例。

注意,第1行必須要加上Python解釋器。否則會出錯。

#!C:\Users\heliang\AppData\Local\Programs\Python\Python38-32\python.exe
print("Content-type:text/plain")
print()
print("-------使用CGI創建動態網頁--------")

"""
python -m http.server --cgi
如果是在Linux下面,則第1行 應該像下面這么寫
#!/usr/bin/env python
"""

# http://localhost:88/cgi-bin/chap15.5.cgi


print("Hello, world!")
print()
print("CGI")

在瀏覽器中輸入:

http://localhost:88/cgi-bin/chap15.5.cgi

 

 大功告成。

PS:
如果想刪除服務
執行:sc delete apache2.4

 

 

參考地址:

https://blog.csdn.net/zhuanshu666/article/details/74936940

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM