Вступление
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 [официальное руководство по миграции].