记一次PHP源码编译过程

引言

好久没有源码编译过php了。php

本身电脑一直用docker跑php,另外就是以前装过XAMPP(由于本身电脑系统是deepin,deepin官方推荐用XAMPP搭建php环境)。原本也够用,可是最近在折腾phpunit,刚好本身用phpstorm作单元测试。phpstorm的php cli虽然也支持远程docker,可是本身仍是想在本地运行单测。因为本身原先的XAMPP环境是php7.4,可是公司项目不彻底支持php7.4。因此打算在本地从新构建一套php7.2环境。mysql

下面是phpstorm cli解释器配置 支持from docker
clil解释器 配置sql

以前用docker和包安装php环境比较多,此次想了下,很久没有折腾源码安装了,因此试下源码编译php。docker

个人系统:deepin 15.11
gcc版本:6.3.0缓存

开始

第一步,固然是源码下,我这里选择php官网,版本7.2.34 tag.gz 包。

image

第二步,解压 tar -zxvf xxx
第三步,.configure 编译检查 生成Makefile

这里开始就有坑了 开始的时候我没有加php编译参数,只指定安装目录和配置目录php7

第四步,make && make install

编译和安装大概几分钟,没有报错。也编译安装成功。跑了下项目试了下,发现默认编译是没有pdo_mysql 扩展的。怪本身大意,从新编译扩展phpstorm

image

第五步 从新编译扩展

进入源码扩展目录 依次 phpize,configure,make && make install
发现报错,目录异常,打开源码,加绝对路径,从新编译,而后改php.ini 在extension开启pdo_mysql.so,试了下 又不行,各类报错,折腾了好久,删除整个php安装目录,从新编译 单元测试

image

image

ps:最后经过改源码里路径为绝对路径解决测试

第六步 .configure

这里必定要清除以前编译缓存,编译的时候加上编译参数
同时把其余经常使用php扩展也加到里面(gd,xml,bcmath,mbstring,openssl等等 这些默认都是不会安装的) spa

这里因为安装了部分扩展(例如gd库),致使依赖报错,经过本地安装对应依赖解决

第七步,make && make install

又是漫长的等待...

第八步 测试 终于成功

总结

源码编译确实麻烦并且时间漫长,前先后后大概折腾了快2个小时。除非是体验新版本或者本身对源码有修改以外,更加推荐docker或者包安装方式。

相关文章
相关标签/搜索