下载源码包
https://www.php.net/downloads.php#v7.4.6
安装依赖
yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel sqlite-devel oniguruma oniguruma-devel
解压
tar xf php-7.4.6.tar.gz
预编译
cd php-7.4.6
./configure --prefix=/usr/local/php \
--enable-fpm \
--enable-debug \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--with-curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=/usr/local/php/etc \
--with-zlib-dir
编译 & 安装
make -j4 && make install -j4
复制配置文件
cp php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
添加系统启动文件及可执行权限
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
修改php-fpm的进程用户为nginx
vim /usr/local/php/etc/php-fpm.conf
# 发现以下include语句:
include=/usr/local/php/etc/php-fpm.d/*.conf
# 修改www.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vim /usr/local/php/etc/php-fpm.d/www.conf
user = nginx
group = nginx
修改php.ini,指定mysql.sock文件所在路径
# 此操作解决php无法通过localhost连接mysql数据库的问题
vim /usr/local/php/etc/php.ini
pdo_mysql.default_socket= /data/mariadb/mysql.sock
mysqli.default_socket = /data/mariadb/mysql.sock
添加系统服务
chkconfig --add php-fpm
chkconfig --level 35 php-fpm on
启动php-fpm
/etc/init.d/php-fpm start
或
systemctl start php-fpm