Как перейти на PHP 7 в Ubuntu 14.04

Вступление

PHP 7, выпущенный 3 декабря 2015 года, обещает существенное улучшение скорости по сравнению с предыдущими версиями языка, а также новые функции, такие как подсказки скалярного типа. В этом руководстве объясняется, как быстро обновить веб-сервер Apache или Nginx под управлением PHP 5.x (любой выпуск) до PHP 7.

Предпосылки

В этом руководстве предполагается, что вы используете PHP 5.x на компьютере с Ubuntu 14.04, используя либо + mod_php + в сочетании с Apache, либо PHP-FPM в сочетании с Nginx. Также предполагается, что у вас есть пользователь без полномочий root, настроенный с привилегиями + sudo + для административных задач.

Добавление PPA для пакетов PHP 7.0

A * Personal Package Archive *, или PPA, является хранилищем Apt, размещенным по адресу Launchpad. PPA позволяют сторонним разработчикам создавать и распространять пакеты для Ubuntu за пределами официальных каналов. Они часто являются полезными источниками бета-версии программного обеспечения, модифицированных сборок и бэкпортов к более старым версиям операционной системы.

Ондржей Сури (Ondřej Surý) поддерживает пакеты PHP для Debian и предлагает a PPA для PHP 7.0 в Ubuntu. Прежде чем делать что-либо еще, войдите в свою систему и добавьте PPA Ондржея к системным источникам Apt:

sudo add-apt-repository ppa:ondrej/php

Вы увидите описание PPA с последующим предложением продолжить. Нажмите * Enter *, чтобы продолжить.

После установки PPA обновите локальный кеш пакетов, чтобы включить его содержимое:

sudo apt-get update

Теперь, когда у нас есть доступ к пакетам для PHP 7.0, мы можем заменить существующую установку PHP.

Обновление + mod_php + с помощью Apache

В этом разделе описывается процесс обновления для системы, использующей Apache в качестве веб-сервера и + mod_php + для выполнения кода PHP. Если вместо этого вы используете Nginx и PHP-FPM, перейдите к следующему разделу.

Сначала установите новые пакеты. Это обновит все важные пакеты PHP, за исключением + php5-mysql, который будет удален.

sudo apt-get install php7.0

Если вы используете MySQL, обязательно добавьте обновленные привязки PHP MySQL:

sudo apt-get install php7.0-mysql

Обновление PHP-FPM с помощью Nginx

В этом разделе описывается процесс обновления системы, использующей Nginx в качестве веб-сервера и PHP-FPM для выполнения кода PHP.

Сначала установите новый пакет PHP-FPM и его зависимости:

sudo apt-get install php7.0-fpm

Вам будет предложено продолжить. Нажмите * Enter *, чтобы завершить установку.

Если вы используете MySQL, обязательно переустановите привязки PHP MySQL:

sudo apt-get install php7.0-mysql

Обновление сайтов Nginx для использования нового пути к сокету

Nginx взаимодействует с PHP-FPM, используя Unix доменный сокет. Сокеты сопоставляются с путем в файловой системе, и наша установка PHP 7 использует новый путь по умолчанию:

PHP 5 PHP 7

/var/run/php5-fpm.sock

/var/run/php/php7.0-fpm.sock

Откройте файл конфигурации сайта + default + с помощью + nano + (или по вашему выбору):

sudo nano /etc/nginx/sites-enabled/default

Ваша конфигурация может несколько отличаться. Найдите блок, начинающийся с + location ~ \ .php $ {+, и строки, которая выглядит примерно так: + fastcgi_pass unix: /var/run/php5-fpm.sock; +. Измените это, чтобы использовать + unix: / var / run / php / php7.0-fpm.sock +.

/ И т.д. / Nginx / сайты с поддержкой / по умолчанию

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   root /var/www/html;
   index index.php index.html index.htm;

   server_name ;

   location / {
       try_files $uri $uri/ =404;
   }

   error_page 404 /404.html;
   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
       root /usr/share/nginx/html;
   }

   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;

       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
}

Выйдите и сохраните файл. В + nano + вы можете сделать это, нажав * Ctrl-X * для выхода, * y * для подтверждения и * Enter *, чтобы подтвердить имя файла для перезаписи.

Вы должны повторить этот процесс для любых других виртуальных сайтов, определенных в + / etc / nginx / sites-enabled +, которые должны поддерживать PHP.

Теперь мы можем перезапустить + nginx:

sudo service nginx restart

Тестирование PHP

С настроенным веб-сервером и установленными новыми пакетами мы сможем убедиться, что PHP работает и работает. Начните с проверки установленной версии PHP в командной строке:

php -v
OutputPHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
   with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Вы также можете создать тестовый файл в корневом каталоге документов веб-сервера. В зависимости от вашего сервера и конфигурации, это может быть одним из:

  • + / Вар / WWW / html

  • + / Вар / WWW / +

  • + / USR / доли / Nginx / html

Используя + nano +, откройте новый файл с именем + info.php + в корне документа. По умолчанию на Apache это будет:

sudo nano /var/www/html/info.php

На Nginx вы могли бы вместо этого использовать:

sudo nano /usr/share/nginx/html/info.php

Вставьте следующий код:

info.php

<?php
phpinfo();
?>

Выйдите из редактора, сохранив + info.php. Теперь загрузите следующий адрес в вашем браузере:

http:///info.php

Вы должны увидеть версию PHP и информацию о конфигурации для PHP 7. После того, как вы дважды проверили это, безопаснее всего удалить + info.php:

sudo rm /var/www/html/info.php

Заключение

Теперь у вас есть работающая установка PHP 7. Отсюда вы можете почитать сообщение в блоге Эрики Хайди Getting Ready for PHP 7 и просмотреть https : //secure.php.net/manual/en/migration70.php [официальное руководство по миграции].

Related