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擴展流程