引言
很久没有源码编译过php了。
自己电脑一直用docker跑php,另外就是之前装过XAMPP(因为自己电脑系统是deepin,deepin官方推荐用XAMPP搭建php环境)。本来也够用,但是最近在折腾phpunit,恰好自己用phpstorm做单元测试。phpstorm的php cli虽然也支持远程docker,但是自己还是想在本地运行单测。由于自己原先的XAMPP环境是php7.4,但是公司项目不完全支持php7.4。所以打算在本地重新构建一套php7.2环境。
下面是phpstorm cli解释器配置 支持from docker
之前用docker和包安装php环境比较多,这次想了下,好久没有折腾源码安装了,所以试下源码编译php。
我的系统:deepin 15.11
gcc版本:6.3.0
开始
第一步,当然是源码下,我这里选择php官网,版本7.2.34 tag.gz 包。
第二步,解压 tar -zxvf xxx
第三步,.configure 编译检查 生成Makefile
这里开始就有坑了 开始的时候我没有加php编译参数,只指定安装目录和配置目录
第四步,make && make install
编译和安装大概几分钟,没有报错。也编译安装成功。跑了下项目试了下,发现默认编译是没有pdo_mysql 扩展的。怪自己大意,重新编译扩展
第五步 重新编译扩展
进入源码扩展目录 依次 phpize,configure,make && make install
发现报错,目录异常,打开源码,加绝对路径,重新编译,然后改php.ini 在extension开启pdo_mysql.so,试了下 又不行,各种报错,折腾了很久,删除整个php安装目录,重新编译
ps:最后通过改源码里路径为绝对路径解决
第六步 .configure
这里一定要清除之前编译缓存,编译的时候加上编译参数
同时把其他常用php扩展也加到里面(gd,xml,bcmath,mbstring,openssl等等 这些默认都是不会安装的)
这里由于安装了部分扩展(例如gd库),导致依赖报错,通过本地安装对应依赖解决
第七步,make && make install
又是漫长的等待...
第八步 测试 终于成功
总结
源码编译确实麻烦而且时间漫长,前前后后大概折腾了快2个小时。除非是体验新版本或者自己对源码有修改之外,更加推荐docker或者包安装方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。