Установка и настройка PhpRedis для Laravel 7 - PullRequest
2 голосов
/ 19 июня 2020

Настройка Laravel 7 для использования с PhpRedis

Предисловие

После очистки rnet integer в попытке выяснить, как правильно установить и использовать PhpRedis, как рекомендовано Laravel, мне не удалось найти ни единого источника правды или руководства, которое не оставило бы мне больше вопросов, чем ответов.

Я надеюсь, с помощью сообщества, создавать и постоянно улучшать это руководство здесь.

Цели этого руководства

  • Предоставить пошаговое руководство по установке и настройке PhpRedis для Laravel 7 в Homestead в наиболее правильном и будущем- возможен доказательный способ.
  • Объясните, как использовать Redis теперь, когда PhpRedis установлен / настроен.

Почему бы просто не использовать Predis?

Согласно Laravel 7 документов, Predis, похоже, был заброшен, и в будущих версиях Laravel он может больше не поддерживаться. Кроме того, PhpRedis превосходит Predis.

PhpRedis и Predis: сравнение реальных производственных данных

Ссылки

Как установить PhpRedis для Laravel в Ubuntu

PhpRedis в Laravel - Redis Series Episode 2

Установка PHP REDIS PHP7 Branch On Fre sh Установить Homestead PHP7

Laravel 7 Redis Docs


Установка / настройка PhpRedis на fre sh установке Laravel 7 в Homestead

В этом руководстве предполагается, что вы используете Laravel 7 в среде разработки Homestead.

Установка пакета PhpRedis.

1. S SH в вашу усадьбу.

$ vagrant ssh

2. Загрузите пакет PhpRedis.

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

После завершения загрузки вы должны увидеть файл с именем master.zip с помощью команды ls.

3. Извлеките папку phpredis-master из master.zip, затем удалите 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

5. Обновите файл redis.ini с помощью Vim или другого редактора.

Обязательно замените 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 редактор. Скопируйте строку ниже и затем нажмите i в Vim, чтобы начать вставку. Затем вставьте, щелкнув правой кнопкой мыши и выбрав вставить, или нажав Shift + Ins .

extension = / etc / phpredis-master / modules / redis.so

После добавления строки выйдите из режима редактирования, нажав Es c, затем сохраните и выйдите, нажав : wq , а затем Enter .

6. Перезапустите службы

Убедитесь, что вы находитесь в каталоге / etc / phpredis-master /

Снова замените 7.4 версией PHP, которую вы используете .

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

7. Убедитесь, что все работает.

$ sudo nginx -t

В случае успеха должно появиться следующее:

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 docs для согласованности.

Проверьте, работает ли Redis

Добавьте в Интернет следующее. php файл маршрутов и затем перейдите к маршруту в вашем приложении.

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

При переходе к yoursite.local / redis вы должны увидеть сообщение «Тестирование PhpRedis».

Использование Redis в ваших проектах

После установки PhpRedis и обновили конфигурацию Laravel, теперь вы можете начать использовать Redis в своем проекте.

Использование 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;
    }
}

FAQ

Почему мы должны переименовывать псевдоним Redis в RedisManager?

Опять же, поскольку Laravel 7 использует PhpRedis по умолчанию, почему мы должны переименовывать псевдоним Redis в RedisManager?

Как переименование псевдонима Redis в RedisManager повлияет на мое приложение и на то, как я его использую?

Laravel 7 говорит, что PhpRedis используется по умолчанию, так зачем мне все это делать?

У меня успешно работает PhpRedis локально, но когда я ой на Vapor, это не работает. Что мне делать?

Что делать, если я не использую Homestead?


Todo

  • Изучите, является ли загрузка пакета PhpRedis с $ wget https://github.com/phpredis/phpredis/archive/master.zip оптимальный способ установки пакета или, если есть лучший вариант, например, установка через PECL.

1 Ответ

1 голос
/ 22 июня 2020

Если вы используете Laravel / Forge, вам не нужно устанавливать Phpredis, поскольку он устанавливается Forge во время подготовки сервера.

Вы обнаружите, что extension=redis.so уже существует в sudo nano /etc/php/7.4/fpm/conf.d/20-redis.ini

Остальная часть процесса должна быть аналогична руководству, но я еще не тестировал его. Отправлю обратно свои выводы.

...