7. PHP 扩展

php 有许多不同的扩展可用,可以在您的 php.ini 中添加它们

7.1. APC (Alternative PHP-cache)

7.1.1. 什么是 APC

 

APC 是 Alternative PHP Cache(PHP 替代缓存)。它的构想是为编译和缓存 php 脚本提供一个免费、开放和健壮的框架。APC 的构想是通过提供一种将脚本缓存为编译状态的方式来提高 PHP 在高负载站点上的性能,从而几乎完全消除解析和编译的开销。有一些商业产品提供此功能,但它们既不是开源的也不是免费的。我们的目标是通过提供一个更灵活且普遍可访问的实现来平衡竞争环境。我们还希望缓存能够提供对其自身工作原理和 PHP 工作原理的可见性,因此投入了时间来提供内部诊断工具,这些工具允许进行缓存诊断和维护。因此就有了 APC。由于我们致力于开发一款可以随着新版本 PHP 轻松增长的产品,因此我们将其实现为 zend 扩展,允许将其编译到 PHP 中,或者在事后作为插件模块添加。与 PHP 一样,它在与 PHP 本身相同的条款下完全免费用于商业和非商业用途。APC 已经在 PHP 4.0.3、4.0.3pl1 和 4.0.4 下进行了测试。它目前在 Linux 和 FreeBSD 下编译。欢迎针对其他操作系统/PHP 版本的移植补丁。

 
--www.apc.communityconnect.com/ 

作者使用 apc 进行了一些性能测试,结果令人非常惊讶。一个在循环中进行 MySQL 查询(总共 10 个查询)的 PHP 网页速度提高了 50% 以上

APC 的缺点:如果您系统上有其他用户在编写 php 代码,他们可能对 APC 不太满意,因为除非您重置缓存或重启 Apache,否则所有更改都会被忽略。 另一种方式,即 APC 在每次运行时检查 php 脚本是否有较新版本,会降低速度。

7.1.2. 下载源代码

原始站点: http://apc.communityconnect.com/sources/apc-cvs.tar.gz

7.1.3. 构建和安装

cd /usr/local

tar -xvzf apc-cvs.tar.gz

cd apc

./configure --enable-apc --with-php-config=/usr/local/bin/php-config

make
make install

cp modules/php_apc.so /usr/local/lib/php/extensions

echo 'zend_extension="/usr/local/lib/php/extensions/php_apc.so"' \
>> /usr/local/lib/php.ini
echo “apc.mode = shm” >> \
apc.mode = shm

重启您的 Apache Web 服务器。 试用一下,创建一个包含以下内容的 php 文件

示例 7. apctest.php

<?php
apcinfo();
?>

7.2. Zend-Optimizer(_不要_ 与 APC 缓存结合使用!)

7.2.1. 什么是 Zend-optimizer

 

Zend Optimizer 会检查标准 Zend 运行时编译器在 Zend 引擎中生成的中间代码,然后对其进行优化以实现更快的执行速度。

 
--www.zend.com 

Zend-Optimizer 是一款免费的闭源产品。在用于 APC 测试的相同测试代码上,与没有 APC 的 PHP 相比,速度下降了约 5%。

您必须进行自己的测试,才能查看您的代码是否有一些改进。请务必不要将 Zend OptimizerAPC 一起使用,否则您的整个设置将无法工作。

7.2.2. 下载二进制文件

原始站点: https://www.zend.com/store/free_download.php?pid=13

Tip在 zend.com 注册
 

您必须在 zend.com 注册才能访问下载页面

7.2.3. 安装

没有什么需要构建的,此产品是闭源的,因此仅提供适用于不同平台的二进制文件。 文件名因您的平台而异,示例适用于 IA32 上的 Linux。

cd /usr/local

tar -xvzf ZendOptimizer-2.1.0-Linux_glibc21-i386.tar.gz
	 
cd ZendOptimizer-2.1.0-Linux_glibc21-i386

./install.sh

安装脚本是不言自明的,如果您像本文档中所述编译了 Apache 和 PHP,则只需在所有关于路径名的问题上按 ENTER 键。