准备工作:
1、安装依赖包
sudo yum groupinstall -y "Development Tools"
sudo yum install -y libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libzip-devel oniguruma-devel openssl-devel
2、下载php源代码文件
PHP: Downloads
# 解压文件
tar -zxvf php-x.x.x.tar.gz
cd php-x.x.x
开始编译
./configure \\
–prefix=/usr/local/php \\
–with-config-file-path=/usr/local/php/etc \\
–enable-fpm \\
–with-fpm-user=www-data \\
–with-fpm-group=www-data \\
–enable-mbstring \\
–with-curl \\
–with-openssl \\
–with-zlib \\
–with-mysqli \\
–with-pdo-mysql \\
–enable-gd \\
–with-jpeg \\
–with-freetype \\
–with-zip
模块功能介绍
路径与基础配置
–prefix=/usr/local/php 指定 PHP 的安装根目录。所有 PHP 文件(二进制文件、配置文件等)都会安装在此目录下。
–with-config-file-path=/usr/local/php/etc 指定 PHP 配置文件 php.ini 的搜索路径。
PHP-FPM(FastCGI 进程管理器)配置
–enable-fpm 启用 PHP-FPM 支持,用于处理 FastCGI 请求(如 Nginx 服务器需要)。
–with-fpm-user=www-data 设置 PHP-FPM 进程运行的用户(默认为 www-data,需确保用户已存在)。
–with-fpm-group=www-data 设置 PHP-FPM 进程运行的用户组(与用户对应)。
核心功能模块
–enable-mbstring 启用多字节字符串(MultiByte String)扩展,支持处理 UTF-8 等多字节编码。
–with-curl 启用 cURL 扩展,支持通过 URL 传输数据(如 HTTP 请求、FTP 操作)。
–with-openssl 启用 OpenSSL 扩展,支持 HTTPS 和加密通信。
–with-zlib 启用 zlib 扩展,支持数据压缩(如gzcompress()函数)。
–with-mysqli 启用 MySQLi 扩展(MySQL Improved),支持与 MySQL 数据库交互。
–with-pdo-mysql 启用 PDO_MySQL 扩展,提供 PHP 数据对象(PDO)接口访问 MySQL。
–with-gd 启用 GD 库扩展,支持图像处理(如创建缩略图、图片水印)。
–with-jpeg 让 GD 库支持 JPEG 格式图片处理(需系统已安装 libjpeg)。
–with-freetype 让 GD 库支持 TrueType 字体渲染(需系统已安装 freetype)。
–enable-zip 启用 ZIP 扩展,支持读写 ZIP 压缩文件(如ZipArchive类)。
编译安装
# 编译(使用多线程加速,如4核CPU可使用-j4)
make -j$(nproc)
# 安装
sudo make install
php8.4.7编译安装完成
配置php
# 复制PHP配置文件
sudo cp php.ini-production /usr/local/php/etc/php.ini
# 复制PHP-FPM配置文件
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
配置环境变量
echo 'export PATH="/usr/local/php/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
创建www-data用户和组后续启动php服务需要
groupadd www-data
useradd -g www-data www-data
启动PHP-FPM
# 启动PHP-FPM
sudo /usr/local/php/sbin/php-fpm
# 验证是否启动成功
ps aux | grep php-fpm
PHP-FPM 设置为系统服务
# 创建systemd服务文件
sudo tee /etc/systemd/system/php-fpm.service <<EOF
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm –nodaemonize –fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
EOF
# 重载systemd并启动服务
sudo systemctl daemon-reload
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
评论前必须登录!
注册