使用cmd打开 apache bin目录,输入 httpd.exe 启动

$ cd /d F:\phpStudy\PHPTutorial\Apache\bin

$ httpd.exe -k start

如果是基本的配置错误都可以找到提示

记录一次启动失败案例(1)

httpd.exe -k start
[Fri May 17 11:19:35.706223 2024] [mpm_winnt:error] [pid 2276:tid 560] (OS 2)系统找不到指定的文件。 : AH00436: No installed service named “Apache2.4”.

1、确定apache服务名

httpd.exe -k install -n “apache”
[Fri May 17 11:23:54.043552 2024] [mpm_winnt:error] [pid 17304:tid 564] AH00433: apache: Service is already installed.

2、加上服务名重新运行

httpd.exe -k start -n “apache”
httpd.exe: Syntax error on line 509 of F:/phpStudy/PHPTutorial/Apache/conf/httpd.conf: Expected </IfModule> but saw </IfModule>>

如果是配置错误,一般都可以找到

记录一次启动失败案例(2)

httpd.exe: Syntax error on line 73 of F:/phpStudy/PHPTutorial/Apache/conf/httpd.conf: Invalid LoadModule path modules/mod_access_compat.so

尝试打开modules目录发现无法进入,重启电脑即可

记录一次启动失败案例(3)

步骤1:

这一次只是重启了电脑后突然打不开的,因此确认不是本地配置导致的

步骤2:

$ cd /d F:\phpStudy\PHPTutorial\Apache\bin

$ httpd.exe

[Sat Jan 06 13:10:43.519198 2024] [so:warn] [pid 1296:tid 688] AH01574: module ssl_module is already loaded, skipping
[Sat Jan 06 13:10:43.519198 2024] [so:warn] [pid 1296:tid 688] AH01574: module fcgid_module is already loaded, skipping
(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address [::]:80
(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

提示80端口被占用,但是本地确实没有使用80端口的服务。

按照惯例,查找80端口并解除占用

#记下占用端口 80 的进程的 PID(Process ID),在上述命令的输出中,PID 一般在末尾列出。

$ netstat -ano | findstr :80
TCP [2409:8a3c:dc1:1698:38f1:334c:ce7:3358]:1837 [2409:8c3c:3600:107:8000:0:b00:89]:80 CLOSE_WAIT 11096

#解除80占用

taskkill /F /PID 11096

重新启动还是打不开。

步骤3:

在配置文件 httpd.conf 更改端口号为 8080

Listen 127.0.0.1:8080

重新启动运行成功

步骤4:

端口改回 80,重新启动运行成功。

记录一次启动失败案例(4)

步骤1:

这一次也是强制重启了电脑后突然打不开的,重启或更改端口仍然无效

步骤2:

下载一个相同的版本(2),启动测试,如果正常说明,本地版本(1)有异常

步骤3:

将版本(2)里的配置复制到本地版本(1)中,如果能启动,说明重启过程中弄坏了配置文件,此次就是这个原因

 

作者 admin

百度广告效果展示