php 编译记录文件,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
参考资料
php 编译记录文件,php-7.1编译记录相关推荐
- linux编译cs文件,Linux Wine下编译安装CS反恐精英
CS反恐精英终于在我的Linux电脑上安装成功了, 为了一个游戏,怎么说呢,自己付出了不少,当然离不开网络,慢慢的自己喜欢上了Linux.不知道为什么,安全.简介.方便.我也说不清楚.我游戏玩的不多, ...
- linux编译cs文件,LinuxWine下如何编译安装CS反恐精英?
CS反恐精英终于在我的Linux电脑上安装成功了,为了一个游戏,怎么说呢,自己付出了不少,当然离不开网络,慢慢的自己喜欢上了Linux.不知道为什么,安全.简介.方便.我也说不清楚.我游戏玩的不多,就 ...
- vs怎么编译php文件,vscode怎么初始编译
vscode怎么初始编译? 1.vscode语言环境改为中文 [WHY]才发现我的环境一直都是英文,来改一下吧... a.按下快捷键: Windows.Linux 快捷键是:ctrl+shift+p ...
- python编译exe文件太大了_python编译windows下可执行的exe文件
python编译windows下可执行的exe文件的操作流程: 1.在安装python环境的windows下,安装 pyinstaller,请在dos下执行如下命令: pip install pyin ...
- Android Studio 编译时报文件不能删除,编译失败
在使用android studio 进行android 开发学习的时候,报android studio 无法删除app\build\outputs模块下部分文件,导致编译失败. 出现这种情况后,自己进 ...
- linux 编译c文件 arm,用arm-linux-gcc编译arm裸机程序(可调用库)
CC=arm-linux-gcc #换成arm-elf-gcc不行,可以生成flat格式的文件,但我不知道怎么转成binary LD=arm-linux-ld OBJCOPY=arm-lin ...
- babel编译html文件,babel 和 browserify 编译
如何使用es6模块化? 使用起来其实非常简单 在 module1.js 中 var hello = 'hello world !'; function sayHello(){ console.log( ...
- 微信小程序反编译wxss文件缺失_反编译任何微信小程序和如何还原wxss
首先需要了解一下微信小程序它执行是需要把源码下载到本地的,下载下来的是一个 .wxapk后缀的文件 ,那么问题来了.下载的源码在那? 这里我们以安卓为例(因为我没用过苹果手机,哈哈哈) 使用到的工具 ...
- java编译时文件是什么,JAVA编译出现 进行语法解释时已抵达文件结尾 是什么意思?...
做了点小修改: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; ...
- linux 汇编 `.eabi_attribute',交叉编译arm-none-eabi-gcc编译汇编文件(startup_stm32f10x_hd.S)遇到的有关问题(2)...
当前位置:我的异常网» Linux/Unix » 交叉编译arm-none-eabi-gcc编译汇编文件(startup_s 交叉编译arm-none-eabi-gcc编译汇编文件(startup_s ...
最新文章
- I2C从驱动到应用(中篇)
- 如何从社区的patchwork下载补丁并应用到当前内核源码?
- POJ - 1050 To the Max(最大连续子段和,线性dp)
- 如何启动mongoDB并用Robo 3T连接
- linux桌面变成黑白,用虚拟机装了linux后开启为什么界面是黑色的呢?
- 动态执行shell脚本
- Servlet之过滤器详解
- group by 按什么区别_失业补助金和失业保险金有什么区别,按什么标准领?不知道亏大了...
- malformed utf-8 characters, possibly incorrectly encoded
- 计算机统计硕士排名,卡内基梅隆大学硕士统计学专业排名务必稳重的去看
- JavaScript模式(1):字面量和构造函数
- 理解常用的无理数:自然常数(e)、圆周率(π)、黄金比例(φ)
- win7删除桌面计算机图标怎么删除,Win7桌面图标箭头怎么去掉?去掉桌面图标箭头的方法...
- 容器CICD实践:基于Helm实现应用交付自动回滚
- 梅捷计算机主板价格,梅捷H81亲民主板逆袭!新到货仅售499元
- 软件开发怎么对抗抄袭_对抗软件开发中的复杂性
- 三思近10000㎡天幕屏耀显上海“八万人”体育场
- C/C++ 病毒破坏手法总结
- 【STM32-扩展模块】继电器模块Relay
- 《跟着小吴哥学python》之 12 Python发送邮件
热门文章
- ShardingSphere UI 初步体验
- 四川大学计算机学院琚生根教授,基于卷积神经网络和自注意力机制的文本分类模型...
- php zitian虚拟主机配置_虚拟主机的发展
- python中英文切换_vue根据按钮进行中英文切换
- 怎么理解python循环_如何理解Python的循环设计
- mysql中dml语言_八、mysql DML语言
- CSDN使用富文本编辑器为所发布的文章生成右侧目录
- MySQL 优化策略
- mysql opendrowset,java,mysql、jdbc
- oracle控制文件还原,Oracle的控制文件的恢复与重建