最近在使用 vagrant 安裝 homestead 後,運行代碼時提示 Redis 對應的 Class 不存在,實際上是缺乏對應的 PHP Redis 擴展,在安裝的過程當中遇到很多坑,記錄到這篇文章裏了
vagrant ssh
進入 homesteadgit clone https://github.com/phpredis/phpredis.git
cd phpredis
php
/usr/bin/phpize5.6
(不一樣php版本的狀況phpize版本不一樣)git./configure --with-php-config=/usr/bin/php-config5.6 (這裏邊也須要根據狀況指定 php-config 的版本,且和 phpize 的版本保持一致。)github
make && make install
redis
. {note} 編譯完成後,redis的php擴展在module目錄中,它的文件名是redis.so*segmentfault
查看 PHP 的 extension_dir, 方式有多種:微信
php -i|grep extension_dir
sudo mv ./modules/redis.so /usr/lib/php/20131226
建立一個文件
sudo touch /etc/php/5.6/fpm/conf.d/20-redis.ini
使用vi編輯器寫入以下內容:
extension=redis.so
sudo service php5.6-fpm restart
再次在網頁中使用phpinfo()時就會發現,redis 擴展出現了,new Redis()可用了。
就是執行 phpize 相關命令時,提示未找到,homestead 中有 php5.六、php7.0、php7.一、php7.2,基於我使用了 php5.6 纔會出現此狀況,須要安裝 php-dev, 使用 sudo apt install php-dev 的時候提示找不到對應的包,執行 apt search php-dev
也找不到,得經過 apt search php5.6-dev
就能獲取到對應的包地址(本身是偶然執行 apt search php5 而後才知道對應的包名爲 php5.6-dev 的),知道了包名後就是直接使用 sudo apt install
安裝對應的包了php7