Те саме, що сценарій з "Growling Flea", але з використанням нових версій.
Додайте PPA
Пакети PHP 5.6 та PHP 7.0 - від сторонніх PPA, не наданих офіційними сховищами Ubuntu від Canonical. Параметри PPA, які я рекомендую тут, є від Ondřej Surý, який пакує PHP для Debian (який потім використовується Ubuntu), тому, хоча це не офіційний сховище, він не зовсім випадковий! Сам ППА
тут
Щоб додати 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-на-ubuntu-14-04,
оскільки воно містить розділ про перенастроювання nginx для використання іншої версії PHP.
У командному рядку у мене є як php5.6, так і php7.0. У мене ще є команда php - загляньте в / etc / alternative, щоб побачити, що вона посилається на певну версію PHP cli *. Ви також можете швидко перевірити, який ваш використовується, запустивши php -v
.
* точніше, запустіть який php, щоб побачити, яка версія PHP використовується - але це, ймовірно, вкаже на /usr/bin/php
, що для мене само по собі є символьним посиланням на /etc/alternatives/php
команду.
Робота з розширеннями
Цей PPA постачається зі звичайним пакетом php-pears, який пропонує команду pecl для обох версій PHP, тому будь-які розширення, доступні через PECL, можна встановити звичайним способом. Вам також знадобляться відповідні заголовки, тому слід встановити або php5.6-dev, або php7.0-dev.
Коли інсталяція pecl завершиться, ви отримаєте примітку, щоб додати файл * .so до свого php.ini; насправді найкраще тут зробити, це подивитися на те, що є /etc/php/mods-available
. Тут вже будуть деякі модулі, кожен у своєму власному файлі, названому за розширенням та закінчуючи inini. Ви можете скопіювати його для використання в якості шаблону або створити свій власний і покласти в нього всю відповідну конфігурацію для розширення (як мінімум, що потрібно extension=[extensionName].so
).
Після того, як нове розширення буде доступним у модах, увімкніть та перевірте це, зробивши:
sudo phpenmod extension
php -m
Це створить символьні посилання в потрібних місцях для вашої поточної версії PHP для завантаження цього модуля, і ви повинні побачити його у списку модулів, виведених php -m
. Порада: якщо ви не бачите його у виході, прокрутіть до кінця виводу та перевірте, чи є корисні повідомлення про помилки.