由於 WordPress 與使用 Laravel 的測試網站放在 Synology NAS 上讀取速度有點慢,為了加快讀取,所以需要使用 Redis 來讓網站讀取加速,於是試著安裝 Redis 在 Synology NAS 上面。
安裝 Redis
Synology NAS 的套件並沒有提供 Redis,必須透過第三方社群套件來安裝 Redis,先開啟套件中心點擊右上角的【設定】按鈕並在【套件來源】頁籤中新增一個來源。
名稱:SynoCommunity 位置:http://packages.synocommunity.com
之後就可以在右邊看到【社群】選項出現,並且在裡面找到【 redis 】的套件,點擊【安裝套件】按鈕來安裝 Redis。
安裝完成後,使用 SSH 終端連線進 NAS,測試是否啟動。
##輸入 /usr/local/redis/bin/redis-cli ping
##若回應 PONG 代表已經啟動
root@NAS:~# /usr/local/redis/bin/redis-cli ping
PONG
PHP 套件安裝 Redis extension
Synology NAS 預設實際上是有安裝 Redis extension 但並沒有開啟 Redis extension 須自己手動增加。這邊我使用 PHP 7.3 版,先確認套件有沒有安裝 extension。
## 確認套件是否有安裝 Redis extension
root@NAS:~# ls /volume1/@appstore/PHP7.3/usr/local/lib/php73/modules/redis.so
/volume1/@appstore/PHP7.3/usr/local/lib/php73/modules/redis.so
編輯 /usr/local/etc/php73/cli/conf.d/extension.ini
# 在最下方加入
extension = redis.so
編輯 /volume1/@appstore/PHP7.3/misc/extension_list.json
//在內容中加入啟用 redis
"redis": {
"enable_default": true,
"desc": "The phpredis extension provides an API for communicating with the Redis key-value store."
},
回到 NAS 控制台查看 PHP 的設定,並將 redis 選項打勾。
用 phpinfo 查看是否有啟用
簡單測試
寫一個簡單的 PHP 測試程式確認是否可以正確使用。
<?php
$redis = new Redis();
//連線到 Redis
$redis->connect('127.0.0.1', 6379);
//$redis->auth('password');
if ($redis->ping()) {
echo "Connected to Redis server<br>";
$redis->set("sessionid", "12345");
echo "SessionId : ";
var_dump($redis->get("sessionid"));
} else {
echo "Can't connect to server<br>";
}
安裝 erikdubbelboer/phpRedisAdmin Redis 線上管理工具
# Composer 安裝方式
curl -s http://getcomposer.org/installer | php
php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin path/to/install
# 手動安裝方式
git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin
git clone https://github.com/nrk/predis.git vendor