在使用PHPStudy时,有时候会遇到如下的情况,启动Apache和MySQL之后,会返回启动失败的提示,返回信息大概会有以下,况大概如图:
导致这样的原因有很多,可以按照如下的方式排查问题:
1、没有向系统服务注册Apache,MySQL服务;
解决方式:
打开win服务面板,可以在cmd控制台中输入:services.msc 打开面板;
在【拓展】面板中查找是否存在Apache,MySQL的相关服务,如果没有注册相关服务,有一种简单的方式可以注册该服务;
以管理员权限运行phpstudy,执行【其他菜单选项 / 服务管理器 / Apache / 安装服务】和 【其他菜单选项 / 服务管理器 / MySQL / 安装服务】操作;
2、Apache或MySQL默认端口被占用
解决方式:
一般phpstudy中的Apache默认端口为80,MySQL默认端口为3306;
可以通过cmd控制台输入指令:netstat -ano 查看这些端口的使用情况,如果这些端口已经被其他程序占用,修改Apache和MySQL端口的方式有2种,之后要重启Apache和MySQL:
1)方式一:通过修改配置文件:
修改Apache端口:在phpstudy中打开【其他菜单选项 / 打开配置文件 / httpd-conf】打开Apache配置文件,修改如下字段,将原来的 Listen 80 修改为 Listen 8088 或其他端口;
修改MySQL端口:在phpstudy中打开【其他菜单选项 / 打开配置文件 / mysql-ini】打开Mysql配置文件,修改如下字段,将port 3306修改为其他端口;
2)方式二:通过phpstudy提供的常规端口设置:
打开phpstudy中【其他菜单选项 / php设置 / 端口常规设置】,修改相应的端口,并重新启动Apache和MySQL;
3. 在以上两种排查都没有问题,或者执行了以上2中操作后仍然无法启动Apache和MySQL,在确保系统服务中已经注册Apache和MySQL,以及这两个软件的端口没有被占用的情况下,可以按照如下2种方式去启动服务:
1)方式一:通过控制台启动服务;
以管理员身份打开PHPstudy(否者权限不足会返回系统错误5),输入以下指令:
net start Apache2a
net start MySQLa
注意:这里的 Apache2a、MySQLa 是Apache和MySQL在系统服务中注册的名称(在不同的机器可能注册名不同),可以通过系统服务列表查询获得;
2)方式二:使用phpstudy提供的强制启动端口服务;
在PHPstudy打开【其他菜单选项 / 环境端口检测 / 环境端口检测】,打开如下窗口,先后点击【检测端口】,【尝试关闭相关进程并启动】;
一般来说,phpstudy无法启动Apache和MySQL服务的情况使用以上3种方式就可以解决了,注意在执行以上排查时,前提条件是本地已经不存在的Apache和Mysql服务,如果之前已经装过相应的集成环境,最好先卸载干净(其实视情况有时并不需要,但是我也不是很清楚其他集成环境的服务注册机制,以防万一还是卸载干净比较保险),特别注意的是,一定要在系统服务先中卸载Apache和MySQL服务,具体步骤如下:
1)在cmd控制台中执行 services.msc ,打开服务面板,获取Apache和MySQL的系统注册名(比如查到 Apache2a,MySQLa);
2)在cmd控制台中执行以下指令删除相关服务:
sc delete Apache2a
sc delete MySQLa