在 CentOS 系统上部署高性能的 PHP 应用时,Yaf(Yet Another Framework)框架凭借其 C 语言扩展的底层实现,成为了许多开发者的首选,它以极低的资源消耗和卓越的运行速度著称,本文将详细介绍在 CentOS 环境中安装并配置 PHP Yaf 扩展的完整流程,帮助开发者快速搭建起高效的开发与运行环境。

环境准备
在开始安装 Yaf 之前,确保您的 CentOS 系统已经具备基础的 PHP 运行环境,Yaf 作为一个 PHP 扩展(PECL),其编译和安装过程依赖于 PHP 的开发工具包。
您需要安装 PHP 本身以及一些必要的开发工具,以 CentOS 7/8 为例,可以使用 yum 或 dnf 包管理器进行安装,以下命令将安装 PHP、命令行接口、FPM(FastCGI Process Manager)以及至关重要的开发包 php-devel。php-devel 包含了 phpize 工具,这是编译 PHP 扩展所必需的。
# 对于 CentOS 7 sudo yum install php php-cli php-fpm php-devel gcc make # 对于 CentOS 8 sudo dnf install php php-cli php-fpm php-devel gcc make
安装完成后,可以通过运行 php -v 命令来验证 PHP 是否已成功安装,并查看其版本信息,确保 phpize 命令可用,这通常位于 /usr/bin/phpize。
安装 Yaf 扩展
安装 Yaf 扩展主要有两种方式:通过 PECL(PHP Extension Community Library)一键安装,或者下载源码手动编译安装,前者更为简便,推荐优先尝试。
通过 PECL 安装 (推荐)
PECL 是 PHP 扩展的官方仓库,使用它可以极大地简化安装过程,确保您的系统已安装 pear 和 pecl 工具(通常随 php-devel 一同安装)。
执行以下命令,PECL 会自动下载最新稳定版的 Yaf 源码、编译并将其安装到系统的 PHP 扩展目录中。
sudo pecl install yaf
安装过程可能会提示您输入一些配置选项,通常直接按回车键接受默认值即可,安装成功后,屏幕上会显示 Yaf 扩展的安装路径,Installing shared extensions: /usr/lib64/php/modules/yaf.so。
源码编译安装
PECL 安装失败或您需要安装特定版本的 Yaf,可以采用源码编译的方式。
-
下载源码:从 Yaf 的 GitHub 官方仓库或 PECL 网站下载源码包。

wget https://github.com/laruence/yaf/archive/master.zip unzip master.zip cd yaf-master
-
准备编译环境:使用
phpize生成configure脚本。phpize
-
配置与编译:运行
configure脚本进行配置,然后执行make进行编译,指定--with-php-config路径可以确保编译器找到正确的 PHP 配置。./configure --with-php-config=/usr/bin/php-config make
-
安装扩展:编译成功后,使用
make install将编译好的yaf.so文件复制到 PHP 扩展目录。sudo make install
配置与验证安装
无论采用哪种安装方法,最后一步都是告诉 PHP 加载 Yaf 扩展。
-
找到 php.ini 文件:PHP 的配置文件
php.ini是加载扩展的关键,您可以通过以下命令找到它的位置。php --ini
这会列出 PHP 加载的配置文件路径,Web 服务器(如 Nginx + PHP-FPM)和命令行(CLI)可能使用不同的
php.ini文件,请根据您的应用场景修改对应的文件,对于 PHP-FPM,配置文件通常在/etc/php-fpm.d/或/etc/php/目录下。 -
修改 php.ini:在
php.ini文件的末尾添加以下一行代码来启用 Yaf 扩展。extension=yaf.so
您还可以添加一些 Yaf 特有的配置,例如启用命名空间支持:
yaf.use_namespace=1
-
重启服务并验证:保存
php.ini文件后,必须重启您的 Web 服务器或 PHP-FPM 服务以使更改生效。
sudo systemctl restart nginx # 或 httpd sudo systemctl restart php-fpm
验证安装是否成功,可以在命令行执行:
php -m | grep yaf
如果输出包含
yaf,则说明扩展已成功加载,您也可以创建一个包含<?php phpinfo(); ?>的 PHP 文件,通过浏览器访问,在页面中查找 Yaf 相关的信息。
相关问答 (FAQs)
安装后重启服务,但 phpinfo() 或 php -m 中都看不到 Yaf 扩展怎么办?
解答: 这个问题通常由两个原因导致,请确认您修改了正确的 php.ini 文件,PHP-FPM 和 CLI 使用的配置文件路径可能不同,务必确保修改了您 Web 环境所对应的 php.ini,检查 yaf.so 文件是否存在于 PHP 的扩展目录中,您可以通过 php-config --extension-dir 命令查看扩展目录路径,然后确认该目录下是否有 yaf.so 文件,如果文件不存在,说明上一步的 make install 没有成功执行,请检查编译过程中的错误信息。
执行 pecl install yaf 时提示 phpize 命令未找到怎么办?
解答: phpize 是 PHP 开发工具包的一部分,用于准备 PHP 扩展的编译环境,出现此提示意味着您的系统中缺少 php-devel 这个包,请根据您的 CentOS 版本,使用 sudo yum install php-devel 或 sudo dnf install php-devel 命令来安装它,安装完成后,phpize 命令就会变得可用,您就可以继续 pecl install 的步骤了。