编译安装php8
【摘要】 以下是 编译安装 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-dev
、libonig-dev
)。
2. PHP-FPM 启动失败
检查日志:
sudo tail -f /usr/local/php8/var/log/php-fpm.log
3. 扩展安装
如果需要额外扩展(如 Redis、Imagick),进入 PHP 源码目录的 ext/扩展名
并编译安装。
总结
✅ 编译安装 PHP 8 完成!
✅ 支持自定义配置和扩展。
✅ 适用于需要特定优化或最新版本的场景。
如果需要更简单的安装方式,可以考虑 包管理器(如 remi
或 ondrej
),但编译安装更适合深度定制。 🚀
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)