内容简介:昨天,我在一台 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+ 了,没必要编译这么痛苦了,我觉得如果没有什么必要性,还是用网上的私有源安装比较好,还会带有全套的运维脚本,比自己编译方便太多了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 在Docker上编译OpenJDK 8
- 云上自动化 vs 云上编排
- 在 Bluemix 上编写 Clojure Web 应用程序
- FreeBSD上编写x86 Shellcode初学者指南
- OpenmediaVault-4.1.3上编译Linux Kernel 4.14.118
- CentOS上编译OpenJDK8源码及在Eclipse上调试HotSpot虚拟机源码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
High Performance Python
Micha Gorelick、Ian Ozsvald / O'Reilly Media / 2014-9-10 / USD 39.99
If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral t......一起来看看 《High Performance Python》 这本书的介绍吧!