Как обновить версию PHP Joomla. Обновление PHP для блога на WordPress, пошаговая инструкция для новичков VPS или выделенный сервер

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

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


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

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

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

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


Следуя этой простой пошаговой инструкции, нам удалось успешно обновить PHP на Денвере, а также справиться с возможными ошибками. Будем рады вашим отзывам по работе с этой программой и её обновлениями!

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

На самом деле, ничего трудно тут нет. Для начала вам нужно скачать thread safe версию php на сайте http://windows.php.net/download/ . Советую качать 32-х разрядную версию, т.к. с 64-х битной у вас могут быть проблемы, да и эта сборка на данный момент является экспериментальной.

Теперь остановите сервер, используя скрипт stop.exe и switchOff.exe , дальше перейдите по пути usr/local/php5 и удалите там все бинарные файлы, заменяя их только что скачанными. Перезапустите Denwer .

Теперь в папке php5 у вас нет файла php.ini , однако вместо него есть php.ini-development и php.ini-production . Вы можете переименовать любой из них в php.ini и настроить сервер, как вам нужно. Не забудьте также посмотреть, чтобы была расскоментирована директива extension_dir="ext" , чтобы избежать проблем с подключаемыми модулями в будущем.

Лучшее - враг хорошего? Мы рассмотрели, как обновить версию PHP, на которой работает ваш сайт, и для чего это нужно.

Актуальная версия PHP

Сейчас проходит бета-тестирование PHP 7.3 - последний релиз в этом семействе. Актуальной на сегодняшний момент считается 7.2, которая превосходит в скорости и функциональности все прошлые версии.

Вот неполный список возможностей PHP 7:

  • типы скалярных параметров и подсказки (hints) по возвращаемым типам;
  • две новые функции CSPRNG ;
  • анонимные классы;
  • оператор return в генераторах и другие обновления в них;
  • улучшение функции assert() с сохранением обратной совместимости.

Как обновить PHP на Windows

Здесь все очень просто и прозаично:

1. Скачиваем последнюю версию PHP

2. Удаляем старую

3. Устанавливаем новую.

4. Прописываем заново настройки в Apache и PHP.

Но прежде чем обновлять, нужно внимательно изучить раздел Appendices в документации к новой версии. В нем описывается устаревший функционал, который больше не применяется в языке. Новые версии не поддерживают старый код: особенно трудна миграция с пятой на седьмую, у которой очень слабая обратная совместимость.

Если разработчик использует неподдерживаемые функции, то кусок кода, в котором они есть, просто не заработает. Поэтому перед обновлением нужно серьезно проанализировать этот раздел и в соответствии с ним - свой код.

Зачем обновлять, если все работает

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

В каждом релизе PHP появляются новые фишки и функции, а также закрываются уязвимости. Например, is_countable позволяет определить тип переменной - перечисляемый или нет. Это очень удобная возможность для веб-разработчиков. Сейчас приходится использовать для определения типа переменной if , а в PHP 7.3 это можно будет сделать одной функцией.

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

Веб-хостинг Plesk в своем блоге на Хабре выложил статистику , какие версии PHP используют их пользователи на своих сайтах. В начале марта2018 года ситуация выглядела вот так:

Статистика использования разных версий PHP

Как видите, самую последнюю версию используют очень немногие. Консервативное большинство остается верным надежным технологиям - от PHP 5.1 до 5.6.

Обновлять или не обновлять: вот в чем вопрос

Мы скажем так: Святого Грааля в проблеме обновления нет. Подходить к нему нужно с позиции целесообразности. Большой проект перевести на PHP7 будет сложно: придется рефакторить всю кодовую базу, но ради чего? Любое изменение должно исходить из рабочей потребности.

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

На старых сайтах, где сплошной

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

Если вы читаете этот пост, скорее всего, ваш сайт работает с древней версии 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 версии.