Windows64位安裝php的redis擴充套件教程分享(php7.2+redis3.2)
隨著今年無數網紅的出現,各種小視訊直播平臺如雨後春筍搬出現,像抖音,快手等,市場簡直火爆的,大江南北男女老少都在玩,作者都想轉行去當個主播火一把,然鵝,不能靠臉吃飯,所以還得日夜加班踏踏實實寫程式碼分享給大家。這不,近期就接到一個客戶的直播+小視訊專案。該專案用php開發的,專案中有一處new Redis() 程式碼,每次執行到這裡都會丟擲這個異常Class 'Redis' not found,但是本地安裝的redis服務測試都是好著的,這個問題讓作者費了不少心思,深入探究,反覆驗證,終於把這個問題解決了,想必也有其他開發者朋友遇到過這個問題,今天作者就把解決過程整理一下分享出來。
本案例先決條件:為php7.2搭建redis擴充套件的前提是在本機上已經成功搭建好php的執行環境,筆者的電腦安裝的php的軟體是xampp,(其他的軟體Wamp也類似)整合環境是apache2.4+mysql5.1+php7.2,作業系統為Win10 系統64位。
一、下載安裝Redis
1、下載Redis-x64-3.2.100.msi,然後雙擊軟體安裝到想要安裝的碟符下,我這裡是安裝目錄是D:\Program Files\Redis
2、安裝目錄找到redis.windows.conf檔案,然後設定密碼
3、開啟redis服務
在命令列視窗切換到redis的安裝目錄,在視窗中輸入命令redis-server redis.windows.conf 回車出現下面介面則reids服務安裝成功且成功啟動:
二、安裝php的redis擴充套件
1、檢視擴充套件版本
使用phpinfo()函式檢視PHP的版本資訊和php軟體位數(32位還是64位軟體)和編譯環境。這會決定redis擴充套件檔案版本。
版本一定要對應看是TS還是nts,是VC11還是VC12還是其他版本號,不一致的版本驅動檔案不會生效,程式碼中一直會拋異常Class 'Redis' not found,筆者最開始也是經歷了這個坑。看清楚我的php是32位的(備註:64位作業系統安裝的32位的php),編譯環境是MSVC15(VisualC++2017) ,擴充套件版本是TS,VC15
TS指Thread Safety,即執行緒安全,一般在IIS以ISAPI方式載入的時候選擇這個版本。
NTS即None-Thread Safe,一般以fast cgi方式執行的時候選擇這個版本,具有更好的效能。
igbinary下載地址 https://windows.php.net/downloads/pecl/releases/igbinary/
redis 下載地址 https://windows.php.net/downloads/pecl/releases/redis/3.1.4/
根據php的版本資訊下載對應的redis驅動檔案,我的php版本是7.2的,php擴充套件版本是TS,VC15
3、拷貝4個擴充套件驅動檔案
將上面四個檔案拷貝到php目錄下的ext目錄下,我這裡的目錄是D:\XAMPP\path\php\ext
4、修改配置檔案php.ini
D:\XAMPP\path\php\php.ini檔案末尾(任意位置都可以)新增如下內容,支援擴充套件
;php_redis
extension=php_igbinary.dll
extension=php_redis.dll
注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否則此擴充套件不會生效
5、重啟伺服器Apache
這裡Apache的整合環境是xampp,瀏覽器開啟phpinfo(),看到redis擴充套件安裝成功。
6、驗證擴充套件是否可用
開啟redis服務後,可以用如下方式測試是否能夠呼叫。
<?php
//例項化Redis類
$redis = new Redis();
//選擇指定的redis資料庫連線,預設埠號為6379
$redis->connect('127.0.0.1', 6379);
//指定前面設定的密碼
$redis->auth('123456');
echo "Connection to server sucessfully";
//設定 redis 字串資料
$redis->set("tutorial-name", "Redis tutorial");
// 獲取儲存的資料並輸出
echo "Stored string in redis:: " . $redis->get("tutorial-name");
?>
現在程式碼裡面redis服務可用了,不會再報Class 'Redis' not found錯了,到此Windows10系統 64位安裝php的redis擴充套件安裝成功。文末再次提醒大家,一定要根據php的版本資訊和位數(32位還是64位)下載對應版本的擴充套件驅動檔案,否則不生效。歡迎開發者朋友一起學習交流,筆者18629374628