Как установить 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
Кто отвечает за PPA? Это официально поддерживается Zend?
k0pernikus

19
@ k0pernikus Zend официально не поддерживает ничего, кроме Zend Server :-) Официальные пакеты Ubuntu поддерживаются сопровождающими Ubuntu. Этот PPA является личным усилием Ondřej Surý. Ондри является официальным владельцем дерева PHP в Debian, которое является апстримом Ubuntu. Смотрите здесь: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

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

3
Memcached JFTR еще не готов к использованию в PHP 7.0. Я не смотрел на memcache, все еще исправляя мелкие ошибки после серьезной переписывания сценариев упаковки.
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, поэтому они могут свободно менять версии, среди прочего. PPA, упомянутый в ответе Чилидзи Мудау, является популярным способом оставаться в курсе PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    PPA не поставляются с той же официальной поддержкой Ubuntu, что и версии, поставляемые Ubuntu, и из-за разных расписаний и политик могут иметь разный стандарт качества или безопасности. В этом случае разработчик, который делает этот PPA доступным, хорошо известен сообществу.


1
И возможность установки из источника.
июня

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это именно то, что мне нужно, спасибо!
Ясер Омри


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.

** РЕДАКТИРОВАТЬ: теперь я нашел способ обновить 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.