XAMPP - Apache 无法启动 - 正在尝试启动 Apache 服务
XAMPP - Apache could not start - Attempting to start Apache service
在尝试使用 XAMPP 启动 Apache 时,我在 XAMPP UI 中收到 - "Attempting to start Apache service..." 消息。没有进一步的详细信息。
我在哪里可以看到日志(我是 运行 XAMPP 管理员)?
我意识到这是一个端口问题,因为我的机器上有 运行 IIS 和其他 Web 服务器。但我更感兴趣的是在 UI.
中看到带有端口号的详细错误消息
似乎它没有记录在 UI 或日志文件中(至少在我的情况下),但在事件查看器中(控制面板 -> 查看事件日志)。 偶查看器下->Windows日志->应用程序
我可能会看到如下所示的权限错误:
An attempt was made to access a socket in a way forbidden by its access permissions. : AH00072: make_sock: could not bind to address 0.0.0.0:443
要解决此 SSL 端口权限问题,请更改 httpd-ssl.conf (C:\xampp\apache\conf\extra)[=13= 中的以下行]
# When we also provide SSL we have to listen to the
standard HTTP port (see above) and to the HTTPS port
Listen xxx
将 XXX 替换为您计算机中打开的任何有效端口号
如果端口 80 有问题,请更改 httpd.conf 文件 (C:\xampp\apache\conf)
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:8000
我也总结了我遇到的其他解决方案:
- Skype 通常会阻止 Apache 端口。所以终止它并重试。
- 找到正在使用阻塞端口 (netstat -ano) 的进程 ID (PID) 并在 Windows 任务管理器中终止相应的进程。
开始 xampp(作为管理员),
(1)右击C:\xampp\xampp-control.exe,以管理员身份运行。
(2) 卸载服务模块,然后安装服务模块。
(3) 现在尝试启动 apache 和 mysql.
检查您的 DocumentRoot 路径(在 httpd.conf
中);那里的错字可能会导致这个问题。
如果端口 80 不是问题!
首先检查端口 80 是否正在使用,因为这可能是一个问题。
您可以通过在 cmd 中键入 "netstat -an" 来完成此操作。在本地地址下查找 0.0.0.0:80,如果您发现它正在使用中,请按照@Karthik 的解决方案进行操作。但是,我遇到了类似的问题,但我的端口 80 未被使用。
我的 XAMPP 有错误的路径位置,解决此问题的步骤:
1.Find 您正在使用的 Apache 版本,您可以通过查看服务(控制面板、管理工具、服务)并找到 Apache 在我的例子中它被列为 Apache2.4
2.Close XAMPP.
3.Run 以管理员身份运行。
4.execute 'sc delete "Apache2.4"'(将您的版本替换为我的版本,并且没有周围的 ' ',但在 Apache 周围有 " ")。
5.execute 'sc delete "mySQL"',输入时再次删除 ''。
6.reopen XAMPP 并尝试启动 Apache
如果您在使用 FileZill、Mercury 或 Tomcat 时遇到问题,您也可以在这里尝试,但我自己还没有测试过。
希望对您有所帮助!
将 Xampp 作为控制台应用程序启动(只需双击 Xampp 根文件夹中的 xampp_start.exe)是我在 Windows 10 (没有 Skype,没有 Word Wide Web 发布服务)。 WampServer 和 UwAmp 也没有工作。
更新到 PHP7.2
时遇到同样的问题
问题:
首先我关闭了 skype,然后检查端口 80 是否不是问题。你怎么能检查呢?请参阅上面的@AlexT 评论。
就我而言,端口 80 不是问题。所以现在我必须找出问题所在。所以我检查了错误日志 Control Panel > Even viewer > Windows Logs > Application 并发现以下针对 Apache2.4
的错误
httpd.exe: Syntax error on line 520 of C:/xampp/apache/conf/httpd.conf: Syntax error on line 18 of C:/xampp/apache/conf/extra/httpd-xampp.conf: Cannot load C:/xampp/php/php7ts.dll into server: The Apache service named is not a valid Win32 application.
这意味着我安装了错误的 PHP 版本。其实我下载的是win64版本,而我需要的版本是Win32。
所以我从以下位置下载了正确的版本:Download PHP 7.2.0 将其解压缩到 C:/xampp/php 文件夹中,重新启动了 apache 并且它工作了:)
在我测试了所有可能的选项后,我的场景有所不同。如果您更改了端口但仍然遇到同样的问题,那么您可以尝试一下。这是在 Windows 7 中完成的。
第 1 步: 通过转到控制面板 -> 系统和安全 -> 管理工具 -> 事件查看器 -> Windows 日志确认错误原因-> 应用程序 -> 错误。我的说“名为的 Apache 服务报告了以下错误:
httpd.exe: Syntax error on line 424 of C:/xampp/apache/conf/httpd.conf: Cannot load c:\xampp\php\php5apache.dll into server: The specified module could not be found." So I needed to change \php5apache.dll to the version of my php and apache version installed which was php7apache2_4.dll
第 2 步: 要为您的 .dll php 和 apache 文件获取正确的名称,请转到 C:\xampp\php。您会在文件夹中看到类似 php7apache2_4.dll 的内容以及其他文件。
第 3 步: 转到 C:/xampp/apache/conf/httpd.conf 并编辑配置文件并将 "c:\xampp\php\php5apache.dll" 更改为 "c:\xampp\php\php7apache2_4.dll" 在我的例子中.确保以管理员身份打开文件并保存所做的更改。
第 4 步: 运行 xampp 服务器和一切正常。在对 apache 配置文件进行更改之前,不要忘记关闭 xampp 服务器。
希望这对您有所帮助。干杯! :)
我在 httpd.conf 中有一个 hard-coded IP,而我的本地 IP 已更改,这导致了我的问题,更改了 IP 并再次运行
当我运行xampp控制面板正常时:
我曾经 运行
我无法启动apache
所以,我将 运行 与管理员联系:
我可以运行apache
对于那些不小心(或没有)更改其中一个 .conf 文件而 apache 没有 运行 即使尝试了上述所有解决方案的人。
跟踪问题所在位置的一种简单方法是通过命令提示符 运行 Apache:
(On windows) : 以管理员身份打开命令提示符,然后在 Apache 的 bin 文件夹中导航,下一步 运行
httpd
为了运行apache
C:\xampp\apache\bin\httpd
我的情况是:
有人在导致问题的特定文件中添加了虚拟主机。我评论了这些行和 Apache 运行 很好。
尝试安装 XAMPP 的 x86 版本。他们网站上的默认 XAMPP 版本是 x64(可能是因为我使用的是 x64 Windows 7)。
download link here
我在 Program Files 下安装时遇到了这个问题,由于写入问题,他们不推荐这样做。如果您没有以管理员身份登录并使用密码进行安装,这可能只是一个问题。我只是卸载并安装在不需要管理员权限的目录中。
确保 Apache 没有在服务(控制面板、管理工具、服务)中被禁用。如果它已禁用,则将其设置为手动,它应该 运行。那是我的情况,我发现 Apache 已禁用。
针对我的特定情况的解决方案(它已经工作了几天才变得乏味):
端口 80 不是问题,但我在弄乱 Services 和 Startup 时做了一些事情。
- 在 Windows“开始”菜单中键入
msconfig
- 点击系统配置
Screenshot for System Configuration
- 在 Services 选项卡中,搜索 Apache24(单击 window 底部复选框中的 "Hide all Microsoft services" 以便于查找)
- 如果其复选框未选中,请选中它
如果已经检查过了,那么本指南将无济于事。但是如果是:
- 点击确定,您的电脑将需要重新启动
- 再试一次!就我而言,一旦我打开 Xampp
,Apache 就已经是 运行
我遇到了同样的问题,但这是因为我已经安装了以前版本的 xampp,我尝试安装更新的版本。我在另一个文件目录中安装了较新的版本(我将文件目录命名为 xampp2)。我通过卸载较新版本、重命名旧版本(我将其重命名为 xamppold)并再次安装 xampp 来解决问题。
我猜如果你没有在另一个文件目录中安装xampp,那么重新安装xampp应该就足够了。如果您担心您的文件,您总是可以在重新安装之前进行备份 xampp。
我在查看 xampp activity 日志(底部的列表)并意识到 xampp 试图打开自定义文件路径后解决了问题,但我有另一条路线小路。如果第一个选项不起作用,至少你可以在 activity 日志中向上滚动,看看你在以管理员身份启动并尝试重新安装 Apache 模块或尝试启动模块时遇到了什么错误。
您可能想知道为什么我不从一开始就简单地卸载整个东西,答案是因为我必须在 xampp 中为一些不同的项目调整一些东西(从改变端口,将 .dll 添加到 Apache 中的 运行 mongo.db),我只是懒得再重新做一遍:b
我希望我的回答对任何人都有帮助,因为这是我第一次在 Whosebug 中写作:)
干杯
我有相同的 issue.Just 单击服务 button.Then 找到 apache 并右键单击 > 属性 > 将启动类型设置为自动/手动。现在关闭 apache 并尝试 again.It 会起作用!
在我的例子中,有同样的问题 Xampp window,我从旧的 \apache\conf\extra\httpd-vhosts.conf 复制了条目 Xampp 版本到新安装的版本,这样我就可以继续在浏览器中打开本地项目。 vhosts 路径之一是错误的。删除该条目后,Apache 正常启动。
@Karthik 对 "in the Event viewer (Control panel -> View Event Logs" 的引用节省了我的时间。很容易假设 Xampp 日志会指出问题所在。它没有。
我遇到了同样的问题,在 xampp 文件夹中执行 "setup_xampp.bat" 解决了我的问题。
对我来说,这不是端口或服务问题;我必须 re-run XAMPP 安装脚本。虽然这并没有直接解决我的问题,但脚本比 XAMPP 日志要冗长得多,为我指明了正确的方向以实际解决问题。
在 XAMPP GUI 中,单击 Shell,键入 set
,按 Tab 自动完成 setup_xampp.bat
文件,然后按 Enter 到 运行 它。
在我的例子中,我得到了以下输出:
[ERROR]: Test php.exe failed !!!
[ERROR]: Perhaps the Microsoft C++ 2008 runtime package is not installed.
[ERROR]: Please try to install the MS VC++ 2008 Redistributable Package from the Mircrosoft page first
[ERROR]: http://www.microsoft.com/en-us/download/details.aspx?id=5582
这个特殊错误具有误导性。尽管它指定了 Visual C++ 2008 Redistributable Package,PHP 7.4.x 需要 Visual C++ 2019 Redistributable Package.
安装后并按照提示重新启动,果然我现在可以正常启动 Apache。
还要检查您的 xampp 是否安装在主目录(如 C、D 或 E)中,而不是安装在该目录的文件夹中?即(“D:/Xampp”还是“D:/something/Xampp”)如果它不在目录的主路径中,它将显示此错误。
将您的 xampp 目录从“D:\Something\Xampp”复制到“D:”
于是就变成了这样“D:\Xampp”
问题将得到解决。
如果您曾经编辑过端口号,请确保端口号前没有 space。
从 Xampp 控制面板,单击配置(在 Apache 旁边),然后选择 Apache(httpd.config
),搜索 listen 80
并将端口更改为另一个端口。
在尝试使用 XAMPP 启动 Apache 时,我在 XAMPP UI 中收到 - "Attempting to start Apache service..." 消息。没有进一步的详细信息。
我在哪里可以看到日志(我是 运行 XAMPP 管理员)?
我意识到这是一个端口问题,因为我的机器上有 运行 IIS 和其他 Web 服务器。但我更感兴趣的是在 UI.
中看到带有端口号的详细错误消息似乎它没有记录在 UI 或日志文件中(至少在我的情况下),但在事件查看器中(控制面板 -> 查看事件日志)。 偶查看器下->Windows日志->应用程序
我可能会看到如下所示的权限错误:
An attempt was made to access a socket in a way forbidden by its access permissions. : AH00072: make_sock: could not bind to address 0.0.0.0:443
要解决此 SSL 端口权限问题,请更改 httpd-ssl.conf (C:\xampp\apache\conf\extra)[=13= 中的以下行]
# When we also provide SSL we have to listen to the
standard HTTP port (see above) and to the HTTPS port
Listen xxx
将 XXX 替换为您计算机中打开的任何有效端口号
如果端口 80 有问题,请更改 httpd.conf 文件 (C:\xampp\apache\conf)
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:8000
我也总结了我遇到的其他解决方案:
- Skype 通常会阻止 Apache 端口。所以终止它并重试。
- 找到正在使用阻塞端口 (netstat -ano) 的进程 ID (PID) 并在 Windows 任务管理器中终止相应的进程。
开始 xampp(作为管理员), (1)右击C:\xampp\xampp-control.exe,以管理员身份运行。 (2) 卸载服务模块,然后安装服务模块。 (3) 现在尝试启动 apache 和 mysql.
检查您的 DocumentRoot 路径(在 httpd.conf
中);那里的错字可能会导致这个问题。
如果端口 80 不是问题!
首先检查端口 80 是否正在使用,因为这可能是一个问题。 您可以通过在 cmd 中键入 "netstat -an" 来完成此操作。在本地地址下查找 0.0.0.0:80,如果您发现它正在使用中,请按照@Karthik 的解决方案进行操作。但是,我遇到了类似的问题,但我的端口 80 未被使用。 我的 XAMPP 有错误的路径位置,解决此问题的步骤:
1.Find 您正在使用的 Apache 版本,您可以通过查看服务(控制面板、管理工具、服务)并找到 Apache 在我的例子中它被列为 Apache2.4
2.Close XAMPP.
3.Run 以管理员身份运行。
4.execute 'sc delete "Apache2.4"'(将您的版本替换为我的版本,并且没有周围的 ' ',但在 Apache 周围有 " ")。
5.execute 'sc delete "mySQL"',输入时再次删除 ''。
6.reopen XAMPP 并尝试启动 Apache
如果您在使用 FileZill、Mercury 或 Tomcat 时遇到问题,您也可以在这里尝试,但我自己还没有测试过。
希望对您有所帮助!
将 Xampp 作为控制台应用程序启动(只需双击 Xampp 根文件夹中的 xampp_start.exe)是我在 Windows 10 (没有 Skype,没有 Word Wide Web 发布服务)。 WampServer 和 UwAmp 也没有工作。
更新到 PHP7.2
时遇到同样的问题问题: 首先我关闭了 skype,然后检查端口 80 是否不是问题。你怎么能检查呢?请参阅上面的@AlexT 评论。
就我而言,端口 80 不是问题。所以现在我必须找出问题所在。所以我检查了错误日志 Control Panel > Even viewer > Windows Logs > Application 并发现以下针对 Apache2.4
的错误httpd.exe: Syntax error on line 520 of C:/xampp/apache/conf/httpd.conf: Syntax error on line 18 of C:/xampp/apache/conf/extra/httpd-xampp.conf: Cannot load C:/xampp/php/php7ts.dll into server: The Apache service named is not a valid Win32 application.
这意味着我安装了错误的 PHP 版本。其实我下载的是win64版本,而我需要的版本是Win32。
所以我从以下位置下载了正确的版本:Download PHP 7.2.0 将其解压缩到 C:/xampp/php 文件夹中,重新启动了 apache 并且它工作了:)
在我测试了所有可能的选项后,我的场景有所不同。如果您更改了端口但仍然遇到同样的问题,那么您可以尝试一下。这是在 Windows 7 中完成的。
第 1 步: 通过转到控制面板 -> 系统和安全 -> 管理工具 -> 事件查看器 -> Windows 日志确认错误原因-> 应用程序 -> 错误。我的说“名为的 Apache 服务报告了以下错误:
httpd.exe: Syntax error on line 424 of C:/xampp/apache/conf/httpd.conf: Cannot load c:\xampp\php\php5apache.dll into server: The specified module could not be found." So I needed to change \php5apache.dll to the version of my php and apache version installed which was php7apache2_4.dll
第 2 步: 要为您的 .dll php 和 apache 文件获取正确的名称,请转到 C:\xampp\php。您会在文件夹中看到类似 php7apache2_4.dll 的内容以及其他文件。
第 3 步: 转到 C:/xampp/apache/conf/httpd.conf 并编辑配置文件并将 "c:\xampp\php\php5apache.dll" 更改为 "c:\xampp\php\php7apache2_4.dll" 在我的例子中.确保以管理员身份打开文件并保存所做的更改。
第 4 步: 运行 xampp 服务器和一切正常。在对 apache 配置文件进行更改之前,不要忘记关闭 xampp 服务器。
希望这对您有所帮助。干杯! :)
我在 httpd.conf 中有一个 hard-coded IP,而我的本地 IP 已更改,这导致了我的问题,更改了 IP 并再次运行
当我运行xampp控制面板正常时:
我曾经 运行
我无法启动apache 所以,我将 运行 与管理员联系:
我可以运行apache
对于那些不小心(或没有)更改其中一个 .conf 文件而 apache 没有 运行 即使尝试了上述所有解决方案的人。
跟踪问题所在位置的一种简单方法是通过命令提示符 运行 Apache:
(On windows) : 以管理员身份打开命令提示符,然后在 Apache 的 bin 文件夹中导航,下一步 运行
httpd
为了运行apache
C:\xampp\apache\bin\httpd
我的情况是:
有人在导致问题的特定文件中添加了虚拟主机。我评论了这些行和 Apache 运行 很好。
尝试安装 XAMPP 的 x86 版本。他们网站上的默认 XAMPP 版本是 x64(可能是因为我使用的是 x64 Windows 7)。 download link here
我在 Program Files 下安装时遇到了这个问题,由于写入问题,他们不推荐这样做。如果您没有以管理员身份登录并使用密码进行安装,这可能只是一个问题。我只是卸载并安装在不需要管理员权限的目录中。
确保 Apache 没有在服务(控制面板、管理工具、服务)中被禁用。如果它已禁用,则将其设置为手动,它应该 运行。那是我的情况,我发现 Apache 已禁用。
针对我的特定情况的解决方案(它已经工作了几天才变得乏味):
端口 80 不是问题,但我在弄乱 Services 和 Startup 时做了一些事情。
- 在 Windows“开始”菜单中键入
msconfig
- 点击系统配置
Screenshot for System Configuration
- 在 Services 选项卡中,搜索 Apache24(单击 window 底部复选框中的 "Hide all Microsoft services" 以便于查找)
- 如果其复选框未选中,请选中它
如果已经检查过了,那么本指南将无济于事。但是如果是:
- 点击确定,您的电脑将需要重新启动
- 再试一次!就我而言,一旦我打开 Xampp ,Apache 就已经是 运行
我遇到了同样的问题,但这是因为我已经安装了以前版本的 xampp,我尝试安装更新的版本。我在另一个文件目录中安装了较新的版本(我将文件目录命名为 xampp2)。我通过卸载较新版本、重命名旧版本(我将其重命名为 xamppold)并再次安装 xampp 来解决问题。
我猜如果你没有在另一个文件目录中安装xampp,那么重新安装xampp应该就足够了。如果您担心您的文件,您总是可以在重新安装之前进行备份 xampp。
我在查看 xampp activity 日志(底部的列表)并意识到 xampp 试图打开自定义文件路径后解决了问题,但我有另一条路线小路。如果第一个选项不起作用,至少你可以在 activity 日志中向上滚动,看看你在以管理员身份启动并尝试重新安装 Apache 模块或尝试启动模块时遇到了什么错误。
您可能想知道为什么我不从一开始就简单地卸载整个东西,答案是因为我必须在 xampp 中为一些不同的项目调整一些东西(从改变端口,将 .dll 添加到 Apache 中的 运行 mongo.db),我只是懒得再重新做一遍:b
我希望我的回答对任何人都有帮助,因为这是我第一次在 Whosebug 中写作:)
干杯
我有相同的 issue.Just 单击服务 button.Then 找到 apache 并右键单击 > 属性 > 将启动类型设置为自动/手动。现在关闭 apache 并尝试 again.It 会起作用!
在我的例子中,有同样的问题 Xampp window,我从旧的 \apache\conf\extra\httpd-vhosts.conf 复制了条目 Xampp 版本到新安装的版本,这样我就可以继续在浏览器中打开本地项目。 vhosts 路径之一是错误的。删除该条目后,Apache 正常启动。
@Karthik 对 "in the Event viewer (Control panel -> View Event Logs" 的引用节省了我的时间。很容易假设 Xampp 日志会指出问题所在。它没有。
我遇到了同样的问题,在 xampp 文件夹中执行 "setup_xampp.bat" 解决了我的问题。
对我来说,这不是端口或服务问题;我必须 re-run XAMPP 安装脚本。虽然这并没有直接解决我的问题,但脚本比 XAMPP 日志要冗长得多,为我指明了正确的方向以实际解决问题。
在 XAMPP GUI 中,单击 Shell,键入 set
,按 Tab 自动完成 setup_xampp.bat
文件,然后按 Enter 到 运行 它。
在我的例子中,我得到了以下输出:
[ERROR]: Test php.exe failed !!!
[ERROR]: Perhaps the Microsoft C++ 2008 runtime package is not installed.
[ERROR]: Please try to install the MS VC++ 2008 Redistributable Package from the Mircrosoft page first
[ERROR]: http://www.microsoft.com/en-us/download/details.aspx?id=5582
这个特殊错误具有误导性。尽管它指定了 Visual C++ 2008 Redistributable Package,PHP 7.4.x 需要 Visual C++ 2019 Redistributable Package.
安装后并按照提示重新启动,果然我现在可以正常启动 Apache。
还要检查您的 xampp 是否安装在主目录(如 C、D 或 E)中,而不是安装在该目录的文件夹中?即(“D:/Xampp”还是“D:/something/Xampp”)如果它不在目录的主路径中,它将显示此错误。
将您的 xampp 目录从“D:\Something\Xampp”复制到“D:”
于是就变成了这样“D:\Xampp”
问题将得到解决。
如果您曾经编辑过端口号,请确保端口号前没有 space。
从 Xampp 控制面板,单击配置(在 Apache 旁边),然后选择 Apache(httpd.config
),搜索 listen 80
并将端口更改为另一个端口。