За последние 24 часа нас посетили 21000 программистов и 1153 робота. Сейчас ищут 709 программистов ...

[РЕШЕНО] Как поставить пакет pecl нужной версии ?

Тема в разделе "Установка PHP", создана пользователем artoodetoo, 28 ноя 2023.

Метки:
  1. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Конкретно хочу поставить redis@5.3.7 в компанию к Debian 12 + PHP 8.2.12
    Из коробки pecl ставит redis@6.0.2 и с ним есть проблемка. С прежней версией не было.

    На RHEL 8 я смог буквально поставить пакет как
    yum install php-pecl-redis5
    а на Debian нет аналога.
     
  2. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    65
    Симпатии:
    10
    https://download.redis.io/releases/

    Выбирай нужную версию, обнови репозиторий, все остальное можешь вообще пока закомментировать и скомпилировать/установить.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    @Survivor спасибо за помощь, но это не те пакеты )))

    мне нужен пакет php, понимаешь? то, что подключается в конфиге как
    extension=redis.so
    насколько я знаю, конкретно на Debian его ставят не через apt, а собирают через PECL.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Конкретная проблема уже не очень актуальна, по ряду причин. Но вопрос таки остается, ибо такая потребность может повториться.
    Можно ли уговорить PECL поставить устаревшую и пропавшую из виду версию пакета?
     
  5. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    65
    Симпатии:
    10
    Жаль нет поднятого сервера под рукой

    Код (Text):
    1.  
    2. sudo apt-get -y install gcc make autoconf libc-dev pkg-config
    3. sudo pecl install redis-5.3.7
    4. sudo bash -c "echo extension=redis.so > /etc/php/8.2/mods-available/redis.ini"
    5. sudo phpenmod redis
    6. sudo service php8.2-fpm restart
    +
    https://github.com/phpredis/phpredis/
    судя по всему, как раз таки 5.3.7 поддерживает php 8.2 или наоборот =)
     
    artoodetoo нравится это.
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    конец 2023г. пора использовать контейнеры. :)

    спасибо, это рабочее решение. на Debian это выглядит так:
    Код (Text):
    1.  
    2. $ sudo pecl uninstall redis
    3. Unable to remove "extension=redis.so" from php.ini
    4. uninstall ok: channel://pecl.php.net/redis-6.0.2
    5.  
    6. # просят закоментировать extension=redis, сделаем это
    7. $ sudo nano /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
    8.  
    9. $ sudo pecl install redis-5.3.7
    10. . . .
    11. $ pecl list | grep redis
    12. redis  5.3.7  stable
    13.  
    14. # идем обратно и раскоментируем расширение
    15. $ sudo nano /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
    16.  
    17. $ php artisan tinker
    18. Psy Shell v0.11.20 (PHP 8.2.13 — cli) by Justin Hileman
    19. > new RedisSentinel('host.docker.internal','26379',1000,0,1,1000)
    20. = RedisSentinel {#8036}
    21. # ошибки не возникает, а в redis6 здесь ругалось на число аргументов. победа!
    --- Добавлено ---
    P.S. Конкретно в Laravel проблема с RedisSentinel решается и другим образом: для поддержки Sentinel вместо master ветки можно поставить v0.3.0, там есть work around для redis6. То есть будет работать и там и сям.