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
![](https://itshaman.ru/images/x15843_800.webp.pagespeed.ic.v8pbqLTGAu.webp)
После установки init скрипт bash для вашего окружения оболочки, как показано на рисунке.
phpbrew init
Затем добавьте следующую строку в конец файла ~/.bashrc
или .zshrc
и запустите новую оболочку, после чего phpbrew должен быть запущен и полностью функционировать.
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
Установка нескольких версий PHP в Ubuntu
Чтобы установить различные версии PHP, сначала нужно составить список всех версий PHP, доступных для установки с помощью phpbrew.
phpbrew known
![](https://itshaman.ru/images/x15844_800.webp.pagespeed.ic.eMeiDBitP1.webp)
Чтобы установить определенную версию 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
![](https://itshaman.ru/images/x15845_500.webp.pagespeed.ic.5iLkXc_tNo.webp)
Теперь вы можете использовать следующую команду phpbrew switch
для переключения между различными версиями PHP, которые были установлены с помощью phpbrew.
phpbrew use php-7.4.33 OR phpbrew use php-8.3.0
Вы можете проверить установленную версию PHP, выполнив.
php -v
![](https://itshaman.ru/images/x15846_800.webp.pagespeed.ic.-J0BVNVEDr.webp)
Установить определенную версию 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 – это важный навык для разработчиков и системных администраторов, который позволяет эффективно тестировать, отлаживать и обеспечивать совместимость различных проектов.
Комментарии (0)