Як встановити PHP 7?


116

PHP 7 вийшов вчора, і я хотів би спробувати.

PHP 7.0.0 поставляється з новою версією Zend Engine, численними вдосконаленнями та новими можливостями, такими як

  • Покращена продуктивність: PHP 7 - вдвічі швидше, ніж PHP 5.6
  • Значно скоротилося використання пам'яті
  • Анотація синтаксичного дерева
  • Постійна 64-розрядна підтримка
  • Поліпшена ієрархія винятків
  • Багато фатальних помилок, перетворених на Винятки
  • Безпечний генератор випадкових чисел
  • Видалено старі та непідтримувані SAPI та розширення
  • Оператор нульового згортання (??)
  • Декларації повернення та скалярного типу
  • Анонімні класи
  • Нульова вартість стверджує

php.net


Чи можливо це встановити на поточній версії Ubuntu?

Чи існують поточні обмеження чи відомі проблеми сумісності?



1
PHP 7 за замовчуванням для Ubuntu 16, Xenial.
Буттер Буткус

Відповіді:


180

Ви можете зробити наступне:

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

Необов'язково продувка PHP 5:

sudo apt-get remove php5-common -y

Або безпосередньо очистити його, включаючи конфігураційні файли:

sudo apt-get purge php5-common -y

І нарешті встановіть PHP 7:

sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y

Опціонально після цього очистіть непотрібні пакунки:

sudo apt-get --purge autoremove -y

Крім того, ви можете встановити PHP 7.0 з джерел, використовуючи цей скрипт сценарію або наступну інструкцію в цьому блозі .

Редагувати:

PHP5 тепер замінено на PHP7 як PHP за замовчуванням в Ubuntu 16.4, щоб встановити PHP7 на Ubuntu 16.04:

sudo apt-get install php7.0 

Або

sudo apt-get install php

12
Хто керує ППА? Чи офіційно це підтримується zend?
k0pernikus

19
@ k0pernikus Zend офіційно не підтримує нічого, крім їх Zend Server :-) Офіційні пакети Ubuntu підтримуються сервісами Ubuntu. Цей ППА є особистим зусиллям Ондржея Сурі. Ондрей є офіційним власником дерева PHP в Debian, який знаходиться вище від Ubuntu. Дивіться тут: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

4
У будь-якому разі, його PPA-програми PHP дуже популярні, аж до того часу, коли офіційний дистрибутив Magento рекламує версії 5.5 та 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Palantir

3
JFTR заповнений ще не готовий до PHP 7.0. Я не дивився на пам’ять, все ще прасуючи менші помилки після великих перезаписів сценаріїв упаковки.
oerdnj

4
@Xeridea Спробуйте sudo apt-get install libapache2-mod-php7.0, а sudo a2enmod php7.0потім перезапустіть Apache
andrewtweber

21

У вас є два варіанти:

  • Зачекайте, поки з’явиться новий реліз Ubuntu, який включає PHP7

    Ubuntu не випускає основні версії нових версій більшості програмного забезпечення для існуючих версій Ubuntu; щоб отримати основний випуск нової версії, вам доведеться почекати, поки не з'явиться нова версія Ubuntu.

  • Встановіть сторонні версії, наприклад, з PPA

    PPA не пов'язані графіками випусків або політикою Ubuntu, тому вони можуть вільно змінювати версії, крім іншого. ЗОЗ, згадане у відповіді Цілідзі Мудау, є популярним способом бути в курсі PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    PPA не постачаються з тією ж офіційною підтримкою Ubuntu, що й версії, що постачаються Ubuntu, і через різні графіки та політики можуть бути різного стандарту якості або безпеки. У цьому випадку розробник, який надає цей PPA доступний, добре відомий громаді.


1
І можливість встановити з джерела.
j0h

18

Ось мій список команд для повного оновлення PHP з його залежностями, включаючи phpMyAdmin (повний стек LAMP):

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get update
sudo apt-get purge php5-fpm
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2

Тепер у вас PHP7. Давайте перейдемо до phpMyAdmin: (почніть тут, якщо у вас вже встановлено PHP7)

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip
sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/
sudo mkdir -m 777 phpmyadmin/config/
sudo /etc/init.d/apache2 restart

3
libapache2-mod-php7.0саме те, що мені було потрібно, дякую!
Jacer Omri


7

Вищеописаний процес не працював на моєму сервері Ubuntu 15.10, тому я подумав, що поділюсь тим, що працював, якщо інші вважають його корисним.

Спочатку мені довелося видалити певні ключові модулі PHP 5:

sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite

Потім видаліть кілька зайвих речей, які залишилися позаду:

sudo apt-get autoremove

Потім встановіть PHP 7.0:

sudo apt-get install php7.0

Тоді як PHPMyAdmin був видалений, Apache2 не запускався, тому мені довелося видалити конфігураційний файл (я міг би його перемістити):

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

Тоді мені довелося перезапустити Apache2:

sudo service apache2 restart

Потім запущено PHP 7.0 (підтверджено PHPINFO();)

Однак я знайшов єдиний спосіб роботи PHPMyAdmin - це встановити / оновити її вручну, оскільки в іншому випадку остання версія, доступна в джерелах, ще не підтримує PHP 7.

** EDIT: Зараз я знайшов спосіб оновити PHPMyAdmin до сумісної версії без клонування з GIT або компіляції вручну з джерел, тому я додаю це нижче:

Спочатку додайте це сховище, оновіть список джерел та оновіть (зверніть увагу: якщо він був видалений під час оновлення до PHP7, вам потрібно буде встановити, а не оновити його):

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade

Однак під час встановлення (на моєму сервері) довелося запустити сценарій оновлення бази даних, upgrade_column_info_4_3_0+.sqlале це не вдалось із наступною помилкою:

mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'

Я вирішив ігнорувати помилку та завершити оновлення. Після встановлення я відкрив скрипт оновлення .sql на/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Я запустив скрипт вручну, видаливши два рядки-образи, намагаючись створити 2 стовпці, які вже існували (код для видалення):

ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

Нарешті мені довелося відредагувати конфігураційний файл у /etc/phpmyadmin/config.inc.phpта додати наступні два рядки:

$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Після цього PHPMyAdmin успішно оновлюється та активовано розширені функції. Сподіваюся, що це допомагає іншим.


4

На момент отримання відповіді (лютий 2017 року) на Ubuntu 16.04 LTS тепер можна встановити php 7.0. * За допомогою простої команди:

apt-get install php

Не потрібно додавати сторонні сховища.


3

Я думаю, що ppaдодано в 16.04 LTS.

  1. Просто просто зроби sudo apt-get install php7.0і все.
  2. Перевірте, чи встановлено він, запустивши php --version
  3. Також ви можете створити info.phpфайл у корені документа Apache.
  4. Це в /var/www/html/каталозі
  5. Біжи sudo gedit /var/www/html/info.php
  6. Додайте наступні рядки в файл: <?php phpinfo(); ?>. Примітка: файл - це порожній файл, оскільки ви його створили самостійно.
  7. Тепер перезапустіть apache sudo service apache2 restart
  8. У вашому веб-переглядачі http://localhost/info.phpви отримаєте повну інформацію про php.

Сподіваюся, це допомагає :)


1
Хіба я не повинен додавати його до Apache2?
Арлен Бейлер

Це не ppa, це офіційна збірка ubuntu.
Джефф Пукетт

2

Я зібрав кілька різних ресурсів і вирішив багато питань, щоб повністю налаштувати збірку PHP 7 на Ubuntu 15.04 та 15.10. Хоча це і не скрипт пакета Debian, він налаштовує залежності Ubuntu та конфігурацію. Ресурси можна знайти тут .

Можливо, вам доведеться вибрати гілку випуску над просто master та повторно запустити сценарій.


2

Я знаю, що це може бути поганою ідеєю, але саме так я змусив php7 працювати з моєю установкою Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Потім в кінці додайте наступне:
 

deb http://us.archive.ubuntu.com/ubuntu/ надійний головний універсал з обмеженим доступом
deb http://archive.canonical.com/ubuntu надійний партнер

Потім оновіть, як зазвичай:

sudo apt-get update

Після встановлення PHP 7 на сервері apache, можливо, доведеться перенести свої файли в новий каталог для роботи:

sudo mv / var / www / * / var / www / html /
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.