php-7.1编译记录
编译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
参考资料
- CentOS6.8下编译安装PHP,执行 ./configure后报错,请问怎么解决?
- configure: error: C++ preprocessor "/lib/cpp" fails sanity check
- Some M4 macros don't seem to be defined
- nginx access_log日志
php-7.1编译记录的更多相关文章
- OpenWRT编译记录--TPLINK_WR841ND_V7
之前自己编译OpenWRT的一些记录,现在搬上来.简单介绍了编译环境的准备,编译过程,以及一些注意事项. 准备工作 本人是在Ubuntu环境下编辑的,首先安装编译所需要的组件包: sudo apt-g ...
- Clickhouse v18编译记录
简介 ClickHouse是"战斗民族"俄罗斯搜索巨头Yandex公司开源的一个极具"战斗力"的实时数据分析数据库,是面向 OLAP 的分布式列式DBMS,圈内 ...
- dubbo 源码编译记录
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,阿里内部采用sofa框架,同属于分布式RPC框架,dubbo开源,而sofa ...
- QT4.8.5 源码编译记录
今天想将以前的虚拟机的 QT4.8.5 集成到一个虚拟机里面,所以就重新编译了一次 QT4.8.5的源码 走了一点点小弯路,特此记录. 一.交叉编译器,不能直接从原来的虚拟机里面拷贝,必须使用官网的交 ...
- spark源码编译记录
spark在项目中已经用了一段时间了,趁现在空闲,下个源码编译在IDEA里面阅读下,特此记录过程. 前提已经安装maven和git 1.上官网下载源码的包: 2.然后解压到一个文件夹 3.编译,编译的 ...
- ffmpeg第三方库编译记录
最近在研究ffmpeg的编译,之前使用的Ubuntu,需要安装虚拟机,非常麻烦,所以后来改研究在Windows平台编译. 一开始遇到很多挫折,参考了网上很多的帖子,但要么不全要么内容已过期,经过我的反 ...
- thinking in JAVA 编译记录
编辑/编译<thinking in JAVA>源代码 一.下载源代码 首先,我阅读的是<thinking in JAVA>第四版,因此按照书中提供的链接找到了mindview主 ...
- android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)
编译环境必须是64位系统啊,妥妥的又装了64位的ubuntu,虚拟机推荐server版本,不带x省性能…… 接着要装openjdk 1.7,记得更新一下系统的源,下面这个不错 deb http://m ...
- MITK-Qt4.8.4(x64)+VS2012+Win7_X64 编译记录
本文参考 http://blog.csdn.net/lanxuxml/article/details/9232529(中文) http://docs.mitk.org/nightly-qt4/Buil ...
- apk 反编译记录
反编译资源文件 工具:apktool 使用命令:java -jar apktool.jar d test.apk apktool官网下载地址:github 反编译classes.dex文件 工具:de ...
随机推荐
- wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
原文链接:wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法 最近升级wordpress之后,发现在文章编辑界面的添加新媒体和可视化按钮点击无反应,如下: 然后就在网上找解决办法, ...
- JavaScript——class与原型对象
原型对象的意义 通过new 一个构造函数,我们能够获得一个实例,在new 的过程中,程序会在内存中申请一块区域,同时我们可以加参数,所以每个对象都不一样. 原型对象则是同一个构造函数 new 出来的所 ...
- leetcode_1011. Capacity To Ship Packages Within D Days_binary search二分
https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/ 传送带每天有最大传送量V,对于n个货物[w1,w2,w3. ...
- Hadoop推测执行机制问题
问题描述:MultipleOutputs使用时hdfs报错 // :: INFO mapreduce.Job: Task Id : attempt_1525336138932_1106 ...
- idea导入本地idea的web项目(服务器用的是tomcat)
开始吧!!! 点击import project. 我以SpringMVCPro3为例,选中,点击OK 点击next 继续next 随便吧,我点击yes 选中工程,点击next lib1不要钩,然后点击 ...
- 简单说一下Set,list,Map的类型和自己的特点
首先是Set,List,Map Set和list都是继承了Conllection接口,而Map是本身就是一个接口 set是最简单的一种集合,没有重复对象 set接口主要有两个实现: 1,hashSet ...
- mybatis中<![CDATA[]]>的作用
此篇文章引自QH_JAVA的文章 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用 ...
- js 弹幕效果
<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>弹幕&l ...
- Buffer.from(str[, encoding])
Buffer.from(str[, encoding]) Node.js FS模块方法速查 str {String} 需要编码的字符串 encoding {String} 编码时用到,默认:'utf8 ...
- assert.doesNotThrow()
assert.doesNotThrow(block[, error][, message]) 断言 block 函数不会抛出错误.查阅 assert.throws() 了解更多详情. 当调用 asse ...