Centos сменить версию php

Обновлено: 03.07.2024

Версия 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 можно при помощи одного из руководств:

Поскольку пакеты 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

Обновление 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.

Затем найдите блок, содержащий значения 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

Сохраните и закройте файл. Откройте /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 веб-сервера. В зависимости от используемого сервера и настройки это может быть один из этих каталогов:

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

Откройте новый файл 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.


Проблема “ хочу новую версию %software% на моем стареньк … стабильном Debian/CentOS…” так же стара, как *nix-мир. Способов добиться желаемого хватает. Есть масса решений как притащить в систему несколько версий одного и того же софта. Но дальше хочется не просто иметь ещё одну версию, но и управлять тем, какая из версий доступна в системе по умолчанию, для конкретных приложений или пользователей.

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

В качестве примера возьмём сервер на CentOS 7, где установлен родной PHP:

Также на сервере установлен наш Plesk с парой своих сборок PHP:

Допустим, мы хотим переключить систему на использование PHP 5.6 по умолчанию (переключать глобально PHP с версии 5.4 на 7 как-то сс… страшно — чему-то в системе может поплохеть от такого). Бинарь PHP 5.6 лежит у нас тут:

Как же сделать так, чтобы система использовала эту, нужную нам, версию PHP?

Сначала посмотрим на системную переменную PATH

В ней перечислен список директорий, в которых ищутся программы по имени. Главный нюанс — поиск в директориях происходит последовательно и используется первый найденный результат. Текущий путь до текущего бинарника PHP мы можем увидеть с помощью команды:

Как видно из PATH , /usr/local/bin находится в списке раньше, чем /usr/bin . Значит, если мы поместим ссылку на альтернативную версию PHP “пораньше”, в /usr/local/bin , то именно она и будет использоваться при вызове команды php вместо /usr/bin/php . Мы можем создать эту ссылку руками (и всё даже будет работать), но правильнее использовать специально созданную для этих целей утилиту update-alternatives (в CentOS это просто alternatives , но есть симлинка update-alternatives , поэтому дальше будем оперировать именно этой командой, как универсальной для Debian/Ubuntu/CentOS/и т.д.).

Теперь, давайте зарегистрируем все доступные версии PHP с помощью этой команды:

Цифры 10, 20 и 30 — это приоритет. Он работает для автоматического выбора, если администратор сам не выбрал конкретную версию. Самое большое число определяет выбор "по умолчанию".

Проверим, что php теперь указывает на созданную командой симлинку:

Давайте разберемся, что же update-alternatives сделала для нас:

Как видно, она создала цепочку симлинок и теперь по требованию просто меняет промежуточную симлинку на нужный нам бинарь.

То есть, мы успешно настроили группу PHP в update-alternatives , где по умолчанию в автоматическом режиме выбран системный PHP. Сейчас у нас есть возможность переключить команду PHP на любую другую версию..

Давайте переключимся на PHP версии 5.6, которая идет в поставке с Plesk'ом:

Проверяем, что переключение произошло:

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

С помощью update-alternatives можно выбирать не только версию PHP, но и многие другие вещи, например разные версии phpunit или редактор по умолчанию в системе. Подход этот универсален для различных систем. Не изобретая своего велосипеда, используя существующие инструменты, вы можете быть уверенным, что не устроили для ваших коллег квеста “Ну почему оно так работает?!”. Настраивайте свою систему правильно.

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

У меня на сервере Debian установлены 2 версии php - 5.6 и 7.0. Для начала проверим, какая версия используется в данный момент:

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

Оказывается, что /usr/bin/php является символьной ссылкой. Посмотрим, куда она ведет:

Это еще одна символьная ссылка. Смотрим, куда ведет она:

На седьмую версию php. Заменим ее на 5.6, которая у меня установлена по адресу /usr/local/bin/php. Редактируем символьную ссылку:

Проверяем текущую версию php в консоли:

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

Можно было поступить и по-другому. При вызове php в консоли, имя проверяется в переменной $PATH. Посмотреть ее значения можно командой:

Директории проверяются в том порядке, как они перечислены. Где будет найдено первое совпадение, тот файл и будет использоваться. В моем случае директория /usr/bin, где жила символьная ссылка на php7.0 стоит раньше, чем /usr/local/bin, где расположена php5.6. Можно было просто поменять местами эти директории в PATH и версия по-умолчанию станет 5.6, так как ее бинарник php будет найден раньше.

Более гибко управлять версиями php в системе можно с помощью программы update-alternatives. Она может делать в том числе и то, что мы сейчас проделали, только автоматически, в зависимости от своих настроек. С ее помощью можно более гибко управлять версиями, задавать приоритеты использования той или иной версии, быстро их переключать в полуавтоматическом режиме.

Мне все это не надо, поэтому не стал сильно разбираться с ее работой, только познакомился с возможностями. Рассказываю о ней в качестве наводки для тех, кому захочется более подробно разобраться в этой теме. Она может быть актуальна, если у вас установлена какая-нибудь панель управления хостингом с разными версиями php. Например - plesk.

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

Обратите внимание, что следуя данной инструкции Вы измените версию php глобально, для всего сервера!

О том, как изменить версию php для отдельно взятого сайта / папки мы расскажем в конце данной статьи.

Сперва переходим в меню PHP Settings => PHP Version Switcher


Далее из выпадающего списка в меню Select PHP Version выбираем нужную нам версию и нажимаем кнопку Next


В новом окне вы увидите меню с возможностью ручного управления конфигурацией будущей версии php на сервере. В данном примере мы добавили для "сборки" libJPEG (для корректной обработки jpeg-изображений модулем gd).


После этого (или же, если Вас устраивает стандартная конфигурация) нажимаем кнопку Start Compiler in Background.

tail -f /var/log/php-rebuild.log

После завершения перезапускаем Apache

И проверяем версию


Теперь сразу переходим в меню PHP Settings => PHP Addons и нажимаем кнопку Install возле меню Install IonCube Loader



Панель CentOS Web Panel позволяет так же изменить версию php для отдельно взятого сайта, или даже для конкретной папки сайта.

Для этого сначала переходим в меню PHP Settings => PHP Selector


Если у Вас нужная версия не установлена (Not Installed) для Selector'а - в таком случае устанавливаем галочку справа от нужной версии, нажимаем, для начала, Install Dependencies, после завершения (проверяем через tail -f /var/log/php-dependencies.log в консоли сервера) снова устанавливаем галочку и нажимаем Start Compiler. Процесс компиляции можете наблюдать запустив команду

tail -f /var/log/php-selector-rebuild.log

После завершения процесса, переходим в папку, для которой нужно изменить версию php (непосредственно в консоли сервера или через файловый менеджер панели - File Management => Simple File Manager), открываем файл .htaccess (или создаем его, если такового нет) и вносим в него необходимую строку, в зависимости от требуемой версии php

Релиз PHP 8 состоялся 26 ноября 2020 года, и в этом посте мы покажем как установить новую версию или обновить старую версию PHP до 8.0.

Релиз PHP 8 содержит множество улучшений и изменений. По этому, прежде чем обновить версию PHP проверьте, что программы на сервере поддерживают последнюю версию php.

Установка PHP 8 на Centos 7/8

Установка PHP 8 как дефолтной версии на Centos 8 с заменой стандартной версии PHP:

Установка PHP 8 как дефолтной версии на Centos 7 с заменой стандартной версии PHP:

Чтобы установить любой дополнительный пакет PHP, используйте команду:

Установка PHP 8 на Ubuntu

Рассмотрим на примере Ubuntu 20.04. PHP 7.4 является версией PHP по умолчанию в репозиториях Ubuntu 20.04. Чтобы установить последнюю версию PHP, мы собираемся использовать репозитории Ondrej PPA.

Этот репозиторий содержит не только версии PHP но и расширения к ним. Но сначала давайте обновим ваши системные пакеты Ubuntu, установим некоторые зависимости и добавим репозиторий ppa:ondrej/php:

PHP 8 для Apache

Если вы используете веб-сервер Apache, установите PHP 8.0 с модулем Apache:.

Затем перезапускаем веб-сервер Apache, чтобы включить модуль:

Если вы хотите использовать веб-сервер Apache с PHP-FPM, выполните команду ниже, чтобы установить необходимые пакеты:

Поскольку PHP-FPM не включен по умолчанию, включить его можно выполнив команды:

Не забываем перезапустить апач, чтобы изменения вступили в силу:

PHP 8.0 для Nginx

Устанавливаем PHP и PHP-FPM, используя следующую команду:

Проверяем что все прошло успешно:

Мы должны увидеть что сервис запущен:

Обновление / Установка PHP 8 на Centos, Ubuntu, Debian & Windows

Проверяем, что PHP-FPM установлен

Чтобы Nginx мог обрабатывать файлы PHP, настраиваем блок сервера Nginx, обновив раздел сервера:

Не забываем перезапустить апач, чтобы изменения вступили в силу:

Установка PHP 8 для Debian

Добавляем APT-репозиторий пакетов PHP на свой Debian сервер и импортируем ключ:

После добавления репозитория, можно начать установку PHP 8.0 на Debian 10 | Debian 9:

PHP 8 на Windows

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

Далее, добавляем C: \ php в переменную окружения пути. Чтобы Windows могла найти PHP 8, вам необходимо изменить переменную среды path. Откройте «Настройки», введите «переменные среды» в поле поиска и откройте результат. Выберите вкладку «Дополнительно» и нажмите кнопку «Переменные среды».

Прокрутите список «Системные переменные» и нажмите «Путь», а затем кнопку «Изменить». Щелкните «Редактировать текст» и добавьте C: \ php в конец строки значения переменной (запомните точку с запятой).

На этом все. В некоторых случаях может потребоваться перезагрузка Windows.

Читайте также: