homestead安装php扩展

homestead 本身自带了很多扩展,一般不需要再次安装,但是遇到一些特殊的还是需要安装,比如说swoole,mongodb。今天已安装mongodb扩展为例子,毕竟算是踩过的坑。

本身 homestead的官网上提出一种很简单的方式,比如说:只需要在 Homestead.yaml 中加入 mongodb: true 即可,如下:
在 Homestead.yaml

		---
		ip: "192.168.10.10"
		memory: 2048
		cpus: 1
		provider: virtualbox
		
		# 使用 MongoDB
		mongodb: true

如果你这么做了,你会发现,报错,根本安装不成功,其他环境我不知道是否会成功,但是在windows下面和manjaro(linux)都安装失败。

网上还有一些方法,我都试过,发现问题,就是因为homestead默认安装了好几个php版本,而默认的是最新的版本,可以用

php -v 

查看默认版本。一般是最新,比如7.4.1.
但是假如我要安装7.3的版本的扩展怎么办?
如果采用网上的一些方法,就容易出现问题,比如很多人建议:

sudo pecl install mongodb

这种安装上了也是7.4版本的。

我们现在以7.3版本为例。

我采用源码编译安装的方式。
第一步:

1.从http://pecl.php.net/package/mongodb这个网址下载mongodb的扩展源码包
2.解压安装包
	tar zxf mongodb-1.7.2.tgz
3.进入解压目录,运行phpize进行安装准备   ( phpize作用)
	cd mongodb-1.7.2
4. phpize7.3 //注意这里要加版本号,如果不加版本号,就会是默认的php版本,在本文中就是php7.4
5. ./configure --with-php-config=/usr/bin/php-config7.3//同上,必须加版本号
6. sudo make && sudo make install
7.  编译成功后
 	cd /etc/php/7.3/mods-available
	sudo cp zip.ini mongodb.ini
    sudo vim mongodb.ini
    	extension=mongodb.so
	##创建软链接
	sudo ln -s /etc/php/7.3/mods-available/mongodb.ini  /etc/php/7.3/fpm/conf.d/25-mongodb.ini//同一操作,建立cli的软链接。
	为什么是25-?
	问题在于mongodb.so依赖于json.so。解决方案是在json.so之后加载mongodb.so。

这是在安装mongodb扩展时,遇到的坑,仅此参考,如果有错误的地方,希望指正,也欢迎指正

你可能感兴趣的:(php)