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 ...
随机推荐
- Node.js搭建静态服务器
let http = require('http'); let url = require('url'); let fs = require('fs'); let path = require('pa ...
- 浅谈网上的zoomlistview存在的问题
最近项目主要是做一个类似wps文档阅历的功能,以列表的形式显示文档,并且需要实现缩放平移.而网上关于此类功能的实现主要是通过自定义的listview实现的,类名为ZoomListView. 网上的zo ...
- Katalon Studio(二) 进阶战の Jenkins集成 analytics.katalon 集成
本教程只针对Katalon Studio 与CI工具之一Jenkins的集成与脚本集的测试报告可视化简单操作. 1.新建一个job 2.新建一个自由风格的job 3.构建触发器 4.构建Windows ...
- 核武器代理CC工具V3.42最新版本!
软件说明 !!!有新版本更新,请移步到更新地址:https://www.cnblogs.com/cnhacker/p/10878688.html ########################### ...
- codeforces_C. Maximum Subrectangle
http://codeforces.com/contest/1060/problem/C 题意: a.b数组长度分别为n.m.矩阵C,Cij=ai*bj.在C中找到一个子矩阵,该子矩阵所有元素和不大于 ...
- BZOJ4832: [Lydsy1704月赛]抵制克苏恩 (记忆化搜索 + 概率DP)
题意:模拟克苏恩打奴隶战对对方英雄所造成的伤害 题解:因为昨(今)天才写过记忆化搜索 所以这个就是送经验了 1A还冲了个榜 但是我惊奇的发现我数组明明就比数据范围开小了啊??? #include &l ...
- Android反编译初步
网上关于Android反编译的帖子很多,反编译的步骤也是很详细,本文Android反编译参考博客:https://www.cnblogs.com/dhcn/p/7120891.html 而反编译中最主 ...
- LeetCode1-5
Leetcode1: Given an array of integers, return indices of the two numbers such that they add up to a ...
- js+flash(as3)实现复制文字内容到剪切板实例
/* SWFObject v2.2 swfobject.js */ var swfobject=function(){var D="undefined",r="objec ...
- vue 组件用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...