主页 M

使用pecl工具简洁方便地安装php扩展

2021-12-28 网页编程网 网页编程网

phpize是一个常用的php扩展安装方式,但通过此方式安装需要下载对应的包、phpize,configure,make,make install等,而相比于phpize方式,pecl方式安装php扩展更为简便,我们不用去寻找源码包、下载、编译、安装配置,一个命令搞定,甚至都不用手动编辑php.ini文件。PECL的全称是The PHP Extension Community Library,是一个开放的并通过PEAR(PHP Extension and Application Repository,PHP 扩展和应用仓库)打包格式来打包安装的 PHP扩展库仓库。通过 PEAR 的 Package Manager 的安装管理方式,可以对PECL模块进行下载和安装。

1.pecl安装及使用如下

#ubuntu下安装pecl工具:
apt install php-dev php-pear autoconf automake libtool -y
#centos下安装pecl工具:
yum install php-dev php-pear autoconf automake libtool -y
#也可以使用php安装pecl工具
cd /usr/local/php/bin/
wget http://pear.php.net/go-pear.phar -O go-pear.php
php go-pear.php
#pecl搜索一个扩展:xdebug,
root@us12:~# pecl search xdebug
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Retrieving data...0%
Matched packages, channel pecl.php.net:
=======================================
Package Stable/(Latest) Local
xdebug  2.8.0 (stable)        Provides functions for function traces and profiling
#列出所有的channels
root@us12:~# pecl list-channels
Registered Channels:
====================
Channel      Alias   Summary
doc.php.net  phpdocs PHP Documentation Team
pear.php.net pear    PHP Extension and Application Repository
pecl.php.net pecl    PHP Extension Community Library
__uri        __uri   Pseudo-channel for static packages
#执行提示的update操作
root@us12:~# pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded
#执行之后就不会再提示了
root@us12:~# pecl search xdebug
Retrieving data...0%
Matched packages, channel pecl.php.net:
=======================================
Package Stable/(Latest) Local
xdebug  2.8.0 (stable)        Provides functions for function traces and profiling
#pecl安装扩展
root@us12:~# pecl install swoole

2.pecl有很多命令,可以通过pecl  help查看,常用命令如下

build从C的源码中构建扩展

install安装扩展

uninstall卸载扩展

download下载扩展包

list-all列出全部扩展

run-tests运行测试

upgrade升级扩展

upgrade-all升级所有扩展

如pecl list可列出所有已安装包。

build从C的源码中构建扩展 install安装扩展 uninstall卸载扩展download下载扩展包 list-all列出全部扩展 run-tests运行测试upgrade升级扩展upgrade-all升级所有扩展安装时会提示:WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update,显示pecl.php.net更新了协议,可使用命令进行更新channels。另外在启动phpP时偶尔遇到这种报错:PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/phalcon.so' - /usr/lib/php/20160303/phalcon.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 原来是在php.ini中写死的extension=phalcon.so的位置导致的。因为phalcon依赖于json扩展,在php.ini配置文件头部写上extension导致报错,解决方法可以把phalcon的加载放至最后,也可以使用目录加载。在conf.d中新建phalcon.ini文件写入extension=内容,让php根据依赖等自动加载。

阅读原文
阅读 4682
123 显示电脑版