easyphp手动添加php版本
背景 本地开发环境使用easyphp搭建,不同框架需要的php版本不同,最近需要使用lumen框架(laravel微框架),公司封装了框架,加了一些奇妙的东西,然后php版本最低要求7.18,然鹅,easyphp默认自带了5.6.3和7.1.3,很不巧妙,傻眼看着只差了0.0.5个版本,要再折腾一个版本,看下下easyphp官网,支持所有常见的php版本,然鹅添加非自带的版本扩展需要付费(10刀每年年),作为一名不起眼的码农,能动手绝不花钱(省钱还房贷),于是开动了各种常识。
-
准备
下载php7.2.16版本 windows下分ts(线程安全)和nts版本(线程不安全),如果php作为http服务器模块运行则需要选择ts版本,如果php通过cgi/fast-cgi启动独立进程通过socket和http服务器通信则需要选择nts版本,因为我喜欢使用nginx所以我的开发环境是nginx+fastcgi来运行php,所以我选择的具体版本是:php-7.2.16-nts-Win32-VC15-x86
安装步骤
-
解压解压压缩包到C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\php(easyphp中php安装位置)
-
检测 easyphp启动页面此时并还不能选择php7.2版本
追踪 追踪easyphp自身web项目,easyphp本身也是通过web程序操作的,项目代码位置为:C:\Program Files (x86)\EasyPHP-Devserver-17\eds-dashboard
-
找到原因 通过选择php版本位置追踪到切换规则
-
拷贝缺失的爱 找到上图代码位置,php版本目录下必须有eds-app-settings.php文件才能加入easyphp中选择,那么直接在easyphp自带的版本中拷贝即可,实际发现有三个php文件需要拷贝(eds开头即是eds-dashboard项目使用的文件)
-
根据自身条件适应 拷贝文件后,打开发现有些需要修改的内容,只有eds-app-settings.php需要修改
经验之谈,不听吃亏 此时千万别切换php版本启动easyphp,否则你会发现nginx的所有配置将被还原,如果你用了很久的easyphp一定有很多vhost的配置,启动后将会一夜回到解放前,不信可以试试看,会哭
-
继续找坑 通过php的规律应该同样nginx目录下应该也有一些php文件来启动nginx 的,或者通过页面请求追踪也是可以找到
-
继续填坑 就是eds-app-actions.php文件了,每次选择版本启动easyphp的时候都会读取store_vhosts.php中内容覆盖conf\nginx-vhosts.conf中,然鹅,store_vhosts.php文件并不存在,然后写入的就是空字符串了,然后曾经上百个虚拟主机就不翼而飞,这个和添加不添加php版本没有关系。不注释每次切换都会覆盖,除非自己手动保存到store_vhosts.php文件中。
-
大结局 最后选择7.2启动就好了