То же, что и скрипт из "Growling Flea", но с использованием новых версий.
Добавить PPA
Пакеты PHP 5.6 и PHP 7.0 от стороннего PPA, не предоставленные официальными репозиториями Ubuntu от Canonical. PPA, которые я рекомендую здесь, принадлежат Ондржею Сури, который пакует PHP для Debian (который затем используется Ubuntu), поэтому, хотя он не является официальным репозиторием, он не совсем случайный! Сам PPA
здесь
Чтобы добавить PPA к вашей настройке:
sudo add-apt-repository ppa:ondrej/php
Затем мы также хотим получить информацию о том, что предлагается от этого нового PPA, поэтому запустите:
sudo apt-get update
Установите новые версии PHP
У меня уже были установлены некоторые пакеты php5, но я ничего не деинсталлировал, я просто позволил apt разобраться, что он хотел сделать, когда попросил установить новые версии:
sudo apt-get install php5.6 php7.0
Это привело к многочисленным жалобам со стороны и много конфликтов. Первым предложенным решением было удалить все стандартные пакеты php5, чтобы можно было установить PHP 5.6, поэтому я просто принял первое предложение.
Я использую apache, поэтому эта установка дала мне apache с обоими доступными модулями php5.6 и php7.0 и фактически загруженным модулем php5.6.
Как и сам PHP, все расширения и другие инструменты, которые вы ожидаете от PHP, существуют для обеих версий PHP, поэтому очень легко добавить нужные вам модули. Я был очень, очень впечатлен тем, как хорошо это сделано.
Настройка и переключение версий
Теперь у вас есть две совершенно разные версии PHP, установленные в вашей системе, поэтому давайте посмотрим, куда делись все части!
Все файлы конфигурации находятся в /etc/php/5.6
и /etc/php/7.0
соответственно - внутри здесь вы можете настроить, какие расширения загружены, установить параметры ini и все остальное для каждой версии отдельно.
Я пользователь Apache, и, как я уже говорил, оба модуля доступны. Поэтому для переключения с одного на другое мне нужно сделать:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Для пользователей nginx изменения почти так же просты, Digital Ocean имеет хорошую документацию по этому вопросу (у них действительно есть отличные документы!), Поэтому ознакомьтесь с их руководством:
https://www.digitalocean.com/community/tutorials/how-to- Обновление до php-7-on-ubuntu-14-04, так
как оно включает в себя раздел по перенастройке nginx для использования другой версии PHP.
Из командной строки у меня есть и php5.6, и php7.0, доступные как команды. У меня также есть команда php - посмотрите в / etc / alternatives, чтобы увидеть, что она символически ссылается на конкретную версию PHP cli *. Вы также можете быстро проверить, какой ваш использует, запустив php -v
.
* более конкретно, запустите php, чтобы увидеть, какая версия PHP используется - но это, вероятно, будет указывать на то /usr/bin/php
, что для меня само по себе является символической ссылкой на /etc/alternatives/php
команду.
Работа с расширениями
Этот PPA поставляется с обычным пакетом php-pear, который предлагает команду pecl для обеих версий PHP, поэтому любые расширения, доступные через PECL, можно установить обычным способом. Вам также понадобятся соответствующие заголовки, поэтому необходимо установить php5.6-dev или php7.0-dev.
Когда установка pecl завершится, вы получите сообщение о добавлении файла * .so в ваш php.ini; на самом деле лучшее, что можно сделать здесь, это посмотреть на то, что в /etc/php/mods-available
. Здесь уже будет несколько модулей, каждый в своем собственном файле, названном в честь расширения и заканчивающемся на .ini. Вы можете скопировать его для использования в качестве шаблона или создать свой собственный и поместить в него всю соответствующую конфигурацию для расширения (как минимум, вам нужно extension=[extensionName].so
).
Как только новое расширение будет доступно в модах, включите и проверьте его, выполнив:
sudo phpenmod extension
php -m
Это создаст символические ссылки в нужных местах для вашей текущей версии PHP для загрузки этого модуля, и вы должны увидеть это в списке модулей, выводимых с помощью php -m
. Совет от профессионала: если вы не видите его в выводе, прокрутите его до самого конца и посмотрите, есть ли там какие-либо полезные сообщения об ошибках.