编译安装php8

举报
林欣 发表于 2025/09/21 17:28:46 2025/09/21
【摘要】 以下是 编译安装 PHP 8 的详细步骤,适用于 Linux 系统(如 CentOS、Ubuntu 等)。我们将以 PHP 8.2 为例,但你可以根据需要调整版本。 1. 安装依赖在编译 PHP 之前,需要安装必要的依赖: CentOS / RHELsudo yum install -y gcc make libxml2-devel openssl-devel sqlite-devel \ ...

以下是 编译安装 PHP 8 的详细步骤,适用于 Linux 系统(如 CentOS、Ubuntu 等)。我们将以 PHP 8.2 为例,但你可以根据需要调整版本。


1. 安装依赖

在编译 PHP 之前,需要安装必要的依赖:

CentOS / RHEL

sudo yum install -y gcc make libxml2-devel openssl-devel sqlite-devel \
    curl-devel libpng-devel libjpeg-devel libicu-devel oniguruma-devel \
    libxslt-devel libzip-devel bzip2-devel

Ubuntu / Debian

sudo apt update
sudo apt install -y build-essential libxml2-dev libssl-dev libsqlite3-dev \
    libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libicu-dev \
    libxslt1-dev libzip-dev libbz2-dev

2. 下载 PHP 8 源码

访问 PHP 官方下载页面 获取最新版本,或使用 wget 下载:

cd /usr/local/src
sudo wget https://www.php.net/distributions/php-8.2.12.tar.gz  # 替换为最新版本
sudo tar -zxvf php-8.2.12.tar.gz
cd php-8.2.12

3. 配置编译选项

运行 ./configure 设置安装参数:

sudo ./configure \
    --prefix=/usr/local/php8 \                  # 安装目录
    --with-config-file-path=/usr/local/php8/etc \ # PHP 配置文件路径
    --enable-fpm \                              # 启用 PHP-FPM
    --with-fpm-user=nginx \                     # PHP-FPM 运行用户(根据需要调整)
    --with-fpm-group=nginx \                    # PHP-FPM 运行组
    --with-mysqli \                             # MySQLi 扩展
    --with-pdo-mysql \                          # PDO MySQL 扩展
    --with-openssl \                            # OpenSSL 支持
    --with-zlib \                               # zlib 压缩
    --with-curl \                               # cURL 支持
    --with-libzip \                             # Zip 支持
    --enable-mbstring \                         # 多字节字符串支持
    --enable-gd \                               # GD 库(图像处理)
    --with-jpeg \                               # JPEG 支持
    --with-png \                                # PNG 支持
    --enable-opcache \                          # 启用 Opcache
    --enable-intl \                             # 国际化支持
    --enable-bcmath \                           # 数学计算扩展
    --enable-sockets \                          # 套接字支持
    --enable-soap \                             # SOAP 支持
    --with-xsl \                                # XSL 支持
    --with-bz2                                  # Bzip2 支持

可选扩展

  • --with-redis(需先安装 Redis 扩展)
  • --with-imagick(需安装 ImageMagick)

4. 编译并安装

sudo make -j$(nproc)       # 使用所有CPU核心编译
sudo make install         # 安装

5. 配置 PHP

复制配置文件

sudo cp php.ini-production /usr/local/php8/etc/php.ini
sudo cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
sudo cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf

修改 php-fpm.conf(可选)

sudo vim /usr/local/php8/etc/php-fpm.d/www.conf

调整:

user = nginx
group = nginx
listen = /run/php-fpm/php-fpm.sock  # 或 127.0.0.1:9000

6. 启动 PHP-FPM

创建 systemd 服务文件

sudo vim /etc/systemd/system/php-fpm8.service

内容:

[Unit]
Description=PHP 8 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/local/php8/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php8/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

启动 PHP-FPM

sudo systemctl daemon-reload
sudo systemctl start php-fpm8
sudo systemctl enable php-fpm8

7. 验证安装

/usr/local/php8/bin/php -v

输出应类似:

PHP 8.2.12 (cli) (built: Nov 10 2023 12:34:56) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies

8. 设置环境变量(可选)

如果希望全局使用 php 命令:

echo 'export PATH="/usr/local/php8/bin:$PATH"' | sudo tee /etc/profile.d/php8.sh
source /etc/profile.d/php8.sh

9. 配置 Nginx / Apache

Nginx 示例

location ~ \.php$ {
    fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;  # 或 127.0.0.1:9000
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Apache 示例

确保 mod_proxy_fcgi 已启用,并在虚拟主机中配置:

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

常见问题

1. 缺少依赖

如果 configure 报错,安装缺失的依赖(如 libzip-devlibonig-dev)。

2. PHP-FPM 启动失败

检查日志:

sudo tail -f /usr/local/php8/var/log/php-fpm.log

3. 扩展安装

如果需要额外扩展(如 Redis、Imagick),进入 PHP 源码目录的 ext/扩展名 并编译安装。


总结

编译安装 PHP 8 完成!
✅ 支持自定义配置和扩展。
✅ 适用于需要特定优化或最新版本的场景。

如果需要更简单的安装方式,可以考虑 包管理器(如 remiondrej,但编译安装更适合深度定制。 🚀

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。