我的php是用hombrew安装的。后来再安装php扩展的时候。遇到了一些小问题。
安装
1.下载对应版本的源码包
2.用phpize安装
解压并cd到/php-7.0.5/ext目录,找到你想安装的扩展。比如mcrypt。cd mcrypt。执行 phpize(sudo /usr/local/Cellar/php70/7.0.5/bin/phpize
)的命令。
如果成功显示如下
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
然后执行 ./configure
会出现 一个 modules文件夹里面有mcypt.so文件
3.移动.so文件到扩展目录,并修改php.ini
把文件 cp 到 /usr/lib/php/extensions/no-debug-non-zts-20121212/ (你的目录估计给我的不一样)目录下。
在目录/usr/local/etc/php/7.0
修改 php.ini 文件。添加 扩展extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so
重启php-fpm。/usr/local/Cellar/php70/7.0.5/sbin/php70-fpm reload
遇到的问题
1.执行 phpize 时候,出现 /usr/local/Library/ENV/4.3/sed: No such file or directory
。
2.执行sudo /usr/local/Cellar/php70/7.0.5/bin/phpize时候,多了一条报错显示 m4 1.4 or later 。
当你想看看m4是什么鬼,执行 m4的时候,报错(xcrun: error: invalid active developer path (/Library/Developer/Com)
解决办法:安装 xcode-select --install
3.注意./configure的时候,每个扩展依赖不同。比如mcrypt依赖libmcrypt。所以用brew安装libmcrypt。再./configure。视每个扩展具体情况而定。
4.使用 cp,mv,移动到扩展目录时候的权限问题。你发现sudo也不可以。
- 执行phpize 可能会遇到下面的问题
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解决办法:brew install autoconf
后续安装其他扩展
安装yaf的时候
报错如下。modules目录下并没有yaf.so (brew install libtool 即可解决这个问题)
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged
You have new mail in /var/mail/chenjiang
更新记录 2018.03.25
系统重装后,用的php版本为7.1.4。./configure 完之后需要make 跟 make install。
bogon:mcrypt yanshinian$ sudo make
bogon:mcrypt yanshinian$ ls modules/
mcrypt.la mcrypt.so
bogon:mcrypt yanshinian$ sudo make install
Installing shared extensions: /usr/local/Cellar/php71/7.1.14_25/lib/php/extensions/no-debug-non-zts-20160303/
bogon:mcrypt chenjiang$
感兴趣的话可以关注我的公众号——言十年的日常
qrcode_for_gh_20daf6d0ff9e_430 (2).jpg