Mac上通过pecl安装PHP扩展

注意

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

2. 如果没有收录,则需要到https://www.php.net/downloads下载当前本地php版本对应的安装包,解压,进入./ext/mbstring文件夹,开始自行编译安装,例如:
curl -O https://www.php.net/distributions/php-7.3.13.tar.bz2
tar -jxvf php-7.3.13.tar.bz2
cd php-7.3.13
cd ext/
ls
cd mbstring/
/usr/local/php/bin/phpize    (注意:路径=你系统当前phpize文件的绝对路径)
./configure --with-php-config=/usr/local/php/bin/php-config  (注意:后面的路径=你系统当前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/[email protected]/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

发布了166 篇原创文章 · 获赞 58 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/qq285744011/article/details/103719694