环境centos7.9
PHP7.4.30
准备工作在编译PHP时会提示一些包版本不够或者缺少某些包,一般选择yum来安装缺少的包,但因为是离线安装,所以可以手动配置本地yum源 。先看一下系统版本
[root@xcc ~]# cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)
下载系统对应的iso镜像文件CentOS-7.9-x86_64-Everything-2009.iso
,传到服务器上并配置本地yum源 。配置方法可以参考:https://www.cnblogs.com/haolb123/p/16553119.html
安装完下面这些,可以减少在编译PHP时提示的缺包问题 。
yum install -y gcc gcc-c++ make cmake bison autoconf wget lrzszyum install -y libtool libtool-ltdl-develyum install -y freetype-devel libjpeg.x86_64 libjpeg-devel libpng-devel gd-develyum install -y python-develpatchsudoyum install -y openssl* openssl openssl-devel ncurses-develyum install -y bzip* bzip2 unzip zlib-develyum install -y libevent*yum install -y libxml* libxml2-develyum install -y libcurl* curl-develyum install -y readline-develyum install -y sqlite-devel.x86_64
附1:如果没有系统iso镜像文件,可以直接编译安装,提示缺少什么,就从https://pkgs.org/下载系统对应的包,然后手动rpm -i
安装即可 。有些包可能需要编译安装 。
附2:单独下载rpm包安装时,会提示缺少依赖项等 。而yum安装时会自动安装这个包的依赖项,所以还是建议配置本地yum源来装 。
附3:安装完上面这些 , 如果是最小化安装PHP7.4.30则可以正常通过编译 , 可以直接make && make install
安装PHP 。
下载PHP下载地址:https://www.php.net/downloads.php
安装安装时 , 如果此时不指定./configure
后面的扩展,后期也可以手动加上 。
附:指定的扩展越多,编译时可能会遇到的问题越多,不要盲目的添加很多用不上的扩展,如果可以,建议选择默认(最小化)安装 。
附:根据实际的web服务器开启适当的扩展,Nginx使用--enable-fpm
,Apache使用--with-apxs2
tar zxvf php-7.4.30.tar.gzcd php-7.4.30./configure --prefix=/usr/local/php --with-config-file-scan-dir=/usr/local/php/etc/ --enable-inline-optimization --enable-opcache --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbregex --enable-mbstring --with-iconv --with-mhash --with-openssl --enable-bcmath --enable-soap --with-xmlrpc --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zip --with-bz2 --enable-gd --with-jpeg --with-readline --with-freetype --disable-fileinfo#最小化安装-适合nginx平台./configure --prefix=/usr/local/php --with-config-file-scan-dir=/usr/local/php/etc/ --enable-fpm#最小化安装-适合apache平台(先安装httpd , --with-apxs2指定httpd安装位置)./configure --prefix=/usr/local/php --with-config-file-scan-dir=/usr/local/php/etc/ --with-apxs2=/usr/sbin/apxs
PHP7的编译扩展有些更新,参考:https://www.php.net/manual/zh/migration74.other-changes.php
编译时遇到的一些问题oniguruma因为扩展指定了--enable-mbstring
需要用到oniguruma
包,如果用不到可以禁用这个扩展--disable-mbregex
下载地址:https://pkgs.org/download/oniguruma 和 https://pkgs.org/download/oniguruma-devel
文章插图
安装
rpm -i oniguruma-devel-6.8.2-2.el7.x86_64.rpmrpm -i oniguruma-6.8.2-2.el7.x86_64.rpm
libzip继续编译PHP,提示libzip >= 0.11
因为系统镜像里的版本是0.10,需要单独安装,这里下载1.2.0 , 因为高版本需要cmake 。下载地址:https://libzip.org/download/libzip-1.2.0.tar.gz
文章插图
安装
tar xvf libzip-1.2.0.tar.gzcd libzip-1.2.0./configuremake && make install
执行完后并没有被系统识别,相当于Windows系统的环境变量一样,让系统识别还需要配置PKG_CONFIG_PATH
, 用pkg-config
查看libzip.pc
,发现没有输出,find
查找一下,默认位置在/usr/local/lib/pkgconfig/libzip.pc
然后建立链接 。[root@xcc ~]# pkg-config --list-all|grep libzip[root@xcc ~]# find / -name libzip.pc/root/libzip-1.2.0/libzip.pc/usr/local/lib/pkgconfig/libzip.pc[root@xcc ~]# ln -sf /usr/local/lib/pkgconfig/libzip.pc /usr/lib64/pkgconfig/[root@xcc ~]# pkg-config --list-all|grep libziplibziplibzip - library for handling zip archives
继续编译PHP,这里已经可以正常编译通过 。推荐阅读
- mlflow详细安装部署
- Azure DevOps Server 入门实践与安装部署
- MongoDB数据库新手入门
- Debian玩红警2
- Win环境安装Protobuf 2.0 版本
- 三、Go环境安装
- 如何解压文件并安装(解压软件安装步骤)
- Microsoft Office for Mac最新版本安装教程,亲测可用!!!
- 二 Istio:在Kubernetes(k8s)集群上安装部署istio1.14
- Linux软件安装方式 - Tarball&RPM&YUM