内容简介:昨天,我在一台 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虚拟机源码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
社交的本质:扎克伯格的商业秘密
兰迪•扎克伯格 / 谢天 / 中信出版集团股份有限公司 / 2016-6-1 / CNY 45.00
从发表个人观点到找工作,从交朋友到找伴侣,社会化媒体的广泛应用、互联技术的高速发展已经改变了我们生活的各个领域。 Facebook早期成员之一,兰迪·扎克伯格阐述了社交的本质,并首次披露Facebook的商业策略。她以社交媒体实践者的视角,分享了自己在Facebook负责营销的从业经历与成长故事,以及对互联网和社会未来变化趋势的思考,并给组织和个人提出了解决方案。一起来看看 《社交的本质:扎克伯格的商业秘密》 这本书的介绍吧!