Apache 意外关闭
Posted
技术标签:
【中文标题】Apache 意外关闭【英文标题】:Apache shutdown unexpectedly 【发布时间】:2013-06-30 17:08:36 【问题描述】:我正在使用 XAMPPS 从我的机器托管 php 文件。我最近安装了 XAMPP,但我无法启动 Apache 服务,因为 PID 4 - NT Kernel & System 正在使用端口 80。
我知道通过使用不同的端口(例如 httpd.conf 中的端口 8080 等更改)可以解决此问题。但是我需要端口 80 由 PID 4 进程释放并分配给 Apache 服务。我过去做过,但随着时间的推移忘记了解决步骤。请帮我解决它
这是我在启动 Apache 时遇到的错误
`11:19:52 AM [Apache] Error: Apache shutdown unexpectedly.`
`11:19:52 AM [Apache] This may be due to a blocked port, missing dependencies,`
`11:19:52 AM [Apache] improper privileges, a crash, or a shutdown by another method.`
`11:19:52 AM [Apache] Press the Logs button to view error logs and check`
`11:19:52 AM [Apache] the Windows Event Viewer for more clues`
`11:19:52 AM [Apache] If you need more help, copy and post this`
`11:19:52 AM [Apache] entire log window on the forums`
来自 apache 错误日志文件的日志:
[Wed Jul 03 00:54:17.004882 2013] [mpm_winnt:notice] [pid 248:tid 240] AH00354: Child: Starting 150 worker threads.
[Wed Jul 03 01:17:37.485351 2013] [mpm_winnt:notice] [pid 4200:tid 228] AH00428: Parent: child process 248 exited with status 1073807364 -- Restarting.
[Wed Jul 03 08:51:45.875976 2013] [ssl:warn] [pid 400:tid 228] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
[Wed Jul 03 08:51:46.188476 2013] [core:warn] [pid 400:tid 228] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Wed Jul 03 08:51:46.844726 2013] [ssl:warn] [pid 400:tid 228] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
[Wed Jul 03 08:51:49.047851 2013] [mpm_winnt:notice] [pid 400:tid 228] AH00455: Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16 configured -- resuming normal operations
[Wed Jul 03 08:51:49.047851 2013] [mpm_winnt:notice] [pid 400:tid 228] AH00456: Server built: Feb 23 2013 13:07:34
[Wed Jul 03 08:51:49.047851 2013] [core:notice] [pid 400:tid 228] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache
[Wed Jul 03 08:51:49.063476 2013] [mpm_winnt:notice] [pid 400:tid 228] AH00418: Parent: Created child process 5384
[Wed Jul 03 08:51:50.579101 2013] [ssl:warn] [pid 5384:tid 240] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
[Wed Jul 03 08:51:51.579101 2013] [ssl:warn] [pid 5384:tid 240] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
[Wed Jul 03 08:51:51.750976 2013] [mpm_winnt:notice] [pid 5384:tid 240] AH00354: Child: Starting 150 worker threads.
注意:我没有 IIS、Web 客户端、全球 Web 服务。
【问题讨论】:
没有找到相关的错误日志! 不是真正的 PHP 相关恕我直言!似乎 80 端口已被使用或被某些防火墙阻止。 从资源监视器,我可以看到系统(PID 4)分配了端口 80。@tlenss :我还可以看到 Apache httpd.exe 的防火墙异常 您是否以管理员身份安装了 xampp?它确实起到了作用?从那以后你有什么改变吗? @Elzo Valugi:是的,我尝试以管理员身份安装 Xampp,但没有成功:( 【参考方案1】:在您的 XAMPP 控制面板上,在 apache 旁边,选择“配置”选项并选择第一个文件 (httpd.conf):
在那里,查找“listen”行(您可以使用记事本中的查找工具),并且必须有一行说明“Listen 80”。注意:还有其他带有“listen”的行,但它们应该被注释(以#开头),您需要更改的那一行是“listen 80”。现在将其更改为“听 1337”。
现在启动 apache。
如果错误仍然存在,那是因为有另一个端口已在使用中。因此,再次选择配置选项(在 xampp 控制面板中的 apache 旁边),这次选择第二个选项(httpd-ssl.conf):
在那里,寻找“Listen 443”这一行并将其更改为“Listen 7331”。
启动 apache,它现在应该可以工作了。
【讨论】:
它对我有用。多谢 :) 。将此标记为答案。这对其他人会有帮助。 为我工作。应该被接受为正确答案。 我的救主,你值得我竖起大拇指!【参考方案2】:如果您使用的是最新版 Skype,请访问:
工具 -> 选项 -> 高级 -> 连接。
禁用“使用端口 80 和 443 替代..” 退出并关闭所有 Skype 窗口。再次尝试重新启动 Apache。
【讨论】:
【参考方案3】:您应该先在 XAMP 文件夹中运行文件 setup_xampp.bat!
【讨论】:
我尝试了以上所有方法(Skype、Ports、IIS)。这就是为我解决的问题。【参考方案4】:按照这些:
-
打开您的 xampp 控制面板,然后单击其“配置”
选择“Apache (httpd.conf)”并在下面找到这段代码并将其更改为以下代码:
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
#
# Dynamic Shared Object (DSO) Support
保存(ctrl + s)
之后,返回 xampp 控制面板并再次单击其配置
选择“Apache (httpd-ssl.conf)”在下面找到这段代码并再次更改:
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
# Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
保存(ctrl + s)
然后,点击“配置”(注意:在netstat上方),点击“服务和端口设置”,然后保存。
最后,转到“控制面板”->“程序和功能”->“打开或关闭 Windows”。
取消选中“Internet 信息服务”,然后单击确定。
等待它,您的计算机/笔记本电脑将自动重新启动并尝试再次打开您的 xampp 控制面板,然后启动您的 Apache。
【讨论】:
【参考方案5】:这意味着80端口已经被另一个端口使用了。
只需按照以下步骤操作:
-
打开窗口->点击运行(win + R)->输入services.msc
转到 IIS Admin -> 右键单击它并单击 Stop 选项。
打开XAMPP点击Apache模块的Start Action,Apache Module运行。
或
要在 命令提示符 中查找 Apache 的端口 (80),只需键入 netstat -aon 它会在 Windows 上显示当前使用的端口,在本地地址列显示为0.0.0.0:80。如果它显示此端口,则另一个连接已使用此端口号。
Windows XP 中的活动连接:
我在安装xampp-win32-1.6.5-installer 后解决了我的问题,之前我使用的是xampp 版本xampp-win32-1.8.2-0-VC9-installer,当时我收到了这个错误。现在它解决了我的问题。
【讨论】:
这很奇怪,因为我遇到了与问题中相同的错误。但是,我确实在“C:\xampp\apache\conf\extra\httpd-vhosts.conf”中设置了 VirtualHost,老实说,它没有给出错误的逻辑。无论如何,我认为有什么东西阻碍了端口,所以我基本上做了你所做的,并且我的端口 80 是空闲的。尽管如此,如果我撤消我在 httpd-vhosts.conf 中所做的事情,那么 apache 就会像魅力一样开始。无论如何,这就是我想要做的:samminds.com/2012/07/… @udaykiran pulipati:感谢您的回答。我认为你是对的,版本 1.8.2 有这个问题。我知道进程(PID 4 - NT Kernel & System)正在使用端口 80,我无法刷新这个端口以便 apache 可以使用它。但是,我已将 Apache 配置为使用端口 8080,但这只是一种解决方法,而不是它的确切解决方案。【参考方案6】:在您的 XAMPP 控制面板上,在 apache 旁边,选择“配置”选项并选择第一个文件 (httpd.conf):
在那里,查找“listen”行(您可以使用记事本中的查找工具),并且必须有一行说明“Listen 80”。注意:还有其他带有“listen”的行,但它们应该被注释(以#开头),您需要更改的那一行是“listen 80”。现在将其更改为“听 1337”。
现在启动 apache。
如果错误仍然存在,那是因为有另一个端口已在使用中。因此,再次选择配置选项(在 xampp 控制面板中的 apache 旁边),这次选择第二个选项(httpd-ssl.conf):
在那里,查找“Listen 443”这一行并将其更改为“Listen 7331”。
启动 apache,它现在应该可以工作了。
【讨论】:
【参考方案7】:我有一个类似的问题(这就是我来这个帖子的原因),它源于 httpd-vhosts.conf 中的拼写错误
而不是<VirtualHost domain-name:80
>我不小心写成(通过复制粘贴)<domain-name *:80
>
【讨论】:
【参考方案8】:在我的情况下,我已将 htdocs 移动到 httpd.conf 中更新的新位置,效果很好。然后我在更新 httpd-vhost.conf 文件后收到了同样的错误。
我发现错误是由 vhost 配置文件中的拼写错误引起的。以前我将所有“DocumentRoot”更改为新的 htdocs 位置,但忘记更新“ErrorLog”的新位置。改正丢失的路径后,Apache 又可以流畅运行了。
【讨论】:
是的,同样的事情也发生在我身上。目录不正确会报错。【参考方案9】:这个问题可能是因为系统安装了Skype。 Skype 和 apache 服务总是冲突。确保在启动 xampp 之前未启动您的 Skype。
【讨论】:
这个对我有用。只需退出 Skype,XAMPP/Apache 就会再次运行。谢谢!【参考方案10】:您的 XAMPP 在 Multi-Processing Module
mpm 处重新启动并出现以下错误
[mpm_winnt:notice] [pid 4200:tid 228] AH00428:
`Parent: child process 248 exited with status 1073807364 -- Restarting.`
在 xampp 的 httpd.conf 文件中添加以下内容以解决此问题。
<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>
【讨论】:
你是对的人!这些 mpm 通知是由于较小的 ThreadStackSize 引起的。我遇到了一些情况,即 XAMPP 恢复了httpd.exe
应用程序,但在 httpd.exe
意外关闭后它没有响应任何请求。感谢您分享如此出色的解决方案。【参考方案11】:
我认为错误就在这里
[pid 5384:tid 240] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
或者有另一个应用程序正在使用端口 80 尝试重新启动计算机并仅打开 apache 看看会发生什么
或 尝试重新安装 apache 或使用 Ampps
【讨论】:
Dev :我尝试过重新启动机器以及 Apache 或 XAmmps。但运气不好 :( :( 我会尝试重新安装 XAMMP。【参考方案12】:这是因为 IIS 自动在您的计算机上运行。 IIS 占用了 80 和 443 端口。
我卸载了 IIS 以使用 Apache httpd。
【讨论】:
【参考方案13】:您可以在 Skype 设置 - 高级设置 - 连接中禁用端口 80 和 443 作为备选传入连接。
(来源:ctrlv.in)
【讨论】:
【参考方案14】:停止 IIS 服务。它应该可以工作
【讨论】:
【参考方案15】:只需将端口 80 更改为 8080(在 httpd.conf 中),将端口 443 更改为 4433(在 httpd-ssl.conf 中)
【讨论】:
您能对此答案添加解释吗?【参考方案16】:我在安装软件后关闭计算机并重新启动,这解决了我的问题。
【讨论】:
【参考方案17】:我在安装 XAMPP 时也遇到了同样的问题。原因是 httpd.conf 中配置的端口 80 已在其他应用程序中使用(例如,在 Skype 中)。您可以将 httpd.conf 中的端口值更改为 8080 或其他数字。单击配置图标并打开 http.conf 文件。搜索 80 并执行以下步骤
在 httpd.conf 中更改 听 80 听 8080 和 服务器名称 localhost:80 到 服务器名称 localhost:8080
您可以通过单击 XAMPP 控制面板中的 netstatt 图标来检查当前使用的端口
【讨论】:
以上是关于Apache 意外关闭的主要内容,如果未能解决你的问题,请参考以下文章
如何修复XAMPP“Apache / mysql意外关闭”错误