前面已经介绍了mac os系统composer安装tp8项目,但环境默认不支持redis,需要安装相应的环境,下面就介绍一下docker安装redis 6.2.14以及如何安装php支持redis扩展。
- 安装docker
登录www.docker.io 官网,下载mac版本的docker桌面版。
安装完成后,在终端输入命令% docker --version
正确显示版本号即安装成功。 - docker安装redis 6.2.14并运行:
先创建一个配置文件,以便映射到容器内:
vim /usr/local/ect/redis/redis.conf
添加以下内容:
requirepass your_password
按esc键输入:wq回车保存
docker run -d -p 6379:6379 -v /path/to/redis.conf:/usr/local/etc/redis/redis.conf --name my-redis redis:6.2.14 redis-server /usr/local/etc/redis/redis.conf
也可以先启动redis,后通过docker-cli命令设置redis密码:
docker run -d -p 6379:6379 --name my-redis redis:6.2.14
# 连接到运行中的 Redis 容器
docker exec -it my-redis redis-cli
# 在 redis-cli 中设置密码
CONFIG SET requirepass your_password
测试:
docker exec -it my-redis redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth your_password
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
返回pong即正常。
- 安装 PHP 开发工具和依赖项:使用以下命令安装 PHP 开发工具和依赖项:
brew install autoconf pkg-config
安装完成后,确保将 PHP 相关的路径添加到 PATH 环境变量中,以便系统可以找到 PHP 可执行文件。可以执行以下命令来添加:
echo 'export PATH="/usr/local/opt/php@8.2/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@8.2/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc
- 安装 PHP Redis 扩展:使用以下命令安装 PHP Redis 扩展:
sudo pecl install redis
- 重启 PHP 服务:以使更改生效。可以使用以下命令重启 PHP-FPM:
brew services restart php@8.2
- 重启nginx
sudo nginx -s reload
- 打开项目/tp8_project/config/cache.php
<?php
// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------
return [
// 默认缓存驱动
'default' => 'redis',
// 缓存连接方式配置
'stores' => [
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '/www/wwwroot/tp8_project/redis',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
],
// 更多的缓存连接
// redis缓存
'redis' => [
// 驱动方式
'type' => 'redis',
// 服务器地址
'host' => '127.0.0.1',
// 端口
'port' => 6379,
// 密码
'password' => 'your_password',
'prefix' => '',
],
],
];
- 运行项目测试
Cache::set('test', 'ok', 60);
echo (Cache::get('test'));
一切ok.