我們在調試Web頁面時,期望能使用80埠調試(比如本博客站點的每篇博客,我在發佈之前,均需要在我的Mac電腦進行博客內容和樣式的調試和校驗)。而Mac電腦的80埠預設被系統Apache服務占用,下麵分享我常用的2種使用80埠調試Web站點頁面的辦法…… ...
前提:確認占用80埠的程式(sudo lsof -i:80)
我研發用的是Mac電腦,查看80埠被占用的進程命令:sudo lsof -i:80
我Mac電腦80埠占用進程如下:httpd進程占用了80埠,httpd進程即為Apache服務,下麵提供了2種解決辦法。
OXL-MacBook:~ obullxl$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 128 root 4u IPv6 0x837e41eb989fc6d1 0t0 TCP *:http (LISTEN)
WeChat 390 obullxl 103u IPv4 0x837e41e6ce1a65d9 0t0 TCP 192.168.101.30:49216->182.50.15.211:http (CLOSE_WAIT)
WeChat 390 obullxl 106u IPv4 0x837e41e6ce1a3089 0t0 TCP 192.168.101.30:49217->182.50.10.149:http (CLOSE_WAIT)
WeChat 390 obullxl 342u IPv4 0x837e41e6ce6045d9 0t0 TCP 192.168.101.30:52992->61.241.138.140:http (CLOSE_WAIT)
httpd 616 _www 4u IPv6 0x837e41eb989fc6d1 0t0 TCP *:http (LISTEN)
httpd 4646 _www 4u IPv6 0x837e41eb989fc6d1 0t0 TCP *:http (LISTEN)
httpd 4647 _www 4u IPv6 0x837e41eb989fc6d1 0t0 TCP *:http (LISTEN)
httpd 4648 _www 4u IPv6 0x837e41eb989fc6d1 0t0 TCP *:http (LISTEN)
方案一:暫停Apache系統服務後,啟動Web調試
Apache服務啟動和暫停,可以使用apachectl命令行:sudo apachectl restart
和sudo apachectl stop
我的電腦暫停了Apache服務之後,再次查看80埠已經沒有占用了:
OXL-MacBook:~ obullxl$ sudo apachectl stop
OXL-MacBook:~ obullxl$ sudo lsof -i:80
OXL-MacBook:~ obullxl$
為了讓我們調試Web站點頁面更加順暢,我們可以把Apache暫停命令加到啟動Web調試的命令中,如Hugo靜態站點的腳本:
#!/bin/sh
# 暫停Apache服務,釋放80埠
sudo apachectl stop
# 在80埠上啟動Hugo,調試頁面
sudo hugo server -p 80 -D
本方案的唯一不足就是:當我們使用control + C
暫停了Hugo服務,釋放了80埠後,Apache服務不能自動啟動。需要手工執行命令重啟Apache服務,優化方案請看方案二。
方案二:修改Apache系統服務80埠為其他埠
方案一可以解決我們在80埠調試Web頁面,但是在調試完成之後,Apache服務需要手工執行命令重啟。本方案就是修改Apache服務預設的80埠為其他埠,讓出80埠給我們業務頁面使用。
- 第一步 找到Apache的安裝目錄:我Mac電腦目錄是
/etc/apache2
OXL-MacBook:~ obullxl$ cd /etc
OXL-MacBook:etc obullxl$ ls | grep apache
apache2
OXL-MacBook:etc obullxl$ cd apache2/
OXL-MacBook:apache2 obullxl$ ls
extra magic other httpd.conf httpd.conf.pre-update mime.types users
httpd.conf~previous original
- 第二步 修改Apache配置文件(
httpd.conf
)中80埠為其他埠,如8080埠。為了安全起見,修改配置文件之前,先進行備份。
OXL-MacBook:apache2 obullxl$ sudo cp httpd.conf httpd.conf.20231015
Password:
OXL-MacBook:apache2 obullxl$ sudo vi httpd.conf
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>
- 第三步 重啟Apache服務:
sudo apachectl restart
,同時可以查看8080埠,已經被Apache服務占用。
OXL-MacBook:apache2 obullxl$ sudo apachectl restart
OXL-MacBook:apache2 obullxl$ sudo lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 6942 root 4u IPv6 0x837e41eb989f9cd1 0t0 TCP *:http-alt (LISTEN)
httpd 6955 _www 4u IPv6 0x837e41eb989f9cd1 0t0 TCP *:http-alt (LISTEN)
最後
方案一和方案二個人驗證均可行~
我的本博客原地址:https://ntopic.cn/p/2023101501
本文作者:奔跑的蝸牛,轉載請註明原文鏈接:https://ntopic.cn