Homestead 安裝 PHP Redis 擴展

最近在使用 vagrant 安裝 homestead 後,運行代碼時提示 Redis 對應的 Class 不存在,其實是缺少對應的 PHP Redis 擴展,在安裝的過程中遇到不少坑,記錄到這篇文章裏了
  • 首先通過 vagrant ssh 進入 homestead
  • 下載 & 編譯 PHP Redis 擴展
git clone https://github.com/phpredis/phpredis.git

cd phpredis

/usr/bin/phpize5.6 (不同php版本的情況phpize版本不同)

./configure --with-php-config=/usr/bin/php-config5.6 (這裏邊也需要根據情況指定 php-config 的版本,且和 phpize 的版本保持一致。)

make && make install

. {note} 編譯完成後,redis的php擴展在module目錄中,它的文件名是redis.so*

  • 查看 PHP 的 extension_dir, 方式有多種:

    1. 一種是安裝完成時會有提示擴展的安裝目錄,如下圖
      clipboard.png
    2. 使用命令 php -i|grep extension_dir
  • 把redis.so擴展模塊移入php擴展目錄中
sudo mv ./modules/redis.so /usr/lib/php/20131226
  • 添加 PHP 配置文件的 ini 文件
創建一個文件
sudo touch /etc/php/5.6/fpm/conf.d/20-redis.ini
使用vi編輯器寫入如下內容:
extension=redis.so
  • 萬事大吉,重啓 php-fpm
sudo service php5.6-fpm restart
再次在網頁中使用phpinfo()時就會發現,redis 擴展出現了,new Redis()可用了。

說下主要遇到的坑

就是執行 phpize 相關命令時,提示未找到,homestead 中有 php5.6、php7.0、php7.1、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 安裝對應的包了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章