1. 苏葳的备忘录首页
  2. 开发工具

xampp启动时Apache意外关闭错误的处理

xampp Apache sslxampp安装后启动时,报 Error: Apache shutdown unexpectedly.错误,提示查看日志什么的,但日志文件均为空。百思不得其解。查看网上文章,说还是端口被占用的问题。可是在第一次启动xampp面板时,已经看到提示,说是ssl的443端口与我的vmware某服务端口冲突,然后点击面板右侧的config按钮,在里面把Apache的ssl端口改为543了啊。 疑惑的查看apache的ssl配置文件,果然里面的ssl端口还是443,没有改掉。

但那个config按钮里的端口设置是怎么回事呢?仔细一看,原来后面有句文字提醒,这里的设置并不改变实际程序使用的端口,仍然需到配置文件里面修改设置。 噢。。。原来如此。

但是后来在2015年12月下载了xampp最新版后,在apache一行的config里,修改了httpd-ssl.conf文件里的所有443端口为其它值后,仍然是无法启动。当然,机器上443端口仍是被占用(装有VMware,且不能删除)。这是为何呢?也许是apahce的ssl的数字证书里,绑定了https的443端口?那就没办法修改端口了。

干脆卸掉XAMPP,把它装到虚拟机的xp里去算了。

然而在虚拟机的xp中,却无法安装最新版的xampp 5.6.14.4。是安装各版本vc redist包都不行。始终提示php.exe和httpd.exe不是合法的win32程序。从php官网上下载了个php 5.6版本解压缩,结果在xp也是无法运行。看来至少这个php.exe 5.6是无法在win xp中运行的。如果说是缺少某些特点.net库的话,官方文档没有给出说明也太让人费解了。

那么就安装到虚拟win10里试试。

不想再写啰嗦的试验与分析过程了,直接写结论吧:

一、不能想当然的认为443端口就是已经被其它进程占用了。事实上无论在win10还是win7里,安装完xampp后,虽然未在xampp控制面板里启动apache服务,但实际上在安装的最后一步,参见setup_xampp.bat,这安装的最后一步是会把apache的httpd.exe服务启动的,并且是两个,即80和443端口。

二、此时再启动xampp面板,显示的apache仍是未启动的,但实际上已经启动,所以再点击启动apache服务自然会报错。同时在win10类的UAC控制的操作系统里,可以尝试以管理员身份启动xampp控制面板,之后可能强制启动成功apache服务。

三、最好的做法是,比如在win7中,出现上述httpd.exe已经启动而造成xampp控制面板无法管理的情况下,可以先kill掉任务管理器中两个httpd.exe进程。然后xampp中就可以启动apache服务成功。

四、如果不需要httpd的https服务,可以在httpd.conf文件中,将include httpd-ssl.conf的语句注释掉。这样就不会引入https服务配置,自然不会启动https服务和端口了。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/555.html

发表评论

您的电子邮箱地址不会被公开。

评论列表(1条)

  • Lawanda
    Lawanda 2016年12月27日 14:25

    That’s more than seslbine! That’s a great post!