1 什么是PHP扩展
为PHP提供一些扩展的功能
2 使用PHP扩展额优点
- 快速扩展功能--鸟枪换大炮
- 按需加载,节省资源
3 常见PHP扩展
- mysql--提供给PHP操作MySql数据库的功能
- gd2--动态创建图像
- xdebug--跟踪,调试和分析PHP程序的运行情况
4 PHP扩展运行原理
PHP运行原理-->
zend引擎--> Extensions--> Aapi-->上层应用(php代码)
PHP扩展运行原理-->
Extensions->初始化(内部变量,内部资源,注册资源句柄,注册Zend函数)-->Aapi请求初始化-->执行-->关闭
查看管理PHP扩展
- 使用phpinfo()探针
- 使用get_loaded_extensions() 列出php安装的所有扩展
- extend_loaded() 检查一个扩展是否安装extend_loaded(‘redis’),返回bool(true 或false)
管理PHP扩展
- 扩展目录--对应php.ini 中 extension_dir= '目录地址'
- 扩展路径添加 -- extension 比如添加redis扩展:extension=php_redis.dll 去掉行首分号 保存重启服务器
5 Windows 下安装PHP扩展流程
Windows下的PHP扩展 就是 php_xxx.dll 文件,一般存在 php/ext 目录
PECL 全称 The PHP Extension Community Libray ,打包安装的PHP 扩展库仓库
1 下载:
2 选择版本
- x64:64位下载
- x86:32位下载
- nts/ts 线性 非线性安全 在php扩展中可以看到
(PS:不知道自己的php 版本信息的话可以在 phpinfo中 查看 PHP Extension Build 选项 可以看到是线性/非线性 VC版本)
2 把下载的扩展包解压到对应的目录,一般在 php/ext
4 php.ini 中开启扩展,配置相关参数 比如 extension=php_memcache.dll 重启服务器(apache/nginx)即可
6 Linux 下安装PHP扩展流程
Linux 下的PHP扩展一般是以 .so 结束的文件
找到自己的php扩展安装目录 不知道的可以用 whereis php 查找
我的是在 /usr/lib64/php/modules
安装流程
- 下载 http://pecl.php.net/packages.php
- 选择版本 查看依赖关系 根据php版本选择即可
- 判断安装类型
- 复制扩展文件到对应目录
- 直装 ----直接复制文件到扩展目录,开启相应扩展
- 编译安装----进行编译
1 执行phpize,在解压目录直接执行 phize,或者 把phpize的目录复制执行
如 /usr/bin/php/phpize
(PS:phpize 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块)
2 配置编译参数 ,主要是配置php配置文件参数
如 ./configure -with-php-config=/usr/local/php/bin/php-config
如果出现配置信息错误,需要安装 autoconf (自动配置参数)
centos/rehat下 yum install autoconf
ubuntu 下 apt-get install autoconf
3 编译和安装
make && make install
4 复制扩展文件到对应目录
5 开启扩展配置相应扩展参数
6 重启php-fpm
Linux 下安装PHP扩展流程