Как обновить версию PHP на сервере

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

Требования

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

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

Персональные архивы пакетов (PPA) представляют собой пакеты, которые обычно создаются и распространяются в репозиториях, специальных серверах-хранилищах для таких файлов. launchpad.net - сервис, созданный для поддержки и развития подобных свободных проектов. Именно там вы можете найти бета-версии, модифицированные сборки и ретроподдержки для более старых версий операционной системы.

Ondřej Surý отвечает за пакеты PHP для Debian, и именно у него вы можете найти PPA для PHP 7.0 на Ubuntu . Поэтому в первую очередь авторизуйтесь в системе и добавьте PPA от Ondřej Surý в APT-утилиты операционной системы:

$ sudo add-apt-repository ppa:ondrej/php

После того, как на экране высветилось описание пакета PPA, нажмите Enter.

Примечание.
Если в вашей локали установлена не UTF-8 кодировка, тогда при установке PPA может возникнуть ошибка, связанная с обработкой букв имени автора. В качестве временного решения вы можете установить language-pack-en-base, и, когда локали сгенерированы, заместить настройки локали системы в то время, как добавляется PPA:

$ sudo apt-get install -y language-pack-en-base $ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

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

$ sudo apt-get update

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

Обновление модуля mod_php на Apache

В этом разделе вы найдете информацию о том, как обновить систему, использующую в качестве веб-сервера Apache и модуль mod_php для выполнения PHP-кода.
Для начала вам необходимо установить новые пакеты. Благодаря этому будут обновлены все важные PHP-пакеты, за исключением php5-mysql, который будет удален.

$ sudo apt-get install php7.0

Примечание.
Если вы делали какие-то значительные изменения в файлах конфигурации в /etc/php5/, они будут все еще доступны. Конфигурационные файлы для PHP 7 лежат в /etc/php/7.0.

Всем пользователям MySQL необходимо повторно добавить обновленные двухсторонние биндинги PHP MySQL. Обязательно убедитесь в том, что вы это сделали:

Обновление PHP-FPM на Nginx

Инструкции, которые вы найдете в этом разделе, подойдут тем, кто использует в качестве веб-сервера Nginx, а PHP-код выполняется через менеджер процессов PHP-FPM.
Для начала установите новый пакет PHP-FPM и его зависимости:

$ sudo apt-get install php7.0-fpm

Для завершения установки вам нужно нажать Enter.

Всем пользователям MySQL необходимо убедиться, что они повторно добавили обновленные двухсторонние биндинги PHP MySQL:

$ sudo apt-get install php7.0-mysql

Примечание.
Если вы делали какие-то значительные изменения в файлах конфигурации в /etc/php5/, они будут все еще доступны. Конфигурационные файлы для PHP 7 вы можете найти в /etc/php/7.0.

Обновление пути сокета у веб-серверов Nginx

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

PHP 5: /var/run/php5-fpm.sock
PHP 7: /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

После этого вам нужно выйти, а затем сохранить файл. Если вы работаете в редакторе nano, то просто нажмите Ctrl-X для выхода, y для подтверждения и Enter для того, чтобы подтвердить перезапись имени файла.
Повторите этот процесс для всех остальных виртуальных серверов, расположенных в /etc/nginx/sites-enabled, которым необходимо поддерживать PHP.

$ sudo service nginx restart

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

После того, как вы настроили веб-сервер и установили новые пакеты, необходимо проверить, что PHP работает. Для начала проверьте, какая версия PHP установлена, используя команду:

На экране высветится сообщение с необходимой информацией.

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

  • /var/www/html
  • /var/www/
  • /usr/share/nginx/html

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

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

В Nginx этот путь выглядит так:

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

Скопируйте туда следующий код:

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

http://домен_или_IP/info.php

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

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

Все, кто пользуется ДНВР, так называемым джентльменским набором веб-разработчика, знают, что проблема обновления пакета встаёт очень редко и не доставляет особенных хлопот. Очень важный момент при работе с Denwer - обновить PHP. Обновлять его нужно вовремя и до актуальной версии, что, кстати, совсем несложно. Однако именно с этим чаще всего возникают проблемы у пользователей этого инструмента. Предлагаем вам пошаговую инструкцию, которая подробно расскажет, как обновить PHP на Denwer.

При обновлении php на Denwer надо четко следовать инструкции.


Подчищаем ошибки

Денвер не работает!

  • Первым делом проверяем, ту ли версию PHP мы скачали. Обращаем ваше внимание: необходима версия 5! Денвер обновлялся достаточно давно, поэтому 7-я версия работать на нём просто не будет.
  • Также загвоздка может быть с Apache. Его версия для Денвера - 2.2, однако сейчас для успешной работы с PHP требуется 2.4. Это решается индивидуальными настройками на вашем компьютере.
  • И ещё один простой способ для коррекции работы программы: удаляем Денвер и устанавливаем его заново. Как ни удивительно, но в большинстве случаев это помогает. И дело вовсе не в мистике, просто иногда этот инструмент оказывается банально «перенастроен»: слишком много изменений в него можно внести вручную и в хаотичном порядке. Только не забудьте перед удалением сохранить в резервную папку все файлы, хранящиеся в главной папке - собственно, файлы сайтов.

Если забыли о…


Обновление php до последней версии прежде всего, обеспечит более быструю и надежную работу сайта, оптимизацию страниц и улучшенную структуру по мнению поисковиков. Но не у всех получается правильно осуществить данное обновление.

О том когда и как, а главное, зачем переходить на новую версию php и не наделать ошибок, мы и поговорим в этом посте.

Когда переходить на последнюю версию php

О необходимости обновления версии php можно узнать как самостоятельно (проверить скорость загрузки), так и получив уведомление от своего хостинг-провайдера. Кроме того, при использовании готовых движков, можно включить режим отладки системы и при установке расширений у которых используется старая версия php, система сама выдаст предупреждение.

Так же проверить код сайта на ошибки можно валидатором (). Еще один способ несовместимости - это установка расширений для своего движка. Особенно это касается новых или обновленных расширений (если создан на php). В них всегда все новое, в том числе и сам php-код.

Причины для обновления php

Необходимо отметить 2 самые важные причины - это безопасность и работоспособность всего сайта. Еще совсем недавно все администраторы знали о прекращении обновления php версии 5.2, а сейчас, по прошествии всего чуть меньше двух лет, язык программирования php уже доступен в 7 версии.

Говоря простым языком, обновлено полностью ядро php, появились новые и упрощены старые функции. В результате увеличения передачи данных, увеличилась и скорость работы.

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

Что касается администраторов занимающихся только управлением таких сайтов и не имеющих необходимых знаний, то здесь необходимо обратиться к владельцу сайта или к программисту создавшему движок.

Как узнать версию php

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

Способов проверки достаточно много, самыми простыми являются непосредственно проверка версии php в аккаунте хостинга и второй - создание файла проверки версии php.

Про аккаунт на хостинге, каждый владелец сайта все знает сам, а вот про проверку с помощью файла, рассмотрим подробнее.

Для этого создаем файл в любом редакторе со следующим содержимым:
и сохраняем под тем же именем phpinfo.php

Затем данных файл нужно закачать в корень своего сайта и обратиться к нему в адресной строке своего браузера (http://ваш_домен/phpinfo.php).

В результате получим всю необходимую информацию касающуюся не только версии php, но и все что нужно для администратора.

Обновление php на сервере для wordpress

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

На этом примере рассмотрим практику обновления php непосредственно на хостинге. Хорошо что владельцам cms-систем нет надобности обновлять весь программный код cms, для этого есть разработчики.

А вот настроить совместимость версий php хостинга и например wordpress, это уже дело администратора сайта. Собственно ради этого и написана данная статья.

Любой администратор знает что обновление php на сервере делается из контрольной панели хостинга двумя кликами мыши. Выбрал необходимую версию php и нажал кнопку «сохранить».

В большинстве случаев это происходит по причине несовместимости установленных расширений с последними версиями php. Поэтому важно следить за обновлениями и стараться не устанавливать расширения, которые давно не обновлялись разработчиком.

Совсем не важно знать структура wordpress или другого движка, а достаточно понимать что все изменения происходят именно по этой причине.

А раз так, то нужно все это дело проверить. Но расширений может быть не один десяток (плагины для wordpress) и проверить такое количество на совместимость, просто не реально!

Как быть?

Проверка расширений на совместимость с php 7

Как ни странно, но для wordpress например, можно установить еще один плагин Compatibility php , который и поможет узнать какие установленные плагины не дают нормально работать системе.

Это отличный и простой способ проверить совместимость вашего сайта с PHP 7. Причем проверить можно практически все, включая тему для wordpress.

Установка стандартная и после этого в панели инструментов появится дополнительная вкладка PHP Compatibility.

Плагин проверит все установленные плагины движка на совместимость что и позволит нам сократить время на поиск несовместимых расширений.

Чтобы внимательно рассмотреть, нажмите мышкой на изображение.

На скриншоте видно, что после нажатия на кнопку «Scan site again», плагин выдал всю информацию по установленным расширения. Наглядно виден разноцветный результат проверки.

Содержимое подозрительных плагинов можно просмотреть нажав на ссылку справа и увидеть адрес этой ошибки.

Таким образом, из установленных 23-х плагинов на блоге, необходимо отключить или удалить всего 3. Тем самым можно обеспечить себе уверенность в том, что обновление php пройдет без проблем.

Если не жалко времени, можно обойтись ручным способом удалить или отключить все плагины, а после настройки сервера на php 7, постепенно включать их по одному и проверять работу.

В этом случае нужно либо помнить все настройки, либо иметь файл с сохраненными настройками.

Обновление версии php joomla

Что касается cms-joomla, то наверняка уже понятно, что процедура обновления версии php примерно выглядит одинаково. Вариантов достаточно много, но самое главное, что уже вся система работает на последней версии php после того, как вышла joomla 3.7.

При этом в панели администратора появится сообщение о несовместимости php не зависимо от того, на каком сервере работает система, локальном или удаленном.

Что касается установленных расширений, то зачастую в joomla не бывает больше 5-7 расширений которые необходимо обновить.

И информацию об обновлении всегда можно увидеть в админ-панели, но если некоторые расширения долго не обновляются, стоит на это обратить пристальное внимание.

Это будет небольшая заметка для пользователей шаблоном AB-Inspiraiton

Если у вас блог на хостинге TimeWeb и вы уже давно открыли там аккаунт, то скорее всего у вас установлена устаревшая версию php 5.3. Ее нужно обязательно заменить на одну из новых 5.4, 5.5, или 5.6

Сделать это не сложно. Хостинг подгружает новые версии php но сам их не активирует. Это должны сделать вы, как владелец аккаунта.

1. При обновлении шаблона вы увидите ошибку 500, вместо блога.

Как поменять версию php в Timeweb (в новой панеле управления)

1. Зайдите на хостинг под своим логином и паролем, перейдите в в раздел «Сайты»
2. Напротив домена нажмите на иконку «Шестеренки»
3. Во всплывшем окне выберите из списка версию php
4. Сохраните настройки

Работа с тех поддержкой хостинга:

1. Если вы не можете поменять php на хостинге, напишите в тех поддержку хостинга следующее письмо (в письме укажите адрес вашего сайта):

Тема письма: Как заменить php на версию 5.4

Добрый день,
На сайте мне нужно обновить шаблон WordPress. Разработчик шаблона рекомендует установить версию php 5.4 или выше.
Как поменять версию php на хостинге?
Заранее спасибо за помощь.
С уважением,

2. Если вы поменяли версию php, но проблема осталась (скорее всего это сбой на хостинге). Напишите в тех поддержку хостинга следующее письмо (в письме укажите адрес вашего сайта):

Тема письма: Не меняется версия php!

Добрый день,
Обновляю шаблон для WordPress по инструкции разработчика. Согласно инструкции для корректной работы шаблона необходима php 5.4 или выше. Я выполнил условия и переключил php на версию 5.4 в панеле управления хостинга. После обновления шаблона появилась ошибка 500. Разработчик шаблона, советует обратиться в тех поддержку хостинга, т.к. данная ошибка свидетельствует о том, что текущая версия php все еще ниже требуемой (т.е. ниже версии 5.4). Я попробовал поменять на версию 5.5 и на 5.6 — это также не решило проблемы.
Сайт
Заранее спасибо за помощь.
С уважением,

Добавление по поводу хостинга Timeweb:

Было уже 2 случая, когда на хостинге Timeweb поменяли php, но по факту все еще оставалось версия 5.3. Из-за этого блог также выдавал ошибку 500. В итоге мне пришлось самой позвонить в Timeweb, чтобы выяснить причину подобной ошибки.

В общем ситуация такая. На некоторых серверах Timeweb по умолчанию прописывается в файле.htaccess версия php 5.3. Это правило в файле.htaccess важнее настройки на сервере. Оно как бы перезаписывает правила сервера. Поэтому даже поменяв php на другую версию, все равно использовалась 5.3.

Чтобы это исправить нужно сделать следующе.

Если вы читаете этот пост, скорее всего, ваш сайт работает с древней версии PHP. Вы не одиноки, версия PHP 5.3 используется на 31,1% всех сайтов и 5.4 на 29% сайтов. Обе эти версии PHP уже достигли конца своей жизни и больше не будет поддерживаться. А это значит, что на вашем сайте потенциально возможны большие угрозы безопасности.

Joomla является одной из самых мощных и безопасных CMS на планете. Но одной лишь Joomla не достаточно, чтобы защитить ваш сайт, если вы используете старую версию PHP. Люди часто критикуют и обвиняют CMS, когда их сайт взломан, но они могут и не понять, что это могло произойти из-за проблемы на сервере.

В Joomla недавно подняли требования к версии PHP до PHP 5.6 или 7. Но CMS также может работать на PHP 5.3.10+.

PHP 7 уже выпустили, и это прорыв истории в PHP. Поэтому давно пора обновить серверную версию PHP до PHP 7 или, по крайней мере, до 5.6+. В этом уроке я собираюсь показать вам, как вы можете это сделать.

**Важно: если вы решили обновиться до PHP 7, убедитесь, что версия Joomla на вашем сайте 3.5+ для того, чтобы система работала должным образом.

Виртуальный хостинг или VPS

Самый простой способ

Попросите своего хостера обновить PHP версию хостинга. Скорее всего, он сделает это бесплатно, и это самый простой способ обновиться. Однако, если они отказались или не в состоянии сделать это, то пришло время перейти к надежному поставщику услуг.

Обновить PHP через cPanel

Большинство хостингов предоставляют cPanel для самостоятельного управления хостингом. CPanel позволят вам обновить версию PHP через свой интерфейс. Найдите диспетчер версии PHP или варианты конфигурации PHP и щелкните по нему.

Выберите версию PHP 5.6+ или 7 и сохраните изменения.

Обновление через.htaccess файл

Если перечисленные выше способы не работают для вас, то ваш лучший выбор - обновить версию PHP с использованием файла.htaccess.

Перейдите в cPanel, "Диспетчер файлов" и выберите корень сайта. Это можно сделать и с помощью FTP. В корневом каталоге создайте новый файл (или отредактируйте существующий) .htaccess и добавьте следующую строку:

Чтобы перейти на PHP 5.6

AddHandler application/x-httpd-php56 .php .php5 .php4 .php3

Чтобы перейти на PHP 7.0

AddHandler application/x-httpd-php70 .php .php5 .php4 .php3

Эта настройка применяется рекурсивно для всех вложенных папок. В случае, если вы хотели бы иметь другую версию PHP в подкаталоге, создайте в нем новый.htaccess файл с директивой для нужной версии PHP.

VPS или выделенный сервер

Если вы используете Ubuntu 14.04 или ниже Вы можете обновиться с помощью этой команды:

Sudo apt-get upgrade sudo apt-get dist-upgrade

Давайте добавим PHP репозиторий в наш список. Пожалуйста, выбрите соответствующую версию.

Sudo apt-add-repository ppa:ondrej/php5-5.6

Sudo apt-add-repository ppa:ondrej/php

Обновление до версии PHP 5.6

sudo apt-get install php5

Ваша версия PHP теперь повышена и необходима просто перезагрузить сервер.

Apache: sudo service apache2 restart

Nginx: sudo service nginx restart

Обновление до версии PHP 7

Обновление до версии PHP 7 требует немного дополнительной работы. Зависит от вашего веб-сервера для выполнения этой команды.

Обновление mod_php в Apache

Во-первых, необходимо установить новые пакеты (packages). Это обновит все важные файлы PHP, за исключением пакета PHP5-MySQL, которая будет удалена.

Sudo apt-get install php7.0

Если вы используете MySQL, убедитесь в том, чтобы повторно добавить обновленные версии PHP и 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

Примечание: если вы внесли существенные изменения в файлы конфигурации в /etc/PHP5, то эти файлы останутся на месте, и на них можно ссылаться. Конфигурационные файлы для PHP 7.0 будут находиться в /etc/PHP/7.0.

Теперь обновите ваш сервер nginx блок с новым PHP 7.0.

Fastcgi_pass unix:/run/php/php7.0-fpm.sock;

Сохраните и закройте файл. Теперь остается просто перезагрузиться.

Sudo service nginx restart

Проверить вашу версию PHP в админ-панели Joomla, откройте Система > Информация о системе. Вы сможете увидеть там номер вашей PHP версии.