一、编译安装
1、安装php依赖
[root@web01 ~]# yum install gcc gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd sqlite sqlite-devel net-snmp net-snmp-devel oniguruma oniguruma-devel
安装libzip,以支持–with-zip编译选项
# 下载地址 wget https://libzip.org/download/libzip-1.5.2.tar.gz
[root@web01 ~]# yum install -y cmake3 cmake
[root@web01 ~]# tar xf libzip-1.5.2.tar.gz
[root@web01 ~]# cd libzip-1.5.2
[root@web01 libzip-1.5.2]# mkdir build
[root@web01 libzip-1.5.2]# cd build
[root@web01 build]# cmake3 -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr ..
[root@web01 build]# make && make install
2、编译安装php7.4.9
[root@web01 ~]# tar -xf php-7.4.9.tar.gz
[root@web01 ~]# cd php-7.4.9
[root@web01 php-7.4.9]# ./configure --prefix=/usr/local/php --enable-fpm --enable-gd --enable-mbstring --enable-sockets --enable-exif --enable-mysqlnd --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-shmop --enable-calendar --with-freetype --with-openssl --with-mysqli --with-mysql-sock --with-curl --with-bz2 --with-zip --with-zlib --with-mhash --with-jpeg --with-pdo-mysql --with-pear --disable-rpath
[root@web01 php-7.4.9]# make && make install
[root@web01 php-7.4.9]# cp php.ini-production /usr/local/php/lib/php.ini
[root@web01 php-7.4.9]# cd /usr/local/php/etc/
[root@web01 etc]# cp php-fpm.conf.default php-fpm.conf
[root@web01 etc]# cd php-fpm.d
[root@web01 php-fpm.d]# cp www.conf.default www.conf
[root@web01 php-fpm.d]# vim www.conf # 修改运行用户和组
[root@web01 php-fpm.d]# /usr/local/php/sbin/php-fpm
3、编译参数
--enable-fpm #打开对PHP FastCGI管理器的支持,一般用于php+nginx
--with-curl #支持远程curl操作
--enable-exif #用于读取图片EXIF(图像元数据)信息
--with-mhash #支持mhash算法,可用于密码和更新程序包。
--enable-mbstring #启用多字节字符串支持,可以正确处理utf-8文本。
--with-mysqli #用于连接到MySQL以进行数据库交互
--enable-mysqlnd #用于支持mysqlnd,mysqlnd库用来访问MySQL数据库,可以提升PHP的数据库访问性能。
--with-mysql-sock[=SOCKPATH]
#支持使用mysql的unix domain socket连接mysql。当程序填写mysql连接方式为localhost时mysql会采用 unix domain socket连接,当主机填写为IP地址时mysql会采用tcp方式连接。
--enable-sockets #打开 sockets 支持
--with-sodium #高性能易用的加密库,使用chacha20加密方式,用于加密、解密、签名和生成密码哈希等等。需要依赖libsodium 。
--with-openssl #支持openssl,用于加密传输时,可以允许与其他主机的基于SSL的连接。
--with-zip #打开对zip的读写支持,PHP已经内置了zip解压缩。
--with-bz2 #打开对bz2的压缩和解压缩
--with-zlib #打开对zlib库的支持
--enable-gd #如果未安装Imagick,则GD图形库将用作功能有限的后备图像处理。
--enable-ftp #打开ftp支持
--with-jpeg #打开对jpeg图片的支持
--with-freetype #打开对freetype字体库的支持
--enable-calendar #打开日历扩展功能
--with-pear #打开pear命令的支持,PHP扩展用的。
--with-pdo-mysql[=DIR] #指定支持某个mysql,DIR是MySQL的基本安装目录。
--enable-pcntl #pcntl是一个可以利用操作系统的fork系统调用在PHP中实现多线程的进程控制的扩展
--enable-sysvsem #System V 信号量
--enable-sysvshm #System V 共享内存
--enable-sysvmsg #支持sysvmsg,消息队列
--enable-shmop #支持shmop,多个进程之间共享数据
--disable-rpath #关闭额外的运行库文件
--with-fpm-user[=USER] #指定php-fpm的运行用户
--with-fpm-group[=GRP] #指定php-fpm的运行组
--with-gettext #对GNU gettext 支持
--with-gmp #对GNU MP支持
默认安装(当然还有不少,只列出部分):
--enable-mbregex #具有多字节字符支持的正则表达式函数,禁用后,多字节字符,例如汉字,无法用于正则表达式的匹配。
--enable-json
#支持json(JavaScript Object Notation)是一种用于结构化数据的最小可读格式。它主要用于在服务器和Web应用程序之间传输数据,以替代XML。
--enable-xml #打开对XML的支持
--enable-hash #对hash算法的支持
--enable-session #对session的支持
--disable-debug #关闭调试模式
--enable-pdo #用于数据库
--enable-inline-optimization #用于优化线程
二、yum安装
# 配置php源
[root@web01 ~]# yum install epel-release -y
[root@web01 ~]# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 安装wordpress所需的插件
[root@web1 ~]# yum install php74-php-fpm php74-php-sodium php74-php-gd php74-php-pecl-zip php74-php-pdo php74-php-mysqlnd php74-php-mbstring php74-php-pecl-mysql php74-php-xml php74-php-pecl-imagick php74-php-pecl-imagick-devel
以上是基本需求,至于还需要什么扩展,看自身需求。例如要用到redis,安装php74-php-pecl-redis5;或者缓存相关等等,安装php74-php-pecl-memcached、php74-php-opcache等。