Как установить несколько версий PHP на Ubuntu

PHP, будучи универсальным языком программирования, часто требует от разработчиков установки различных версий PHP для запуска различных веб-приложений в целях разработки или для запуска устаревших приложений, требующих старых версий PHP.

Эта статья проведет вас через процесс установки нескольких версий PHP на Ubuntu с помощью инструмента phpbrew.

Установка phpbrew в Ubuntu

Чтобы установить несколько версий PHP в системе Linux, вам необходимо установить инструмент phpbrew, который упрощает процесс установки, управления и переключения между различными версиями PHP в системе Ubuntu.

Для установки phpbrew вам необходимо установить следующие необходимые библиотеки в вашей системе с помощью команд apt.

sudo apt update
sudo apt install -y php-cli php-xml curl build-essential libxml2-dev php-xml pkg-config libssl-dev libbz2-dev libcurl4-gnutls-dev libonig-dev

После установки необходимых библиотек вы можете использовать следующую команду curl для установки phpbrew, как показано на рисунке.

curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
sudo mv phpbrew /usr/local/bin/phpbrew

После установки init скрипт bash для вашего окружения оболочки, как показано на рисунке.

phpbrew init

Затем добавьте следующую строку в конец файла ~/.bashrc или .zshrc и запустите новую оболочку, после чего phpbrew должен быть запущен и полностью функционировать.

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

Установка нескольких версий PHP в Ubuntu

Чтобы установить различные версии PHP, сначала нужно составить список всех версий PHP, доступных для установки с помощью phpbrew.

phpbrew known

Чтобы установить определенную версию PHP (например, 7.4 и 8.3), вы можете использовать команду phpbrew для установки.

phpbrew install 7.4 +default
phpbrew install 8.3 +default

На Ubuntu 22.04 я столкнулся со следующей ошибкой, которая связана с тем, что версия PHP 7.4 или PHP 8.3 требует использования libssl1.1 при компиляции расширения openssl. Однако Ubuntu 22.04 поставляется с OpenSSL 3.

/usr/include/openssl/rsa.h:289:29: note: expected ‘RSA *’ {aka ‘struct rsa_st *’} but argument is of type ‘const struct rsa_st *’
make: *** [Makefile:638: ext/openssl/openssl.lo] Error 1

Чтобы исправить эту ошибку, вам нужно скомпилировать OpenSSL 1.1 из исходников на Ubuntu 22.04 и установить переменную окружения PKG_CONFIG_PATH, чтобы указать путь к OpenSSL 1.1.

Скомпилируйте OpenSSL 1.1 из исходного текста

cd $HOME
wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
tar xzf $HOME/openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
./Configure --prefix=$HOME/openssl-1.1.1i/bin -fPIC -shared linux-x86_64
make -j 8 
make install

Попробуйте установить PHP 7.4 и PHP 8.3 с помощью phpbrew, как показано на рисунке.

export PKG_CONFIG_PATH=$HOME/openssl-1.1.1i/bin/lib/pkgconfig && phpbrew --debug install 7.4 +default
export PKG_CONFIG_PATH=$HOME/openssl-1.1.1i/bin/lib/pkgconfig && phpbrew --debug install 8.3 +default

Переключение между версиями PHP

Когда версии php установлены, вы можете использовать команду phpbrew list для получения списка установленных версий.

phpbrew list

Теперь вы можете использовать следующую команду phpbrew switch для переключения между различными версиями PHP, которые были установлены с помощью phpbrew.

phpbrew use php-7.4.33
OR
phpbrew use php-8.3.0

Вы можете проверить установленную версию PHP, выполнив.

php -v

Установить определенную версию PHP по умолчанию

Чтобы установить определенную версию PHP по умолчанию, используйте:

phpbrew switch php-7.4.33
phpbrew use php-7.4.33
phpbrew app get

Деинсталляция определенной версии PHP

Для деинсталляции определенной версии PHP используйте следующую команду, которая удалит PHP из вашей системы, а также все связанные с ним расширения и модули.

phpbrew uninstall php-7.4.33
OR
phpbrew uninstall php-8.3.0

В заключение, способность переключаться между версиями PHP – это важный навык для разработчиков и системных администраторов, который позволяет эффективно тестировать, отлаживать и обеспечивать совместимость различных проектов.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.ubuntumint.com

Похожие статьи

Комментарии (0)