eAccelerator 是一个开源的 PHP 加速器、优化器,它通过将已编译的脚本字节码缓存到共享内存中,从而显著提升 PHP 应用的执行效率,以下是详细的 eAccelerator 安装教程,涵盖环境准备、安装步骤、配置优化及常见问题处理。

环境准备
在安装 eAccelerator 之前,需确保系统满足以下要求:
- 操作系统:支持 Linux、BSD、Windows 等主流系统,推荐 Linux(如 CentOS、Ubuntu)。
- PHP 环境:已安装 PHP 及开发工具,版本需与 eAccelerator 兼容(支持 PHP 5.2-7.4,部分版本支持 PHP 8.x)。
- 编译工具:Linux 系统需安装
gcc、make、autoconf等工具,可通过yum install gcc make autoconf(CentOS)或apt-get install build-essential(Ubuntu)安装。 - 下载源码:从官方 GitHub 仓库获取最新源码(如
https://github.com/eaccelerator/eaccelerator),或使用 wget 下载:wget https://github.com/eaccelerator/eaccelerator/archive/refs/heads/master.zip unzip master.zip && cd eaccelerator-master
安装步骤
编译安装
eAccelerator 需通过 PHP 的 PECL 扩展机制安装,具体步骤如下:
- 生成 configure 脚本:
phpize
若提示
phpize command not found,需安装 PHP 开发包(如yum install php-devel)。 - 配置编译选项:
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
参数说明:
(图片来源网络,侵删)--enable-eaccelerator=shared:编译为共享模块(动态加载)。--with-php-config:指定php-config路径(可通过which php-config查询)。
- 编译与安装:
make && make install
安装成功后,模块路径通常为
/usr/lib64/php/modules/eaccelerator.so(64位系统)或/usr/lib/php/modules/eaccelerator.so(32位系统)。
配置 PHP
-
加载扩展:编辑 PHP 配置文件(如
/etc/php.ini或/etc/php.d/eaccelerator.ini),添加以下内容:extension=eaccelerator.so eaccelerator.shm_size="64" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="3600" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
-
关键参数说明:
| 参数 | 说明 | 推荐值 | |------|------|--------| |eaccelerator.shm_size| 共享内存大小(MB) | 64-128 | |eaccelerator.cache_dir| 磁盘缓存目录 |/tmp/eaccelerator| |eaccelerator.enable| 是否启用 | 1(开启) | |eaccelerator.optimizer| 是否启用代码优化 | 1(开启) | |eaccelerator.shm_ttl| 内存缓存过期时间(秒) | 3600 | |eaccelerator.compress| 是否压缩缓存数据 | 1(开启) | -
创建缓存目录:
(图片来源网络,侵删)mkdir -p /tmp/eaccelerator && chmod 777 /tmp/eaccelerator
重启服务
重启 PHP-FPM 或 Apache 以加载扩展:
# PHP-FPM systemctl restart php-fpm # Apache systemctl restart httpd
验证安装
创建 PHP 测试文件(如 info.php),添加以下代码:
<?php phpinfo(); ?>
访问该文件,若在输出中找到 eAccelerator 相关信息(如版本、配置参数),则表示安装成功。
常见问题处理
- 编译错误:若提示
fatal error: zend_smart_str.h: No such file or directory,需确保 PHP 开发包版本匹配,或尝试更新 PHP 源码。 - 权限问题:若缓存目录无法写入,检查目录权限是否为 777,或调整 PHP 运行用户(如
www-data)的权限。 - 不兼容 PHP 8.x:部分旧版 eAccelerator 不支持 PHP 8,可尝试使用分支
https://github.com/eaccelerator/eaccelerator/tree/php8或替代方案(如 OPcache)。
相关问答 FAQs
Q1:eAccelerator 与 OPcache 有什么区别?如何选择?
A1:eAccelerator 是早期流行的加速器,通过字节码缓存和优化提升性能;OPcache 是 PHP 官方推荐的加速器,集成度更高,支持 PHP 7.x/8.x,且无需额外安装,新项目建议优先使用 OPcache,旧项目迁移时可将 eAccelerator 作为过渡方案。
Q2:如何监控 eAccelerator 的缓存命中率?
A2:可通过 eaccelerator_info() 函数获取缓存状态,例如创建监控脚本:
<?php $info = eaccelerator_info(); echo "缓存内存使用: " . $info['memory_size'] . " bytes<br>"; echo "缓存文件数量: " . $info['cached_files'] . "<br>"; echo "缓存命中率: " . ($info['hits'] / ($info['hits'] + $info['misses']) * 100) . "%"; ?>
访问该脚本即可查看实时数据,也可结合监控工具(如 Zabbix)定期采集数据。
