编译php-7.1.28步骤

  • 检查环境
./configure \
--prefix=/u01/server/php-7.1.28 \
--enable-fpm \
--with-fpm-user=daemon \
--with-fpm-group=daemon \
--with-zlib-dir=/u01/server/common \
--enable-mbstring=all \
--enable-soap \
--enable-bcmath \
--enable-ftp \
--with-xmlrpc \
--enable-cgi \
--with-imap-ssl=/u01/server/common \
--with-png-dir=/u01/server/common \
--with-gd \
--with-zlib \
--with-curl=/u01/server/common \
--with-jpeg-dir=/u01/server/common \
--enable-exif \
--with-openssl=/u01/server/common \
--with-ldap=/u01/server/common \
--enable-calendar \
--enable-ctype \
--enable-pcntl \
--enable-session \
--with-bz2=/usr \
--enable-sockets \
--with-mcrypt=/u01/server/common \
--with-icu-dir=/u01/server/common \
--with-tidy=/u01/server/common \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pdo_sqlite=/u01/server/sqlite \
--with-sqlite3=/u01/server/sqlite \
--with-iconv=/u01/server/common \
--with-libxml-dir=/u01/server/common \
--with-xsl=/u01/server/common \
--with-freetype-dir=/u01/server/common \
--with-gmp=/u01/server/common \
--with-gettext \
--enable-intl \
--with-readline=/u01/server/common \
--enable-zip \
--with-libzip=/u01/server/common \
--disable-huge-code-pages
  • 编译
make
  • 安装
make install

备注

  • bz2 == bzip2是同一个意思
  • libzip提示不可用,google了很久也没找到啥原因,后面实在没招了,硬着头皮仔细看了configure脚本里面怎么处理的,最终发现了一些蛛丝马迹

碰到的问题

  • 问题1:gcc编译工具问题
configure: error: in `/root/php-7.1.28':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
  • 解决方法
yum install glibc-headers gcc-c++
  • 问题2:提示libzip版本过低

  • 解决方法

安装新版本的libzip yum自带的不行,编译安装libzip-1.3.0版本
yum install libzip-devel.x86_64
yum remove libzip -y
  • 问题3:libzip检查失败
checking for zip_open in -lzip... no
configure: error: could not find usable libzip
  • 问题定位
  • 分析./configure脚本,发现最终会执行如下
$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5

cc -o conftest \
-I/u01/server/common/include -g -O2 -fvisibility=hidden \
-Wl,-rpath,/u01/server/common/lib -L/u01/server/common/lib -L/u01/server/common/lib -Wl,-rpath,/u01/server/common/lib -L/u01/server/common/lib -Wl,-rpath,/u01/server/sqlite/lib -L/u01/server/sqlite/lib -Wl,-rpath,/bitnami/ruby24stack-linux-x64/output/sqlite/lib -L/bitnami/ruby24stack-linux-x64/output/sqlite/lib -Wl,-rpath,/bitnami/ruby24stack-linux-x64/output/ImageMagick/lib -L/bitnami/ruby24stack-linux-x64/output/ImageMagick/lib \
conftest.c \
-lzip -lz -lexslt -ltidy -lresolv -lcrypt -lreadline -lrt -lsqlite3 -lmcrypt -lltdl -lldap -llber -lstdc++ -liconv -lgmp -lpng -lz -ljpeg -lcrypto -lssl -lcrypto -lcurl -lbz2 -lz -lsqlite3 -lcrypto -lssl -lcrypto -lrt -lm -ldl -lnsl -lxml2 -lz -liconv -lm -ldl -lcurl -lxml2 -lz -liconv -lm -ldl -lfreetype -lz -lbz2 -ldl -lm -licui18n -licuuc -licudata -ldl -lm -licuio -lxml2 -lz -liconv -lm -ldl -lxml2 -lz -liconv -lm -ldl -lcrypt -lxml2 -lz -liconv -lm -ldl -lxml2 -lz -liconv -lm -ldl -lxml2 -lz -liconv -lm -ldl -lxml2 -lz -liconv -lm -ldl -lxslt -lxml2 -lz -liconv -ldl -lm
  • 执行这个提示tidy这个库不存在
  • 源码编译tidy库后,这个问题解决
  • 问题4:off_t类型未定义
configure: error: off_t undefined; check your library configuration
  • 解决方法
# 添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置
ldconfig -v
  • 问题5:autoconf时提示一些宏不存在
[root@localhost libzip]# autoconf
configure.ac:6: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:21: error: possibly undefined macro: AM_PROG_CC_C_O
configure.ac:109: error: possibly undefined macro: AM_CONDITIONAL
  • 解决方法
[root@localhost libzip]# autoreconf --install

参考资料

php-7.1编译记录的更多相关文章

  1. OpenWRT编译记录--TPLINK_WR841ND_V7

    之前自己编译OpenWRT的一些记录,现在搬上来.简单介绍了编译环境的准备,编译过程,以及一些注意事项. 准备工作 本人是在Ubuntu环境下编辑的,首先安装编译所需要的组件包: sudo apt-g ...

  2. Clickhouse v18编译记录

    简介 ClickHouse是"战斗民族"俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP 的分布式列式DBMS,圈内 ...

  3. dubbo 源码编译记录

    DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,阿里内部采用sofa框架,同属于分布式RPC框架,dubbo开源,而sofa ...

  4. QT4.8.5 源码编译记录

    今天想将以前的虚拟机的 QT4.8.5 集成到一个虚拟机里面,所以就重新编译了一次 QT4.8.5的源码 走了一点点小弯路,特此记录. 一.交叉编译器,不能直接从原来的虚拟机里面拷贝,必须使用官网的交 ...

  5. spark源码编译记录

    spark在项目中已经用了一段时间了,趁现在空闲,下个源码编译在IDEA里面阅读下,特此记录过程. 前提已经安装maven和git 1.上官网下载源码的包: 2.然后解压到一个文件夹 3.编译,编译的 ...

  6. ffmpeg第三方库编译记录

    最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译. 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反 ...

  7. thinking in JAVA 编译记录

    编辑/编译<thinking in JAVA>源代码 一.下载源代码 首先,我阅读的是<thinking in JAVA>第四版,因此按照书中提供的链接找到了mindview主 ...

  8. android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)

    编译环境必须是64位系统啊,妥妥的又装了64位的ubuntu,虚拟机推荐server版本,不带x省性能…… 接着要装openjdk 1.7,记得更新一下系统的源,下面这个不错 deb http://m ...

  9. MITK-Qt4.8.4(x64)+VS2012+Win7_X64 编译记录

    本文参考 http://blog.csdn.net/lanxuxml/article/details/9232529(中文) http://docs.mitk.org/nightly-qt4/Buil ...

  10. apk 反编译记录

    反编译资源文件 工具:apktool 使用命令:java -jar apktool.jar d test.apk apktool官网下载地址:github 反编译classes.dex文件 工具:de ...

随机推荐

  1. 微信“摇一摇&#183;周边”正式开放

    今日,在微信公开课第三季长沙站现场,微信团队宣布“摇一摇·周边”(以下简称“摇周边”)正式对外开放.拥有微信认证的公众帐号商户,均可通过摇周边的商户申请平台(https://zb.weixin.qq. ...

  2. Thinkphp3.23 连接MSSQL方法

    Thinkphp 3.23要连接MSSQL,必须配置下,以下是主要的步骤. 1.要安装Microsoft Drivers for PHP for SQL Server驱动 下载驱动以前,要查看一下ph ...

  3. mysql 的 case when then 用法 和null 的判断

    表:一个表 aa 有两个字段 id 和 sex ,第1条记录的sex 为空串  ('')  第二条记录的sex 为空  (null) 1. 用法: 第一种: select (case 字段名  whe ...

  4. (三)Redis for StackExchange.Redis

    目录 (一)Redis for Windows正确打开方式 (二)Redis for 阿里云公网连接 (三)Redis for StackExchange.Redis StackExchange.Re ...

  5. xamarin 学习笔记02- IOS Simulator for windows 安装

    微软发布了在window下的ios模拟器 下载 ios模拟器 并安装在windows系统上. Xamarin for Visual Studio 和 网络上的 Mac 中的 Xamarin.iOS 开 ...

  6. C# 获取目录下文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 纯CSS3来自定义单选框radio与复选框checkbox

    单选框(radio)自定义样式 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...

  8. CAD使用GetxDataDouble读数据(com接口)

    主要用到函数说明: MxDrawEntity::GetxDataDouble2 读取一个Double扩展数据,详细说明如下: 参数 说明 [in] LONG lItem 该值所在位置 [out, re ...

  9. 00PostgreSQL

    PostgreSQL PostgreSQL: The World's Most Advanced Open Source Relational Database;PostgreSQL是一个功能强大的开 ...

  10. oracle char 多位,引发的问题

    我在表字有一字段type 类型为char(1),一开始用的还好,后来,char(1)不够用了,于是将char(1),变为char(2). 我做了一个字典表,来对应type,可是,总是查不到数据,最后, ...