Write the Code. Change the World.

4月 03

homestead中php环境没有redis扩展的窘境,网上的教程也不通用,因为那些教程都只是针对单一机器单一版本php环境下的安装方法,而homestead安装了多个php版本,安装方式略有不同,怎么办?往下看:

注意:命令权限不够时请自动在命令前加上sudo前缀提权;教程还要求你会使用vi编辑器简单地写入文件内容(当然你有其它方法创建文件内容也可以)。

1.使用vagrant命令的ssh选项连接到homestead

vagrant up //启动
vagrant ssh //连接

2.下载编译php的redis扩展

# 如果,没有 phpize (新版本的不自动生成),需要手动安装 phpize
# php 版本,安装的版本也不一样。
$ sudo apt install php5.6-dev 
# 这里以php5.6举例。 下边编译的时候,也会带上版本号。如 php5.6
$ cd /usr/local/src/
$ git clone https://github.com/phpredis/phpredis.git
$ cd phpredis
$ sudo /usr/bin/phpize7.1  (不同php版本的情况下phpize版本不同)
$ sudo ./configure --with-php-config=/usr/bin/php-config7.1 (这里边也需要根据情况指定php-config的版本,且和phpize的版本保持一致。)
$ sudo make && make install

编译完成后,redis的php扩展在module目录中,它的文件名是redis.so

3.查看php的extension_dir

php -i|grep extension_dir

在shell窗口中可能会见到如下字段 extension_dir => /usr/lib/php/20160303 => /usr/lib/php/20160303 这说明php的扩展目录是 /usr/lib/php/20160303 或者你用phpinfo()输出一个页面,在里面找extension_dir也可以找到

4.把redis.so扩展模块移入php扩展目录中

sudo mv ./modules/redis.so /usr/lib/php/20160303

5.添加php配置文件的ini文件

sudo vim /etc/php/7.1/fpm/conf.d/20-redis.ini #新增配置
# 添加 extension=redis.so
# 保存 :wq

6.万事大吉,重启php-fpm

sudo service php7.1-fpm restart

到此时,phpredis扩展已经安装配置好了。访问 phpinfo() 就可以看到了。在 php 中 new 一个也是可以的。

比如: new \Redis();

就是在 php -m 中找不到redis扩展,这个奇怪。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注