Mac上通过pecl安装PHP扩展

97 篇文章 2 订阅
77 篇文章 2 订阅

 

注意

1. 如果pecl收录了你需要的扩展,例如mbstring,即可通过以下方法来安装扩展:
sudo pecl search mbstring
sudo pecl install mbstring

很无奈,现在PHP官方的pecl和pear姐妹花已经落魄了,很难装到我们需要的扩展。

 

2. 如果没有收录,则需要到https://www.php.net/downloads下载当前本地php版本对应的安装包,
需要一模一样的版本号,如果没有,请下载官方历史版本文件,例如
https://www.php.net/distributions/php-7.3.13.tar.bz2,修改版本号即可
解压,进入./ext/mbstring文件夹,开始自行编译安装
,例如:

# 请自行修改版本号
curl -O https://www.php.net/distributions/php-7.4.7.tar.bz2
tar -jxvf php-74.7.tar.bz2
cd php-7.4.7
cd ext/
ls
cd mbstring/

# 注意:phpize路径=你系统当前phpize文件的绝对路径,请使用locate phpize来查找
/usr/local/bin/phpize

# 注意:php-config路径=你系统当前php-config文件的绝对路径,请使用locate php-config来查找
# 如果最后提示错误:The pkg-config script could not be found or is too old.  请使用brew install pkg-config来安装先
./configure --with-php-config=/usr/local/bin/php-config
make
make test
sudo make install
编译完成,会提示新生成的so文件
修改php.ini,开始加载这个so扩展:extension=mbstring.so
sudo apachectl restart

 

 

 

=============== 安装pdo_mysql扩展实例 ===================

sudo pecl install pdo_mysql
WARNING: "pecl/PDO_MYSQL" is deprecated in favor of "channel://http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_mysql//ext/pdo_mysql"
Package "pecl.php.net/PDO_MYSQL" dependency "pecl.php.net/pdo" has no releases
downloading PDO_MYSQL-1.0.2.tgz ...
Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes)
.....done: 11,946 bytes
ERROR: unable to unpack /private/tmp/pear/download/PDO_MYSQL-1.0.2.tgz
... 稍等,等下成功了再补发这一段...


=============== 安装mbstring扩展实例 ===================

pecl search mbstring
# 错误提示:WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
Retrieving data...0%
no packages found that match pattern "mbstring", for channel pecl.php.net.

sudo pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Update of Channel "pecl.php.net" succeeded

pecl search mbstring
Retrieving data...0%
no packages found that match pattern "mbstring", for channel pecl.php.net.

sudo pecl install mbstring
No releases available for package "pecl.php.net/mbstring"
install failed

sudo pecl install tidy
WARNING: channel "pear.php.net" has updated its protocols, use "pecl channel-update pear.php.net" to update
Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user

sudo pecl channel-update pear.php.net


======= Pecl没有收录这个扩展,我们可以通过phpize来安装 =======
# 可以在https://www.php.net/downloads选择下载不同版本的PHP安装包,
# 建议稍微高点的版本,我当前安装的是php-7.3.8,选择了7.3.13,可以成功编译扩展包。
1. curl -O https://www.php.net/distributions/php-7.3.13.tar.bz2      (如果下载不了,请用浏览器下载)
2. tar -jxvf php-7.3.13.tar.bz2
3. cd php-7.3.13/ext/mbstring/
4. /usr/local/php5-7.3.8-20190811-205217/bin/phpize    (注意:路径=你系统当前phpize文件的绝对路径)
5. ./configure --with-php-config=/usr/local/php5-7.3.8-20190811-205217/bin/php-config  (注意:后面的路径=你系统当前php-config文件的绝对路径)
6. make
7. make test
8. sudo make install
# 编译完成,会提示新生成的so文件
# Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20180731/
# Installing header files:          /usr/local/php5/include/php/
9. ls /usr/local/php5/lib/php/extensions/no-debug-non-zts-20180731/  会看到mbstring.so文件,代表成功了
10. 修改php.ini,开始加载这个so扩展:extension=mbstring.so
11. sudo apachectl restart


题外话

-- Pecl收录的扩展集 http://pecl.php.net/packages.php
-- Pecl 算是 php 扩展的一个官方聚合平台,一些比较有名,有特点的扩展会被 pecl 收录,收录后可以通过 pecl 的方式安装。但是更多的扩展是没有收录在 pecl 上的,这些扩展还是需要通过 phpize 配置进行手动安装。
-- php-config文件的路径,一般都是在php安装目录的bin文件夹下面,建议通过phpinfo()查看并参考exstension_dir,例如:
【如果是自己brew install php的话,有可能是】 /usr/local/Cellar/php@7.1/7.1.17/pecl/20160303/
【如果是通过】 /usr/local/php5-7.3.8-20190811-205217/bin/php-config
【如果是Mac自带的PHP】 不知道...我把自带的php卸掉了...
-- 

 

Connection to `ssl://pecl.php.net:443' failed: Operation timed out - when sudo pecl search mbstring
https://blog.csdn.net/qq285744011/article/details/103718879

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rudon滨海渔村

花的越多,赚得越多...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值