繁体   English   中英

为 Laravel 7 安装和配置 PhpRedis

[英]Installing and configuring PhpRedis for Laravel 7

配置 Laravel 7 以与 PhpRedis 一起使用

前言

按照 Laravel 的建议,在互联网上搜索以试图弄清楚如何正确安装和使用 PhpRedis 之后,我找不到一个没有让我问题多于答案的单一事实来源或指南。

我希望在社区的帮助下,在这里创建并不断改进该指南。

本指南的目标

  • 提供分步指南,以最正确和面向未来的方式在 Homestead 上为 Laravel 7 安装和配置 PhpRedis。
  • 说明如何使用 Redis 现在 PhpRedis 已安装/配置。

为什么不直接使用 Predis?

根据 Laravel 7 文档,Predis 似乎已被废弃,并且在 Laravel 的未来版本中,它可能不再受支持。 此外,PhpRedis 的性能优于 Predis。

PhpRedis vs Predis:真实生产数据的比较

参考

如何在 Ubuntu 上为 Laravel 安装 PhpRedis

Laravel - Redis 系列中的 PhpRedis 第 2 集

在全新安装 Homestead PHP7 上安装 PHP REDIS PHP7 分支

Laravel 7 Redis 文档


在 Homestead 上全新安装 Laravel 7 时安装/配置 PhpRedis

本指南假定您在 Homestead 开发环境中使用 Laravel 7。

安装 PhpRedis package。

1. SSH 进入你的家园。

$ vagrant ssh

2. 下载 PhpRedis package。

$ wget https://github.com/phpredis/phpredis/archive/master.zip

注意:此链接可能已弃用。 如果是这样,请检查最新版本

https://github.com/phpredis/phpredis/releases

下载完成后,您应该使用命令ls看到一个名为master.zip的文件。

3.从master.zip中提取phpredis-master文件夹,然后删除master.zip。 将提取的文件夹移动到您的/etc/目录。 然后导航到提取的 phpredis-master 文件夹。

$ unzip master.zip
$ rm master.zip
$ sudo mv phpredis-master/ /etc/
$ cd /etc/phpredis-master/

4. 为 PhpRedis PHP 扩展准备构建环境。

$ phpize
$ ./configure
$ make && make install

如果您收到recipe for target 'install-modules' failed ,请使用 sudo

$ sudo make instsall

5. 使用 Vim 或您的首选编辑器更新 redis.ini 文件。

确保将7.4替换为您正在使用的 PHP 版本。 您可以通过运行php -v进行检查。 就我而言,它返回PHP 7.4.4 然后我运行ls /etc/php/列出我的 PHP 文件夹并找到/etc/php/7.4/目录。

$ sudo vim /etc/php/7.4/fpm/conf.d/redis.ini

您现在应该在 Vim 编辑器中打开该文件。 复制下面的行,然后在 Vim 中按i开始插入。 然后通过右键单击并选择粘贴或按Shift+Ins进行粘贴。

扩展=/etc/phpredis-master/modules/redis.so

添加该行后,按Esc退出编辑模式,然后按:wq然后按 Enter保存并退出。

6.重启服务

确保你在目录/etc/phpredis-master/

同样,将 7.4 替换为您正在使用的 PHP 版本。

$ sudo service php7.4-fpm restart
$ sudo service nginx restart

7. 确保一切正常。

$ sudo nginx -t

如果成功,这应该是下面的 output。

nginx:配置文件/etc/nginx/nginx.conf语法没问题
nginx:配置文件/etc/nginx/nginx.conf 测试成功

配置 Laravel 7 以使用 PhpRedis。

你现在应该在你的服务器上安装了 PhpRedis。 我们现在将配置 Laravel 以开始使用 PhpRedis。

1. 将Redis别名更改为RedisManager

打开config/app.php然后在别名数组中将Redis 更改为RedisManager

'aliases' => [
    ...
    'RedisManager' => Illuminate\Support\Facades\Redis::class,
    ...
]

您可以将 Redis 重命名为 RedisManager 以外的名称,但我只是遵循 Laravel 文档中的建议以保持一致性。

测试 Redis 是否正常工作

将以下内容添加到 web.php 路由文件中,然后导航到应用程序中的路由。

Route::get('/redis', function () {
    $app = RedisManager::connection();
    $app->set('key', 'Testing PhpRedis');
    echo $app->get('key');
});

导航到yoursite.local/redis时,您应该会看到消息“Testing PhpRedis”。

在您的项目中使用 Redis

安装 PhpRedis 并更新 Laravel 配置后,您现在应该可以开始在项目中使用 Redis。

在您的 controller 中使用 Redis

// ExampleController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use RedisManager;

class ExampleController extends Controller
{
    public function index()
    {
        $visits = RedisManager::incr('visits');

        return $visits;
    }
}

常问问题

为什么我们必须将 Redis 别名重命名为 RedisManager?

再说一遍,既然 Laravel 7 默认使用 PhpRedis,为什么我们要重命名 Redis 别名为 RedisManager?

将 Redis 别名重命名为 RedisManager 将如何影响我的应用程序以及我如何使用它?

Laravel 7 说 PhpRedis 是默认的,那我为什么要做这一切呢?

我已经成功地让 PhpRedis 在本地工作,但是当我在 Vapor 上部署时,它不起作用。 我该怎么办?

如果我不使用 Homestead 怎么办?


去做

  • Research if downloading the PhpRedis package with $ wget https://github.com/phpredis/phpredis/archive/master.zip is the optimal way of going about installing the package, or if there's a better option such as possibly installing via PECL.

您可以使用以下命令简化安装 PHPRedis 的部分:

vagrant ssh
sudo apt-get install php-redis
sudo apt-get install php8.0-redis

上面的示例首先将安装默认模块 PHPRedis,然后安装 PHPRedis 扩展的特定 PHP 版本。 所以这个例子是 PHP 8.0,如果你需要 PHP 7.3 版本,你应该将php8.0-redis更改为php7.3-redis

如果您使用 Laravel/Forge,则不需要安装 Phpredis,因为 Forge 在服务器配置期间安装了它。

你会发现extension=redis.so已经存在于sudo nano /etc/php/7.4/fpm/conf.d/20-redis.ini

过程的rest应该和教程差不多,不过我自己还没有测试过。 将发回我的发现。

在本地安装 Homestead 的非常好的指南。 为方便起见,我会在vagrant ssh之后运行sudo su ,以便您可以以 root 身份运行所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM