(MAC) PHP扩展安装

前言#

每个人的安装环境不同,具体安装依个人而异!

1、安装之前先查看 php.ini 的位置,然后将扩展写入配置文件。

php -i | grep php.ini
# php --ini
# Loaded Configuration File => /usr/local/lib/php.ini
sudo cp /etc/php.ini.default /usr/local/lib/php.ini

2、修改.bash_profile,增加如下几行,这样就可以方便使用 php、phpize、php-config 命令了!

PATH=/usr/local/bin:$PATH

3、查找扩展的资源包
(1)pecl.php.net/
(2)github

PHP 安装扩展方法#

查看 php.ini 默认的扩展和编译安装时启动的配置项是对应的。如果需要启动某个扩展可以尝试以下方案:
(1)编译安装 PHP 的时候启动配置项,前提是配置项支持!
(2)下载对应扩展的资源包然后自己编译安装
(3)找到原安装 PHP 的资源目录,然后 cd 到 ext 及对应的扩展下编译安装。举例:

# 进入PHP-7.1版本的资源目录及扩展curl
cd /usr/local/opt/php-src/ext/curl
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

更多等待记录…

igbinary#

wget http://pecl.php.net/get/igbinary-3.1.5.tgz
tar zxvf igbinary-3.1.5.tgz
cd ~/opt/igbinary-3.1.5
sudo phpize --clean && sudo make clean
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

curl#

wget https://curl.haxx.se/download/curl-7.72.0.tar.gz
tar -zxvf curl-7.72.0.tar.gz && cd curl-7.72.0
./configure && sudo make && sudo make install

cd /usr/local/opt/php-src/ext/curl
phpize --with-curl=/usr/local/opt/curl
./configure --with-php-config=php-config
sudo make && sudo make install

sockets#

cd /usr/local/opt/php-src/ext/sockets
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

tidy#

exif#

fileinfo#

ftp#

zip#

Redis#

git clone git://github.com/phpredis/phpredis.git 
#git checkout xxx # 可以自己查看该资源的分支
cd ~/opt/phpredis/
phpize
./configure --with-php-config=php-config --enable-redis-igbinary 
sudo make && sudo make install

Memcache#

git clone git://github.com/websupport-sk/pecl-memcache
cd ~/opt/pecl-memcache
phpize
./configure --with-php-config=php-config --with-zlib-dir=/usr/local/opt/zlib
sudo make && sudo make install

Memcached#

# wget http://download.tangent.org/libmemcached-1.0.18.tar.gz
# sudo tar -zxvf libmemcached-1.0.18.tar.gz
# cd libmemcached-1.0.18 && sudo ./configure && sudo make && sudo make install

git clone https://github.com/php-memcached-dev/php-memcached.git
# git clone git://github.com/php-memcached-dev/php-memcached.git
cd ~/opt/php-memcached
phpize
sudo ./configure --with-php-config=/usr/local/bin/php-config --enable-memcached  --with-libmemcached-dir=/usr/local  --disable-memcached-sasl --enable-memcached-igbinary
sudo make && sudo make install

configure: error: Please reinstall the pkg-config distribution
wget pkgconfig.freedesktop.org/releases/...

swoole#

# git clone git://github.com/swoole/swoole-src.git
wget https://github.com/swoole/swoole-src/archive/v4.5.3.tar.gz
tar -zxvf v4.5.3.tar.gz && cd swoole-src-4.5.3
# sudo make clean && phpize --clean
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

yar#

安装依赖:Curl、Json、Msgpack (Optional)

git clone https://github.com/laruence/yar.git
cd ~/opt/yar
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

mbstring#

cd /usr/local/opt/php-src/ext/mbstring
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

PDO#

先配置 pdo.so,在配置 pdo_mysql.so

cd /usr/local/opt/php-src/ext/pdo
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

event#

依赖扩展:socket

wget https://pecl.php.net/get/event-2.5.7.tgz
tar -zxvf event-2.5.7.tgz
cd ~/opt/event-2.5.7
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

mysqlnd#

cd /usr/local/opt/php-src/ext/mysqlnd
sudo mv config9.m4 config.m4
phpize
export PHP_OPENSSL_DIR=yes
./configure --with-php-config=php-config
sudo make && sudo make install

mysqli#

cd /usr/local/opt/php-src/ext/mysqli
phpize
./configure --with-php-config=php-config --with-mysqli=/usr/local/bin/mysql_config
sudo make && sudo make install

pdo_mysql#

cd /usr/local/opt/php-src/ext/pdo_mysql
phpize clean && make clean
phpize
./configure --with-php-config=php-config --with-pdo-mysql=/usr/local/mysql
sudo make && sudo make install

zlib#

cd /usr/local/opt/php-src/ext/zlib
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

gd#

cd /usr/local/opt/php-src/ext/gd
phpize
./configure --with-php-config=php-config --with-zlib-dir=/usr/local/opt/zlib --with-jpeg-dir=/usr/local/opt/jpeg --with-webp-dir=/usr/local/opt/webp
sudo make && sudo make install

# 开发机搭建
# ./configure --with-freetype-dir=/usr/include/freetype2  --with-jpeg-dir=/usr/include

openssl#

cd /usr/local/opt/php-src/ext/openssl
mv config0.m4 config.m4
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

crypto#

wget https://pecl.php.net/get/crypto-0.3.1.tgz && tar -zxvf crypto-0.3.1.tgz
cd crypto-0.3.1
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

pcntl#

cd /usr/local/opt/php-src/ext/pcntl
sudo phpize --clean && sudo make clean
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

php-fpm#

cd /usr/local/opt/php-src/sapi/fpm/
phpize
./configure --with-php-config=php-config

readline || editline#

如果要使用 readline 函数,你必须安装 libreadline,你也能使用非 GPL 的 libedit 库来替代 readline 库。
要使用这些函数,你必须在编译 PHP 的 CGI 或者 CLI 版本时启用 readline 支持。你需要在编译配置 PHP 时使用 –with-readline [=DIR] 选项。如果你想使用 libedit 来代替 readline , 配置 PHP 时使用 –with-libedit [=DIR] 选项

cd /usr/local/opt/php-src/ext/readline
./configure && sudo make && sudo make install
sudo vim /usr/local/php7.3/lib/php.ini 
# 增加readline.so

1、先下载包:thrysoee.dk/editline/
2、然后解压后进入包,执行以下命令

./configure
make
make install

3、重新编译 PHP

写个 shell 脚本吧#

这里是一个一个的粘贴进来,也可以定义一个关联数组。但是尝试了下 shell 的关联数组以字符串为下标获取不到预期的值。先绕过去再说吧,有空再弄。

#!/bin/sh

#igbinary
cd ~/opt/igbinary-3.1.5
sudo phpize --clean && sudo make clean
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

# curl
cd /usr/local/opt/php-src/ext/curl
sudo phpize --clean && sudo make clean
phpize
./configure --with-php-config=php-config
sudo make && sudo make install

# ...
本作品采用《CC 协议》,转载必须注明作者和本文链接