Как установить PECL на Ubuntu 21.04 с php8.0

Вопрос или проблема

У меня проблемы с использованием/установкой библиотеки pecl.

Вот что я сделал:

echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu hirsute main" >
/etc/apt/sources.list.d/ppa_ondrej_php.list 
apt-get update
apt-get install php8.0-dev
apt-get install php-pear

При использовании pecl я получаю эту ошибку:

PHP Fatal error: Array and string offset access syntax with curly
braces is no longer supported in /usr/share/php/PEAR/Config.php on
line 2095

Похоже, у меня старая версия php-pear. Есть ли у кого-нибудь идея, как получить актуальную версию php-pear, совместимую с php8.0?

lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.04
Release:        21.04
Codename:       hirsute

Я буду очень благодарен за любую помощь.

У меня была такая же проблема, пришлось понизить версию для cli до 7.2.

Также некоторые люди могут найти этот пост, пытаясь установить расширение mongodb для php8.0, есть более простой способ, если вы используете ubuntu:

sudo apt-get install php8.0-mongodb

Ответ или решение

Для установки PECL на Ubuntu 21.04 с PHP 8.0 потребуется следовать определённой последовательности действий, чтобы избежать проблем, связанных с несовместимостью. Проблема, описанная в вашем случае, заключается в устаревшей версии php-pear, которая не поддерживает синтаксис PHP 8.0.

Шаги для установки актуальной версии PECL:

  1. Обновление системы: Начните с обновления вашего списка пакетов. Для этого выполните:

    sudo apt update
  2. Добавление PPA для PHP: Репозиторий Ondřej Surý предоставляет актуальные версии PHP. Убедитесь, что у вас добавлен данный репозиторий:

    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
  3. Установка необходимых пакетов:
    Установите необходимые пакеты для PHP 8.0, включая php-dev и php-pear:

    sudo apt install php8.0 php8.0-dev php-pear
  4. Избегание устаревших покетов:
    При установке PECL через php-pear необходимо обеспечить совместимость версий. Проверим и установим актуальные версии:

    • Убедитесь, что у вас обновлённый php-pear:
      sudo pear upgrade PEAR
    • Если после этого всё ещё возникает ошибка, возможно, потребуется ручная установка последней версии PEAR:
      wget https://github.com/pear/pear-core/archive/master.tar.gz
      tar -zxvf master.tar.gz
      cd pear-core-master
      sudo php install-pear-nozlib.phar
  5. Установка расширений через PECL:
    После обновления PEAR вы можете использовать PECL для установки необходимых расширений. Например, для установки MongoDB расширения:

    sudo pecl install mongodb
  6. Активирование расширений:
    После установки расширения через PECL его необходимо активировать:

    echo "extension=mongodb.so" | sudo tee /etc/php/8.0/cli/php.ini
  7. Проверка установки:
    Проверьте успешность установки и активации расширения:

    php -m | grep mongodb

Таким образом, следуя вышеперечисленным шагам, вы сможете избежать ошибок, связанных с установкой PECL на Ubuntu 21.04 с PHP 8.0, и обеспечите совместимость библиотек с современными версиями PHP. В случае возникновения любых непредвиденных проблем, проверьте журнал системных ошибок и документацию для дальнейшего анализа.

Оцените материал
Добавить комментарий

Капча загружается...