Вопрос Как установить PHP 7?


Вышел PHP 7 вчера и я хотел бы попробовать.

PHP 7.0.0 поставляется с новой версией Zend Engine, многочисленными улучшениями и новыми функциями, такими как

  • Повышенная производительность: PHP 7 доходит в два раза быстрее, чем PHP 5.6
  • Значительно уменьшено использование памяти
  • Абстрактное дерево синтаксиса
  • Согласованная поддержка 64-разрядных версий
  • Улучшенная иерархия исключений
  • Многие фатальные ошибки, преобразованные в Исключения
  • Защищенный генератор случайных чисел
  • Удалены старые и неподдерживаемые SAPI и расширения
  • Нулевой коалесцирующий оператор (?)
  • Декларации типа Return и Scalar Type
  • Анонимные классы
  • Нулевая стоимость утверждает

php.net 


Возможно ли установить его на текущей версии Ubuntu?

Существуют ли какие-либо текущие ограничения или известные проблемы совместимости?


108
2017-12-04 14:13


происхождения


Возможный дубликат Как установить другую (обновленную или пониженную) версию PHP в поддерживаемой версии Ubuntu? - muru
PHP 7 по умолчанию используется для Ubuntu 16, Xenial. - Buttle Butkus


ответы:


Вы можете сделать следующее:

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

172
2017-12-04 14:52



Кто отвечает за ppa? Официально ли она поддерживается zend? - k0pernikus
@ k0pernikus Zend не оказывает юридической поддержки ничего за пределами своего Zend Server :-) Официальные пакеты Ubuntu поддерживаются сторонними разработчиками Ubuntu. Это PPA - личное усилие Ondřej Surý. Ondrey является официальным владельцем дерева PHP в Debian, который находится выше по течению от Ubuntu. Глянь сюда: qa.debian.org/developer.php?login=ondrej%40debian.org - Palantir
Во всяком случае, его PHP PPAs очень популярны, до того момента, когда официальный дистрибутив Magento рекламирует версию 5.5 и 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/... - Palantir
JFTR memcached еще не готов к началу для PHP 7.0. Я не смотрел на memcache, все еще сглаживая небольшие ошибки после серьезного переписывания сценариев упаковки. - oerdnj
@Xeridea Попробуйте sudo apt-get install libapache2-mod-php7.0, тогда sudo a2enmod php7.0 затем перезапустите Apache - andrewtweber


У вас есть два варианта:

  • Подождите, пока не появится новая версия Ubuntu, включающая PHP7

    Ubuntu не будет выпускать новые версии новой версии для большинства программных продуктов для существующих версий Ubuntu; для получения новой версии новой версии вам нужно будет подождать до более новой версии Ubuntu.

  • Установите стороннюю версию, например, из PPA

    PPA не связаны графиками выпуска или политиками Ubuntu, поэтому они могут чаще менять версии чаще, между прочим. PPA, упомянутый в ответе Tshilidzi Mudau, является популярным способом оставаться более современным с PHP.

    sudo add-apt-repository ppa:ondrej/php
    

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


20
2017-12-06 13:00



И возможность установки из исходного кода. - j0h


Вот мой список команд для полного обновления 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

17
2018-01-25 11:22



libapache2-mod-php7.0 это именно то, что мне нужно, спасибо! - Jacer Omri


Для Ubuntu 16.04 PHP7 теперь является официальной версией по умолчанию.

sudo apt install php

Вот удобное руководство по настройке стека LAMP на 16.04,


10
2017-07-12 23:13





Вышеупомянутый процесс не работал для моего сервера 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 или компиляции вручную из источников, поэтому я добавляю это ниже:

Сначала добавьте этот репозиторий, список источников обновлений и обновления (NB: если он был удален во время обновления до 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 успешно обновляется и расширенные функции включены. Надеюсь, это поможет другим.


6
2017-12-23 18:08





Во время этого ответа (февраль 2017 г.), на Ubuntu 16.04 LTS, теперь можно установить php 7.0. * С помощью простой команды:

apt-get install php

Не нужно добавлять сторонние репозитории.


4
2018-02-02 02:07





я думаю 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.

Надеюсь это поможет :)


3
2017-08-11 08:35



Не нужно ли добавлять его в Apache2? - Arlen Beiler
Это не ppa, это официальная сборка ubuntu. - Jeff Puckett