Homestead中PHP擴展無phpize難以安裝redis擴展的問題及解決辦法


這真是一個非常深的坑。
homestead中自帶很多版本的php。然而擴展中缺沒有phpize,這個東西是php添加擴展需要的東西
本人在laravel中需要用到Redis擴展。這個和laravel的predis是存在區別的。predis相當於一個類包。
而我需要的是PHP的extension。。然后就開始了我的采坑之旅!

廢話不說了,上解決方法。
首先:
第一步
我是homestead的Ubuntu系統。
首先重新裝下php的環境包,這是為了讓phpize出來!因為不知道為什么現在homestead自帶的沒有

sudo apt install php7.2-dev
1
如果你用的不是php7.2,而是7.1那你就改成sudo apt install php7.1-dev
然后可能會下載不到資源,因為資源本身在國外。你需要修改下載源為國內的鏡像源。
點我看怎么修改
安裝的時候遇到提示都選擇替換。
安裝完畢檢查/usr/bin會發現這時phpize和它對應的版本。
第二步
安裝redis為php添加上redis擴展。
如果權限不夠產生問題請自己加上代碼sudo!
如:sudo git clone https://github.com/phpredis/phpredis.git

$ git clone https://github.com/phpredis/phpredis.git
$ cd phpredis
$ /usr/bin/phpize7.1 (不同php版本的情況下phpize版本不同)
$ ./configure --with-php-config=/usr/bin/php-config7.1 (這里邊也需要根據情況指定php-config的版本,且和phpize的版本保持一致。)
$ make && make install
1
2
3
4
5
安裝完畢后為php添加redis擴展。本人這里是php7.2

sudo find / -name redis.so
# 找到編譯的 redis.so 文件
php7.2 -i|grep extension_dir
# 找到 php7.2 對應的擴展目錄( /usr/lib/php/20170718)
sudo mv /usr/local/src/phpredis/modules/redis.so /usr/lib/php/20170718/redis.so
sudo vim /etc/php/7.2/fpm/conf.d/20-redis.ini
# 20-redis.ini 是新加的,以前是沒有的
# 再 20-redis.ini 中添加 extension=redis.so ,保存退出。
# 通常,添加擴展是在 php.ini 中,這里是在 fpm/conf.d 添加。
1
2
3
4
5
6
7
8
9
最后
重啟服務

sudo service php7.2-fpm restart
1
看看phpinfo()是不是有redis了
或者
php -m(有時候phpinfo有,這里沒有)

主要是phpinfo顯示有了redis的擴展就行

最最后
web代碼測試一下

$redis = new \Redis(http://www.my516.com);
//連接
$redis->connect('127.0.0.1', 6379);
//檢測是否連接成功
echo "Server is running: " . $redis->ping();die;
1
2
3
4
5
如果顯示
Server is running: 1
完結撒花~
注:new Redis()的時候要區分好是擴展的Redis還是laravel的predis!

有疑問或者不足請留言,歡迎找茬~
---------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM