在 CentOS 7.8 上编译 PHP 7.4.x

栏目: IT技术 · 发布时间: 3年前

内容简介:昨天,我在一台 CentOS 6.10 上面编译 PHP 7.4.7 和编译前几个版本有很大的区别,PHP 7.4 开始使用了一个叫 pkg-config 的东西,有点先进,但是在老旧的系统上,真是无比痛苦的一个体验。今天我尝试一下在 CentOS 7.8 上面编译一下,之前没有干过,我就记录一下过程,虽然无聊得很,但是记录下来,可以给以后节省点时间。PHP 7.4.7 版本,我编译下来感觉就是,使用了 pkg-config 这个工具来自动识别 lib 库所在的位置,这个工具是很强大的,但是遗憾的是,不够普

昨天,我在一台 CentOS 6.10 上面编译 PHP 7.4.7 和编译前几个版本有很大的区别,PHP 7.4 开始使用了一个叫 pkg-config 的东西,有点先进,但是在老旧的系统上,真是无比痛苦的一个体验。

今天我尝试一下在 CentOS 7.8 上面编译一下,之前没有干过,我就记录一下过程,虽然无聊得很,但是记录下来,可以给以后节省点时间。

yum install -y systemd-devel.x86_64
yum install -y libxml2-devel.x86_64
yum install -y openssl-devel.x86_64
yum install -y sqlite-devel.x86_64
yum install -y libcurl-devel.x86_64
yum install -y libpng12-devel.x86_64
# 注意,看你的系统里是 libpng 后面的数字是几
ln -s /lib64/pkgconfig/libpng12.pc /lib64/pkgconfig/libpng.pc
yum install -y libwebp-devel.x86_64
yum install -y libjpeg-turbo-devel.x86_64
yum install -y freetype-devel.x86_64
yum install -y oniguruma-devel.x86_64
yum install -y readline-devel.x86_64
yum install -y libzip-devel.x86_64

# 手动编译 libzip
yum install -y cmake3
yum install -y bzip2-devel.x86_64
wget https://libzip.org/download/libzip-1.7.1.tar.xz
tar xf libzip-1.7.1.tar.xz
mkdir build
cd build
cmake3 -DENABLE_GNUTLS=OFF ..
make
make test
make install

# 进入 php-7.4.7 目录
PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig" \
./configure -C \
  --prefix=/usr/local/php7 \
  --enable-fpm \
  --with-fpm-systemd \
  --with-openssl \
  --with-zlib \
  --enable-bcmath \
  --with-curl \
  --enable-exif \
  --enable-gd \
  --with-webp \
  --with-jpeg \
  --with-freetype \
  --with-gettext \
  --enable-mbstring \
  --with-mysqli \
  --with-mysql-sock=/var/lib/mysql/mysql.sock \
  --enable-pcntl \
  --with-pdo-mysql \
  --with-readline \
  --enable-soap \
  --enable-sockets \
  --with-zip \
  --enable-mysqlnd

# 开始编译,使用 2 核
make -j2
make test
make install

PHP 7.4.7 版本,我编译下来感觉就是,使用了 pkg-config 这个 工具 来自动识别 lib 库所在的位置,这个工具是很强大的,但是遗憾的是,不够普及,不是每个包都正确带有了自己的 pkgconfig 文件,以 .pc 结尾的。

编译中遇到的麻烦,都是这个问题带来的,比如上面的执行记录里,就可以看到,libpng,这个依赖,使用 yum 安装的包,名字竟然叫 libpng12,我做了一个软链,绕过了这个问题。但是不是每次都这么顺利的。

另一个问题就是 libzip,系统里只有 0.10 版本的,但是编译 PHP 7.4+ 需要 0.11 版本,yum 就解决不了这个问题了,只能使用一些私有的源。当然,如果使用私有源,就可以直接安装现成的 PHP 7.4+ 了,没必要编译这么痛苦了,我觉得如果没有什么必要性,还是用网上的私有源安装比较好,还会带有全套的运维脚本,比自己编译方便太多了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java程序设计

Java程序设计

宋中山 严千钧 等编 / 清华大学出版社 / 2005-8 / 27.00元

本书全面、系统地介绍了Java语言的基本概念、基本语法和编程方法。主要内容包括:Java语言概述、数据类型与运算符、流程控制语句、类与对象、继承与多态、异常处理、工具类和算法、Applet小应用程序、图形用户界面、输入和输出、Java多线程以及Java高级编程。每章后面附有习题,读者可参考使用。 本书内容丰富,结构合理,语言简洁,深入浅出,通俗易懂。基础知识与程序实例相结合,示例典型......一起来看看 《Java程序设计》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具