PHPBrew - позволяет собрать и установить несколько различных версий PHP.
Переключаем PHP версию:
Выходим из под
Создаем директорию
Не забываем, что для установки новых версий PHP или расширений с помощью PHPBrew необходимо залогинится под
Официальный источник https://github.com/phpbrew/phpbrew
https://github.com/phpbrew/phpbrew/wiki/Requirement
Установка зависимостей Ubuntu 14.04
В терминале выполняем команды:sudo apt-get update
sudo apt-get build-dep php5
sudo apt-get install php5 php5-dev php-pear autoconf automake curl libcurl3-openssl-dev build-essential libxslt1-dev re2c libxml2 libxml2-dev php5-cli bison libbz2-dev libreadline-dev
sudo apt-get install libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libxpm4 libltdl7 libltdl-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install gettext libgettextpo-dev libgettextpo0
sudo apt-get install libicu-dev
sudo apt-get install libmhash-dev libmhash2
sudo apt-get install libmcrypt-dev libmcrypt4
sudo apt-get install mysql-server mysql-client libmysqlclient-dev libmysqld-dev
Ubuntu 16.04
apt install \
php7.0 \
php7.0-curl \
php7.0-json \
php7.0-cgi \
php7.0-fpm \
autoconf \
automake \
libxml2-dev \
libcurl4-openssl-dev \
libssl-dev \
openssl \
gettext \
libicu-dev \
libmcrypt-dev \
libmcrypt4 \
libbz2-dev \
libreadline-dev \
build-essential \
libmhash-dev \
libmhash2 \
libxslt1-dev
Установка PHPBrew в system-wide environment
Для начала логинимся какroot
:sudo -i
Выполняем команды:curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
mv phpbrew /usr/local/bin/phpbrew
Инициализируем PHPBrew:phpbrew init
Редактируем ~/.phpbrew/init
:nano ~/.phpbrew/init
Вставляем следующие строки:# Export PHPBrew paths.
export PHPBREW_ROOT=/opt/phpbrew
export PHPBREW_HOME=/root/.phpbrew
Выполняем команду:. ~/.phpbrew/bashrc
Устанавливаем system-wide PHP(s):phpbrew install 5.5 +default +mysql +pdo +apxs2 +icu +intl -- --with-mysql-sock=/var/run/mysqld/mysqld.sock
phpbrew install 5.6 +default +mysql +pdo +apxs2 +icu +intl -- --with-mysql-sock=/var/run/mysqld/mysqld.sock
phpbrew install 7.0 +default +mysql +pdo +apxs2 +icu +intl -- --with-mysql-sock=/var/run/mysqld/mysqld.sock
Копируем ~/.phpbrew/bashrc
в /opt/phpbrew/bashrc
:cp ~/.phpbrew/bashrc /opt/phpbrew/bashrc
Редактируем /etc/bash.bashrc
:nano /etc/bash.bashrc
Вставляем следующие строки:# Export PHPBrew paths.
export PHPBREW_ROOT=/opt/phpbrew
export PHPBREW_HOME=$HOME/.phpbrew
# PHPBrew difinitions.
if [ -f /opt/phpbrew/bashrc ]; then
. /opt/phpbrew/bashrc
fi
В терминале выполняем команду:. ~/.bashrc
Устанавливаем расширения для всех утснановленных PHP(s):phpbrew each 'ext install gettext'
phpbrew each 'ext install ftp'
phpbrew each 'ext install gd -- --with-libdir=lib/i386-linux-gnu --with-gd=shared --enable-gd-native-ttf --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-xpm-dir=/usr'
Конечно же не обязательно устанавливать каждую версию PHP. Устанавливайте только те версии, которые вам нужны.Переключаем PHP версию:
phpbrew switch 5.6.21
Следующий
шаг необязательный. Но если вы следовали всему, что написано и
устанавливали php5 и php7, тогда необходимо отредактировать /etc/apache2/mods-available/php7.load
:nano /etc/apache2/mods-available/php7.load
И законментировать подключение php7:#LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.6.so
Рестартуем apache2:apachectl restart
Проверка установки PHP
Лучший способ проверить, что PHP установлен и работает - использоватьphpinfo()
.Выходим из под
root
. Удаляем ~/websites/index.html
:rm ~/websites/index.html
Далее создаем файл ~/websites/index.php
:echo "<?php phpinfo();" > ~/websites/index.php
Открываем в браузере http://localhost
и мы должны увидеть информационную страницу об PHP.PHP Switcher Script
Для быстрого переключения php и рестарта Apache я написал скрипт.Создаем директорию
~/bin/
:mkdir -p ~/bin/
Редактируем ~/bin/sphp
:nano ~/bin/sphp
Вставляем код скрипта:#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: sphp [php version]"
else
new_version_installed=false
old_version="`php -r \"echo phpversion();\"`"
new_version="$1"
short_old_version="`php -r \"echo substr('$old_version', 0, 1);\"`"
short_new_version="`php -r \"echo substr('$new_version', 0, 1);\"`"
module=/usr/lib/apache2/modules/libphp${new_version}.so
for line in `phpbrew list`; do
if [ $line == "php-${new_version}" ]; then
new_version_installed=true
break
fi
done
if [ $new_version_installed != true ]; then
echo "PHP version ${new_version} is not installed by PHPBrew."
elif [ ! -f $module ]; then
echo "PHP version ${new_version} is not configured for apache."
else
. ~/.bashrc
echo "PHP version ${new_version} found"
echo "Switching PHP version..."
phpbrew switch ${new_version}
echo "Fixing LoadModule..."
old_mod=/etc/apache2/mods-available/php${short_old_version}.load
new_mod=/etc/apache2/mods-available/php${short_new_version}.load
if [ -f $old_mod ]; then
echo "" | sudo tee $old_mod > /dev/null
fi
if [ -f $new_mod ]; then
content="LoadModule php${short_new_version}_module ${module}"
echo $content | sudo tee $new_mod > /dev/null
fi
echo "Restarting system Apache..."
sudo apachectl restart
echo "Done."
fi
fi
Делаем скрипт исполняемым:chmod +x ~/bin/sphp
Редактируем ~/.bash_aliases
:nano ~/.bash_aliases
Вставляем строку в конец файла:alias sphp='. sphp'
Перезагружаемся. Проверяем, что PATH
обновился:echo $PATH
У меня результатом этой команды оказался такой вывод:/opt/phpbrew/php/php-5.6.21/bin:/home/benya/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Об успешном обновлении говорит наличие подстроки /home/benya/bin
.Тест переключения PHP
После того, как все эти шаги выполнены, можно переключить версию PHP с помощью команды:sphp 7.0.6
Открываем в браузере http://localhost
и проверяем, что Apache теперь работает с PHP 7.0.6. Переключим версию PHP обратно на 5.6.21:sphp 5.6.21
Открываем в браузере http://localhost
и проверяем, что Apache теперь работает с PHP 5.6.21.Не забываем, что для установки новых версий PHP или расширений с помощью PHPBrew необходимо залогинится под
root
.Часто используемые команды PHPBrew
Список известных версий:phpbrew known
Список вариантов:phpbrew variants
Установка PHP с вариантом default:phpbrew install 5.6 +default
Список установленных PHP версий:phpbrew list
Настройка активной версии PHP:phpbrew config
Временно переключиться на системный PHP (модуль Apache нужно переподключать вручную):phpbrew off
Пермаментно переключиться на системный PHP (модуль Apache нужно переподключать вручную):phpbrew switch-off
Удалить установленную сборку PHP (если PHP устанавливался с вариантом +apxs2, то модуль необходимо удалить вручную):phpbrew remove php-5.6.21
Удалить
установленную PHP версию и файлы настроек (если PHP устанавливался с
вариантом +apxs2, то модуль необходимо удалить вручную):phpbrew purge php-5.6.21
Расширения PHP(s)
Список локальных расширений:phpbrew ext
Установка расширения для активной версии PHP:phpbrew ext install xdebug
Отключение расширения для активной версии PHP:phpbrew ext disable xdebug
Включение расширения для активной версии PHP:phpbrew ext enable xdebug
Настройка расширения для активной версии PHP:phpbrew ext config xdebug
Установленные PHP(s)
Установленные PHP(s) располагаются в /opt/phpbrew/php, например, php 5.6.21 находится в:/opt/phpbrew/php/5.6.21/bin/php
Файл настроек php.ini находится в:/opt/phpbrew/php/5.6.21/etc/php.ini
Настройки расширений лежат в:/opt/phpbrew/php/5.6.21/var/db
/opt/phpbrew/php/5.6.21/var/db/xdebug.ini
/opt/phpbrew/php/5.6.21/var/db/apc.ini
/opt/phpbrew/php/5.6.21/var/db/memcache.ini
Команды для быстрого переключения между директориями
Переключиться в PHP var директорию:phpbrew cd var
Переключиться в PHP etc директорию:phpbrew cd etc
Переключиться в PHP build директорию:phpbrew cd build
Переключиться в PHP dist директорию:phpbrew cd dist
Официальный источник https://github.com/phpbrew/phpbrew
https://github.com/phpbrew/phpbrew/wiki/Requirement
Комментариев нет:
Отправить комментарий