centos 7 удаление php 7

Обновление PHP 5 до PHP 7 в CentOS 7

Версия PHP 7.0 была выпущена 3 декабря 2015 года. PHP 7 обладает существенно улучшенной скоростью и множеством других новых функций.

Это руководство поможет быстро обновить веб-сервер Apache или Nginx, работающий на любом релизе версии PHP 5.

Внимание! Запускать PHP 7 в производство сразу после обновления не рекомендуется. Сначала нужно проверить приложения на совместимость с новым релизом и ознакомиться с функциями языка.

Если вы используете phpMyAdmin для управления базами данных, настоятельно рекомендуется подождать выхода официальных пакетов PHP 7 для CentOS, поскольку пакеты phpMyAdmin пока что не поддерживают новой версии PHP.

Требования

Для выполнения руководства нужно иметь экземпляр PHP 5.x на сервере CentOS 7 с предустановленным модулем mod_php (для Apache) или PHP-FPM (для Nginx). Также нужна учётная запись не-root с доступом к sudo.

Установить PHP 5 можно при помощи одного из руководств:

Подписка на репозиторий IUS

Поскольку пакеты PHP 7.x еще не появились в официальных репозиториях большинства дистрибутивов, их нужно загрузить из сторонних ресурсов. На данный момент RPM-файлы для PHP 7 предлагают несколько репозиториев, и один из них – репозиторий IUS.

IUS предоставляет установочный скрипт для добавления этого репозитория и импорта необходимых GPG-ключей. Перейдите в домашний каталог и извлеките в него скрипт при помощи curl:

sudo bash setup-ius.sh

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

Этот раздел содержит инструкции по обновлению модуля mod_php для поддержки нового кода PHP.

Примечание: Если вы используете веб-сервер Nginx, переходите к следующему разделу.

Сначала удалите старые пакеты PHP:

sudo yum remove php-cli mod_php php-common

Примечание: Чтобы подтвердить запуск команды, нужно нажать y и Enter.

Установите новые пакеты PHP 7 из репозитория IUS:

sudo yum install mod_php70u php70u-cli php70u-mysqlnd

Затем перезапустите Apache, чтобы загрузит новую версию модуля mod_php:

sudo apachectl restart

Проверьте состояние сервера Apache, которым управляет модуль httpd systemd:

systemctl status httpd

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

Этот раздел содержит инструкции по обновлению PHP-FPM для поддержки новой версии PHP.

Сначала нужно удалить устаревшие пакеты PHP:

sudo yum remove php-fpm php-cli php-common

Затем установите новые пакеты из репозитория IUS.

sudo yum install php70u-fpm-nginx php70u-cli php70u-mysqlnd

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

PHP-FPM может обрабатывать множество пулов дочерних процессов. Согласно текущим настройкам, он поддерживает один пул по имени www, который определяется в файле /etc/php-fpm.d/www.conf. Откройте этот файл в текстовом редакторе:

sudo nano /etc/php-fpm.d/www.conf

Найдите в файле строку listen = 127.0.0.1:9000, которая настраивает PHP-FPM для прослушивания адреса замыкания на порте 9000. Закомментируйте эту строку, поставив в начале символ точки с запятой, и раскомментируйте строку listen = /run/php-fpm/www.sock, которая находится немного ниже.

Читайте также:  Что является незаконным обогащением

Затем найдите блок, содержащий значения listen.acl_users, и раскомментируйте listen.acl_users = nginx:

; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
;listen.acl_users = apache,nginx
;listen.acl_users = apache
listen.acl_users = nginx
;listen.acl_groups =

Сохраните и закройте файл.

Примечание: В редакторе nano для этого используется комбинация клавиш Ctrl-X, y (для сохранения) и Enter (для подтверждения).

Затем нужно установить для Nginx правильный путь сокета для обработки файлов PHP. Откройте /etc/nginx/conf.d/default.conf:

sudo nano /etc/nginx/conf.d/php-fpm.conf

Файл php-fpm.conf определяет данные upstream, на которые могут ссылаться другие конфигурационные директивы Nginx. В блоке upstream закомментируйте строку server 127.0.0.1:9000;, добавив в её начало символ #. Затем раскомментируйте строку server unix:/run/php-fpm/www.sock;:

# PHP-FPM FastCGI server
# network or unix domain socket configuration
upstream php-fpm <
#server 127.0.0.1:9000;
server unix:/run/php-fpm/www.sock;

Сохраните и закройте файл. Откройте /etc/nginx/conf.d/default.conf:

sudo nano /etc/nginx/conf.d/default.conf

Найдите блок, который начинается с location

Сохраните и закройте файл. Перезапустите PHP-FPM и Nginx, чтобы обновить настройки.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

Проверьте состояние этих сервисов:

systemctl status php-fpm
systemctl status nginx

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

Теперь веб-сервер настроен, все новые пакеты установлены. Нужно убедиться, что обновление прошло успешно.

Запросите версию PHP:

Также можно создать тестовый файл в каталоге document root веб-сервера. В зависимости от используемого сервера и настройки это может быть один из этих каталогов:

Откройте новый файл info.php в каталоге document root при помощи текстового редактора. По умолчанию для Apache это каталог:

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

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

Вставьте в него такой код:

Закройте редактор и сохраните файл. Откройте файл в браузере:

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

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

Заключение

Теперь на сервере есть готовая к работе установка PHP 7.

За дополнительной информацией обращайтесь к официальному руководству PHP 7.

Источник

PHP 7 обновление в CentOS 7

Рассмотрим обновление на PHP 7-ой версии в системе CentOS 7 работающей с Nginx. Произведем настройку после обновления необходимых конфигурационных файлов для работы ресурсов использующих php. Процесс обновления сложный требующий внимания и ответственности.

Введение

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

Обязательно перед обновление сделайте резервную копию системы и после обновления максимально проверьте все ресурсы использующие PHP!

Читайте также:  что написано на китайском веере

В моем случае я обновляю версию которую устанавливал в статье Установка и настройка PHP.

В другой статье вы узнаете как работать с PHP используя репозиторий Remi для CentOS 7.

Удаление старой версии PHP

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

Подготовка перед удалением

Проверим установленную версию:

Выведем весь список установленных пакетов:

Исходя из вывода удалим все эти пакеты. Новую версию php мы будем устанавливать с другого репазитория. Репозиторий remi нам больше не нужен и мы его удалим.

Удаление PHP 5.6

Удалим одной командой:

Внимательно смотрим лог обновления на предмет ошибок и предупреждений! Сохраните все ошибки и предупреждения. Уверяю в последствии это сильно сократит время в настройке после обновления!

Удаление репозитория Remi-safe

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

Выведем список всех используемых репозиториев:

В выводе видим точное имя которое мы используем при удалении:

После всех действий обновим систему чтобы окончательно всё подготовить к установке новой версии:

Установка новой версии PHP

Выбор репозитория и версии PHP 7

Вероятно есть разные варианты установки PHP 7 версии, но мне нравится репозиторий WebtaticEL про него и расскажу.

Перейдя по ссылке вы увидите все варианты версий возможных для установки а так же способы их установки в необходимую вам систему. Мой выбор пал на версию PHP 7.1 так как на данный момент это самая стабильная новая версия.

Добавление репозитория Webtatic

Добавим репозиторий в систему:

После добавления любого репазитория необходимо обновить список пакетов. В CentOS это можно сделать командой вывода всех репозиториев которая заодно и обновит весь список пакетов:

Установка PHP 7.1

Установим все нужные мне пакеты исходя из тех что удалял:

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

Можем уставим все что есть, но решать вам самим что для вас лучше:

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

Проверка после обновления PHP

После обновления первым делом проверим какая версия php в системе:

Видим что установилась новая версия, но почти со 100% уверенностью могу сказать что при попытке открыть свой интернет ресурс вы обнаружите что он не работает. Вот тут то и пригодятся все наши сохранённые предупреждения при удалении, обновлении и установке новых пакетов.

Ошибки в логах установки/удаления

В моем случае было несколько предупреждений:

Читайте также:  москательная лавка что это такое

Как видите система сказала что в двух случаях она создала новые файлы а старые сохранила с пометкой rpmsave. В случае когда система не смогла создать новый файл она создала его с пометкой rpmnew.

Любыми удобными вам способами сохраните копии созданных новых рабочих файлов. Необходимый вам код из старых сохраненных обновлением файлов перенесите в новые рабочие файлы. Мне было необходимо отредактировать два файла /etc/php-fpm.d/www.conf и /etc/php.ini.

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

Настройка PHP-FPM после обновления

Так как у нас работает Nginx и для связки с php используется php-fpm мы проверим необходимую службу:

Из вывода мы видим что служба остановлена и отсутствует в автозагрузке. Добавим в автозагрузку, запустим и посмотрим статус:

Из вывода команды мы видим ошибку во второй строке файла /etc/php-fpm.d/www.conf. Откроем и посмотрим код:

Видим что вторая строке и отключена знаком #. Посмотрев в сохранном созданном установщиком новом файле увидим что все отключения идут знаком ;. Заменив все знаки # на ; сохраним и перезапустим службу и посмотрим статус:

Видим что служба находится в автозагрузке и работает.

Вывод всех параметров PHP 7

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

Достаточно набрать в строке браузера http://IP или ИМЯ/info.php и вы увидите страницу примерно с таким содержанием:

PHP Version 7.1.8

Вывод

Судя по статье может показаться что обновление версии PHP не такое уж и сложное дело но уверяю что эта простота придет только с опытом. Многое зависит от того как долго не обновляли систему, какие ресурсы там работают и какие у каждого в отдельности требования к версии php. В случае если вам досталась система с которой работали разные люди и мало чего комментировали в коде сложностей может возникнуть очень много и единственное что вас спасет от головной боли в случае неправильной работы важных ресурсов это резервное копирование перед выполнением обновления. Лучшим вариантом при обновлении таких систем это сделать клон системы и производить все действия на нем. Конечно при работе с клоном может возникнуть дополнительные сложности но это уже другая тема.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Образовательный портал