【问题标题】:如何解决“错误:Apache 意外关闭”?
【发布时间】:2013-08-20 10:58:51
【问题描述】:

我刚刚重新安装了 XAMPP,当我尝试在 XAMPP 控制面板中启动我的 Apache 服务器时,我现在收到以下错误:

16:50:25  [Apache]     Status change detected: running
16:50:26  [Apache]     Status change detected: stopped
16:50:26  [Apache]     Error: Apache shutdown unexpectedly.
16:50:26  [Apache]     This may be due to a blocked port, missing dependencies,
16:50:26  [Apache]     improper privileges, a crash, or a shutdown by another method.
16:50:26  [Apache]     Press the Logs button to view error logs and check
16:50:26  [Apache]     the Windows Event Viewer for more clues
16:50:26  [Apache]     If you need more help, copy and post this
16:50:26  [Apache]     entire log window on the forums

我该如何解决这个问题?

【问题讨论】:

  • 我在安装新版本的 XAMPP 后开始遇到此问题。我认为问题出在端口上,因为几乎每篇文章都在谈论它们,但事实并非如此。当我查看error.log 时,我看到了PHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP build,这让我看到了answer。安装所需的可再发行组件解决了这个问题。

标签: apache xampp


【解决方案1】:

我尝试在 cmd 中执行 httpd.exe 并得到错误,即 httpd-vhosts.conf 中存在语法错误。 我检查了文件,发现出了什么问题,现在工作正常。

因此,如果您遇到此错误,则可能是由于 httpd-vhosts 或任何其他文件。

尝试通过 cmd 执行程序,您将获得错误详细信息以及语法错误所在的行。

祝你好运

【讨论】:

  • 这正是我的情况,帮助我解决了一个愚蠢的小语法错误!点赞!
【解决方案2】:

似乎没有人回答关于执行xampp_start.exe的问题。

我做了所有以前的答案,但它并没有解决我的问题。我发现运行 xampp_start.exe 将为您提供有关该问题的详细信息。

这就是我看到的结果:

如您所见,我遇到了路径问题或 xampp 指向不存在的文件夹。

【讨论】:

  • 这是救命稻草。我的 ssl 和日志文件路径无效。这帮助我纠正了它,它现在可以工作了。
  • 很酷的答案。拯救了我的一天
  • 这让我解决了我的问题,这是一个错误的目录
【解决方案3】:

如果您使用的是 Skype,您将收到此错误。

只需按 Ctrl+Alt+Del 即可转到 任务管理器 选择 Skype 并单击 结束任务 然后返回并在 Apache 启动后启动 Apache成功地。然后再次打开 Skype,现在两者都可以正常工作。

无需更改任何端口。

【讨论】:

    【解决方案4】:

    在我的例子中,我编辑了 http.conf 文件,因为我希望 localhost 可以被网络上的其他计算机访问,并且没有在我的网络适配器上设置静态 IP。我还检查了 netstat,发现没有人使用 80 端口。
    所以我打开 cmd 并输入

    ipconfig

    我还打开了 http.conf 并搜索(CTRL + F)“Listen 80”。它上面的行,如果没有注释,则可以通过网络访问 localhost。它应该看起来像这样:

    Listen 192.168.93.3:80

    比较 ipconfig 命令的结果,我发现我当前的 ip 地址与 http.conf 文件中的不一样.因此,我将 http.conf 文件中的 IP 地址更改为当前分配给我的 IP 地址,并且成功了。

    【讨论】:

      【解决方案5】:

      好吧,没有端口 80,不怪 Skype!我的问题确实很简单(&傻), 在我为 DocumentRoot 指令指定的路径之后,我有一个额外的反斜杠 (\)(在 Windows 上),所以我进行了这样的更改,问题就像鸭汤一样消失了。

      我的 index.php 在路径“D:\websites\dummy”中,而我的 httpd.conf 是这样的:

      <VirtualHost 127.0.0.2:80>
      ServerName dummy.local
      DocumentRoot "D:\websites\dummy\" #mistake here
      </VirtualHost>
      <Directory "D:\websites\dummy\"> #mistake here
          Require all granted
      </Directory>
      

      所以只需像这样更改这两行:

      #first mistake fix:
      DocumentRoot "D:\websites\dummy"
      #second (similar) mistake fix:
      <Directory "D:\websites\dummy">
      

      ...现在一切都很好。为防止将来出现此类错误,请始终复制您要引用的任何文件夹的路径,而不是自己输入。

      【讨论】:

        【解决方案6】:

        即使我遇到了这个问题并且我解决了它,但在我的情况下它是不同的。

        首先我尝试卸载Skype,但没有成功。但在我的 Windows 10 桌面上,我默认安装了指向 80 端口的 IIS(Internet 信息服务器)。

        我所做的只是将端口号更改为 8081,然后重新启动 XAMPP,这对我有用。

        但是我没有使用 IIS。

        这里是https://support.microsoft.com/en-in/help/149605/how-to-change-the-tcp-port-for-iis-services的链接

        【讨论】:

          【解决方案7】:

          解决方法是卸载 xampp 并重新安装。会成功的

          【讨论】:

          • 这不是解决问题的方法,而是避免问题。
          【解决方案8】:

          我刚刚在我的 xampp v3.2.2 [win 10 pro x64] 上遇到了这个错误,

          我首先尝试在管理员 cmd 中运行“net stop http”命令,但它没有解决问题,所以我继续尝试“netstat -abno”命令,我发现 ssl 端口(443 ) 被 vmware 使用。

          所以我的建议是,不要只寻找阻塞端口 80 的原因,还要寻找使用端口 443 的潜在程序。因为我真的不喜欢将默认端口号更改为 8081 和 4433。

          所以这就是你可以解决这个问题的方法......

          首先输入以下命令

          net stop http

          然后尝试启动 apache,如果它仍然不起作用。输入以下命令

          netstat -abno

          而且你肯定会得到那个占用你宝贵端口的麻烦应用程序。

          复制pid,然后使用以下命令

          taskkill /f /pid PID

          其中 PID 是您复制的 pid。

          希望这对某人有所帮助。

          【讨论】:

          • 为我工作。非常感谢。
          【解决方案9】:

          同样的错误。原来我加载了错误版本的 zend xdebug 扩展。 xdebug wizard 说使用 TS(线程安全)版本(即没有-NTS-),但显然我下载了不正确的非线程安全版本。即使我在 php.ini 文件中的路径和文件名准确无误,我仍然收到错误消息。当我下载不同版本并再次更新 php.ini 时,一切正常。

          php_xdebug-2.7.0-7.3-vc15-nts-x86_64.dll 给了我一个错误,但php_xdebug-2.7.0-7.3-vc15-x86_64.dll 没有错误

          【讨论】:

            【解决方案10】:

            如果按照上面的建议更改端口并没有解决问题,并且如果您可能玩过文件目录结构(例如,像我一样在安装后更改文件夹的名称),那么您可以试试这个,

            1. 打开 XAMPP 控制面板并单击 Apache 的“配置”
            2. 选择 Apache (httpd.conf)
            3. 在打开的编辑器中,按 CTRL+H 并找到旧文件夹名称的所有实例并将其替换为新名称。

            例如,就我而言,我已将 XAMPP 的主安装文件夹名称从 Xam 更改为 Xampp

            所以在编辑器中改变这个:

            Define SRVROOT "G:/Xam/apache"
            ServerRoot "G:/Xam/apache"
            DocumentRoot "G:/Xam/htdocs"
            <Directory "G:/Xam/htdocs">
            

            Define SRVROOT "G:/Xampp/apache"
            ServerRoot "G:/Xampp/apache"
            DocumentRoot "G:/Xampps/htdocs"
            <Directory "G:/Xampps/htdocs">
            

            编辑器中还有很多这样的实例,一个一个找到替换就行了。

            Apache (httpd-ssl.conf) 也这样做。

            【讨论】:

              【解决方案11】:

              这对我有用...

              如果您使用的是 Windows...

              在 Windows 搜索栏中搜索“cmd”。

              输入这个:C:\xampp\apache\bin\httpd.exe

              查找发生错误的文件和行。

              例如,我的在下面的文件中 在第 37 行。

              httpd-multilang-errordoc.conf

              打开代码并通过删除或修复它来修复错误。

              完成!我现在应该工作了。

              :)

              【讨论】:

              • 谢谢。它的工作。我的虚拟主机配置文件中有语法错误
              • 在我的情况下,错误日志文件是空的。使用这种方法,我发现问题出在哪里。完美。
              • 谢谢伙计。对我来说,这是 httpd-vhost.conf 中的这一行 - ErrorLog "logs/example-app/-error.log"。当我评论它时,瞧!
              【解决方案12】:

              在我的例子中,windows IIS 服务已经使用了端口。 您可以从 cmd 检查端口是否已被使用。打开 cmd 并运行以下命令:

              netstat -ano
              

              如果 IIS 正在使用它,您可以通过以下命令停止它。以管理员身份打开cmd,然后:

              iisreset /stop
              

              现在尝试运行 XAMPP,它应该可以工作。

              【讨论】:

                【解决方案13】:

                如果上述所有答案均无效,请执行此操作。注释掉 php.ini 文件中的所有扩展名。

                1. 在 xampp 控制面板中,点击 Apache config。
                2. 点击php.ini
                3. 在 php ctrl + F(扩展名)中查找 php.ini 中的所有扩展名
                4. 通过添加一个 ; 来注释掉每个活动的扩展。在每条延长线的开头。例子

                  ;;;extension=bz2

                5. 我放了 3 ;;;因为我想知道我注释掉的那些,所以当我回到德堡时,我很容易看到我注释掉了哪些。

                6. 确保所有 extensions=whatever 都被注释掉。

                7. 运行您的 apache 服务器。

                8. 要找出问题所在的扩展程序,请在重新启动服务器时一一取消注释您的扩展程序,直到找到罪魁祸首。

                【讨论】:

                  【解决方案14】:

                  您可以使用上述解决方案。此问题可以通过更改“httpd.conf”(C:\xampp\apache\conf\httpd.conf) 文件和“httpd-ssl.conf”(C:\xampp\apache\conf\extra\ httpd-ssl.conf) 文件。 如果问题仍然存在,您可以检查您的 Skype 端口。

                  但在我的情况下,情况有所不同。我必须在“server.crt”(C:\xampp\apache\conf\ssl.crt\server.crt)文件中进行更改。尝试在管理模式下从命令行运行 xammp apache。 "C:\xampp\apache\bin\httpd.exe" 这会给你错误 -in which file 和 -which line。同样,我在 server.crt 文件中有一个错误,它是空白的。 如果您在任何其他系统中运行 xammp,只需复制此文件的内容(C:\xampp\apache\conf\ssl.crt\server.crt)并粘贴到您的 server.crt 文件中,您就完成了!

                  感谢和问候 阿卡那

                  【讨论】:

                    【解决方案15】:

                    就我而言,这要容易得多。我关闭了本机 Windows 防火墙。然后重新加载 comp 启动 xampp 并再次启动 apache。然后重新打开防火墙。

                    【讨论】:

                      【解决方案16】:

                      您可以从 XAMPP 目录运行 apache_start.bat 文件以查看有关您的错误详细信息的详细信息。

                      【讨论】:

                      • 谢谢,它有帮助。我在 http-vhosts.conf 文件中有错误。
                      【解决方案17】:

                      就我而言,我遇到了这个问题,因为 Bitnami Wordpress 处于活动状态。

                      • 打开 Bitanami 应用程序
                      • 转到Manage Servers
                      • 确保停止MySqlApache
                      • 重启 xampp 即可。

                      【讨论】:

                        【解决方案18】:

                        好吧,就我而言,这真的很简单。

                        我在我的以太网端口上设置了一个本地 IP 地址。

                        然后出现此错误。原来我没有连接 连接到它的电缆,因此 IP 不会解析为 Apache 中设置的 IP。

                        解决方案是将电缆连接到交换机或路由器。然后就可以启动Apache了。

                        【讨论】:

                          【解决方案19】:

                          对我有用的技巧是,

                          以管理员身份启动 XAMPP

                          我尝试使用 httpd.config 和 httpd-ssl.config 更改端口。它结束了我将其保存在 .txt 文件中。还使用了右上角的配置。没有工作

                          我正在使用 VMworkstation。

                          【讨论】:

                            【解决方案20】:

                            尝试以下方法,以上都没有为我解决问题

                            选择“以管理员身份运行”

                            然后点击Apache旁边的大左框

                            并选择卸载 Apache

                            我不知道为什么会这样,但它直接解决了我的问题!

                            【讨论】:

                              【解决方案21】:

                              有时问题不是端口问题,但可能是由于您所做的配置错误并且 Apache 没有在 Windows 的事件查看器上记录错误。要解决这个问题,只需

                              cd C:\xampp\apache\bin
                              

                              然后运行

                              httpd.exe
                              

                              Apache 然后会为您吐出错误,例如如下

                              AH00526: Syntax error on line 2 of C:/xampp/apache/conf/httpd.conf: Invalid command 'This', perhaps misspelled or defined by a module not included in the server configuration
                              

                              我希望这可以帮助一些可怜的灵魂:)

                              【讨论】:

                              • 你节省了我的时间
                              【解决方案22】:

                              我尝试了所有解决方案,但问题仍然存在。事实证明,安装 Visual Studio 2019 后,我的 C++ Redistributables 发生了很多变化。

                              我真的跑了

                              test_php.bat

                              这向我显示了错误

                              C:\Windows\SYSTEM32\VCRUNTIME140.dll' 14.0 与第 0 行未知中与 14.28 链接的 PHP 版本不兼容

                              因此我继续:

                              Microsoft Visual Studio 网站 --> 其他工具、框架和 Redistributables --> Microsoft Visual C++ Redistributable for Visual 工作室 2019

                              并下载。安装文件并重新启动我的电脑后,问题解决了。 Apache 现在运行没有错误

                              【讨论】:

                                【解决方案23】:

                                更改端口后,请记住在配置中更改端口。 它将简单地通过“http://localhost:8081/phpmyadmin/”而不是 http://localhost/phpmyadmin/ 运行

                                【讨论】:

                                  【解决方案24】:

                                  这对我有用,我想分享它

                                  如果您已经按照this article 中的步骤为 xampp 创建了 ssl

                                  打开C:\xampp\apache\conf\extra\httpd-xampp.conf

                                  查看SSLCertificateFile "crt/site.test/server.crt"

                                  如果httpd-xampp.conf 中的site.test 不同,则检查C:\xampp\apache\crt\#YOUR_SITE_NAME_HERE\。 将httpd-xampp.conf 中的site.test 更改为#YOUR_SITE_NAME_HERE

                                  【讨论】:

                                    猜你喜欢
                                    • 2013-08-04
                                    • 2011-09-24
                                    • 2022-06-25
                                    • 2021-10-04
                                    • 2021-08-23
                                    • 2013-08-20
                                    • 2022-06-15
                                    相关资源
                                    最近更新 更多