Назад | Перейти на главную страницу

Ошибка обновления PHP, CentOS 6.7

Системная информация

Операционная система CentOS Linux 6.7

Ядро и ЦП Linux 2.6.32-042stab108.1 на x86_64

yum repolist enabled

только те, которые я добавил вручную

  • база - CentOS-6 -
  • Базовый epel - Дополнительные пакеты для Enterprise Linux 6 - x86_64
  • экстры - CentOS-6 - Дополнительно
  • ius - Пакеты сообщества IUS для Enterprise Linux 6 - x86_64
  • mod-pagespeed - мод-pagespeed
  • remi-safe - репозиторий Safe Remi RPM для Enterprise Linux 6 - x86_64
  • rhscl-php55-epel-6-x86_64 - PHP 5.5.21 -
  • Обновления epel-6-x86_64 - CentOS-6 - Обновления
  • virtualmin - RHEL / CentOS / Scientific 6 - x86_64 -
  • Virtualmin virtualmin-universal - нейтральное распределение Virtualmin
  • Пакеты vz-base - vz-base vz-updates - vz-updates

доступные установленные версии


я пробовал следующее (используя виртуальный мин)

  1. включен 5.5.30 для определенного каталога, и это не сработало, получил эту ошибку от virtualmin Этот виртуальный сервер использует режим выполнения mod_php для PHP, что не позволяет выбирать версию для каждого каталога.
  2. включил версию для конкретного каталога home/<domain>/domains/<subdomain>.<domain>.com/public_html/public , и phpinfo(); returns 5.3.3 version
  3. пытался yum replace php-common --replace-with=php55-php-common получил слишком много пакетов в WARNING: Unable to resolve all providers и не продолжил.
  4. пытался удалить версию 5.3, но другой код php ломается, поэтому я не решаюсь заменить эту версию
  5. Просматривал в Интернете ответы только для того, чтобы узнать, что более половины вещей, которые я читаю, сломаны, репозитории устарели или конфликтуют с другими пакетами, когда я пытаюсь yum upgrade php

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

Обратите внимание, что Apache не может управлять различными версиями PHP (используя mod_php), поэтому вы можете установить только «php» ИЛИ «php55-php»

Чтобы включить разные версии PHP на сервере Apache HTTPD, вам необходимо использовать «FPM».

В Apache 2.2 (в CentOS 6.x) вы должны использовать mod_proxy_fastcgi (доступно в EPEL, перенесено с версии 2.4) и директиву ProxyPass.

Проще с Apache 2.4 (в CentOS 7.x), который поддерживает SetHandler для прокси fastcgi.

Некоторые примеры:

Мы рекомендуем вам использовать версии пакетов SCL, чтобы версии PHP могли мирно сосуществовать друг с другом и не вызывать конфликтов, с которыми вы сталкиваетесь. У меня есть пакеты Remi PHP 5.6.15, работающие на нашем новом сервере под Virtualmin, и он работает нормально (мне пришлось настроить код обнаружения в php-lib.pl, хотя это не понадобится через несколько дней когда выйдет новый Virtualmin).

Кроме того, вы должны использовать режим выполнения fcgid и не mod_php. mod_php может существовать только в одной версии в одном экземпляре Apache и никогда не будет работать с несколькими версиями. fcgid - это режим выполнения по умолчанию в системе Virtualmin, установленной с install.sh, но его можно настроить в Системных настройках: Шаблоны сервера: Имя шаблона: Веб-сайт Apache. «Режим выполнения PHP по умолчанию» - это вариант, который вам нужен, а FCGId - правильное значение для использования нескольких версий PHP (и по ряду других веских причин).

Текущая версия Virtualmin еще не поддерживает все пакеты SCL PHP, но следующая версия будет легко обрабатывать произвольные версии (и, вероятно, будет иметь возможность запрашивать команду SCL, чтобы выяснить, какая версия PHP вам больше нравится; я не Не знаю, сколько из этого было реализовано).

На наших форумах за последние несколько недель было довольно много дискуссий на эту тему, так как SCL получил больше версий PHP, а поддержка Virtualmin для пакетов SCL была расширена.

Здесь есть несколько документов (я не уверен, что Эрик еще обновился, чтобы отразить последние изменения в SCL, но они скоро появятся, если не еще):

http://www.virtualmin.com/documentation/web/multiplephp