编译安装 php 7.2, openssl 扩展 和 swoole 扩展

本文详细介绍了在CentOS 8.0上编译安装PHP 7.2,以及如何添加openssl和swoole扩展的完整步骤,包括下载源码、配置环境、安装测试和优化运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

编译安装 php 7.2,openssl 扩展 和 swoole 扩展

一、下载

二、编译安装

三、测试安装结果

四、优化运行

五、安装部分扩展


编译安装 php 7.2,openssl 扩展 和 swoole 扩展

 

注: 本次安装 操作系统为:cent os 8.0 64位 初始化操作系统,

一、下载

(1)下载源码包:

             1、官方下载地址:https://www.php.net/downloads.php

              2、百度网盘地址:https://pan.baidu.com/s/1yS7Oo_haxOoNOSLJeOMsRg

                    ① 提取码:btx2

                    ② 网盘内提供 7.2/7.3/7.4 三个版本源码包

                    ③ 本次安装使用的PHP包为 php-7.2.28.tar.bz2

二、编译安装

  1. 将下载好的源码包移动到 ~ 目录下,并解压
  2. 解压命令:tar -xjvf php-7.2.28.tar.bz2 php-7.2.28/
  3. 进入解压好的目录内:cd php-7.2.28
  4. 检测安装环境:./configure --prefix=/usr/local/php
    1. prefix参数:软件安装目录
  5. 编译:make
  6. 预安装:make test
  7. 安装:make install

    注:1、在进行configure 时,出现 错误提示,提示信息如下

// 缺少 libxml2 依赖
configure: error: libxml2 not found. Please check your libxml2 installation.

     解决方法:安装 libxml2 依赖:

          1. 下载

### 关于 Swoole Loader 在 arm64 架构下适配 PHP 7.0 的分析 目前,Swoole 官方并未明确提及针对 arm64 架构下的 PHP 7.0 提供原生支持的情况[^2]。然而,在实际开发环境中,许多开发者尝试通过手动编译或其他方式实现兼容性。 #### 手动编译的可能性 对于 arm64 架构上的 PHP 7.0 Swoole Loader 的兼容性问题,可以考虑以下方法: 1. **环境准备** 需要先确保基础依赖已正确安装。例如 OpenSSL、zlib、curl 等库的支持,这些可以通过 Homebrew 或其他包管理器完成。如果遇到 x64 版本冲突,则需切换至 arm64 支持的版本[^1]。 ```bash arch -arm64 brew install openssl@1.1 zlib curl libjpeg libpng libxml2 gettext freetype pcre libiconv libzip ``` 2. **PHP 源码编译** 对于 arm64 上的 PHP 7.0,建议从源码开始编译并指定目标架构为 `--build=arm-apple-darwin`。以下是基本命令示例: ```bash ./configure --prefix=/usr/local/php7 \ --with-config-file-path=/etc/php/7.0/cli \ --enable-mbstring \ --enable-pcntl \ --enable-sockets \ --enable-bcmath \ --enable-calendar \ --enable-exif \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-curl \ --with-iconv \ --with-zlib \ --with-libxml-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-gettext \ --with-xsl \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --disable-debug \ --disable-rpath \ CC="gcc -arch arm64" make && sudo make install ``` 3. **Swoole 扩展编译** 编译完成后,可进一步尝试编译 Swoole 扩展以适应当前 PHP 环境。需要注意的是,Swoole 自身可能未完全优化对 arm64 的支持,因此需要确认其最新版本是否已经修复相关问题[^2]。 ```bash pecl install swoole echo "extension=swoole.so" >> /etc/php/7.0/cli/php.ini php -m | grep swoole ``` #### 已知挑战与潜在风险 尽管理论上可行,但在实践中可能会面临如下困难: - **缺乏官方支持**:截至最近更新,Swoole 并未正式宣布全面支持 arm64 下的 PHP 7.0[^2]。 - **依赖项不一致**:某些底层库可能存在版本差异或缺失,导致编译失败。 - **性能瓶颈**:即使成功运行,也可能因硬件特性而导致性能下降。 #### 替代方案 如果上述路径难以实施,还可以探索以下替代策略: - 升级至更高版本的 PHP(如 PHP 7.2 或以上),因为较新的版本通常具备更好的跨平台兼容性社区支持。 - 利用 Docker 容器化技术部署预构建镜像,从而绕过本地编译复杂度。 ```dockerfile FROM arm64v8/ubuntu:latest RUN apt update && apt upgrade -y && \ apt install -y software-properties-common && \ add-apt-repository ppa:ondrej/php && \ apt update && \ apt install -y php7.0-cli php7.0-mysql php7.0-json php7.0-opcache php7.0-intl php7.0-mbstring php7.0-soap php7.0-xml php7.0-zip git unzip wget build-essential autoconf automake pkg-config re2c bison libtool flex cmake python3-dev libssl-dev libpcre3-dev libevent-dev libncurses5-dev libreadline-dev libsqlite3-dev libbz2-dev libgmp-dev libicu-dev libmcrypt-dev libonig-dev libpspell-dev librecode-dev libtidy-dev libxml2-dev libxslt1-dev libzip-dev WORKDIR /app COPY . . CMD ["php", "-a"] ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值