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 – это важный навык для разработчиков и системных администраторов, который позволяет эффективно тестировать, отлаживать и обеспечивать совместимость различных проектов.
Комментарии (0)