
Я пытаюсь настроить сервер CentOS с несколькими версиями php.
Мне удалось сделать это до сих пор, установив коллекции программного обеспечения REMI php56
и php70
и я запустил Apache с разными версиями и т. д.
Пока все хорошо. Ввод php
в командной строке не дает никакой информации, но php56 -v
дает, например. Пока это ожидаемое поведение.
У меня теперь есть несколько вопросов:
1 - Мне теперь интересно, что будет с программным обеспечением, которое имеет скрипты, которые используют php
командную строку. Например, скрипты Composer? Очевидно, если скрипты попытаются запустить командную строку php, они потерпят неудачу.
1а. Правильно ли предположить, что мне нужно создать символическую связь между php
и фактическим, php70
например?
1b. Есть ли другие исполняемые файлы, которые также должны быть связаны? Я видел где-то, что phar
было связано, и некоторые другие вещи. Как мне узнать все файлы, которые должны быть связаны?
2 - Если я попытаюсь установить phpmyadmin
через YUM, он ожидает загрузки php 5.4
пакета. Это само по себе вызывает у меня много вопросов. Что мне делать в этом случае, потому что я определенно не хочу, чтобы 5.4 была где-либо рядом с моей системой. И я думаю, очевидно, что если я сделаю шаг 1a выше, YUM все равно запросит загрузку зависимости php. Есть ли способ предотвратить это или, возможно, "объяснить" YUM, что php уже установлен как php70, скажем? Или просто игнорировать зависимость?
Извините, если это глупые вопросы, у меня ограниченный опыт работы с Linux и определенно недостаточно понимания YUM. Кроме того, это первый раз, когда я сталкиваюсь с проблемой нескольких версий. Спасибо!
ОБНОВЛЯТЬ:
Я понимаю, что я установил пакеты, специфичные для версии, и это в основном преднамеренно, потому что я хотел несколько версий для Apache. Я полагаю, вопрос в том, как обращаться с другим программным обеспечением, которое хочет запускать php в командной строке, как обращаться с зависимостями YUM php и каков обычный подход для этого сценария?
решение1
Уведомление: PHP 5.6 и 7.0 достигли конца своего жизненного цикла и поддерживаются сообществом тольколучшее усилие; Я настоятельно рекомендую использоватьподдерживаемые версии(7.1+).
1 - Теперь мне интересно, что будет с программным обеспечением, в котором есть скрипты, использующие PHP в командной строке.
Поскольку большинство скриптов используют "/usr/bin/env php", вам просто нужно включить нужную версию перед запуском скрипта.
module load php71
php -v
composer install
1а. Правильно ли предположить, что мне нужно создать символическую ссылку между php и фактическим php70, например?
Да, это будет работать, вы также можете установитьphp56-syspathsИЛИphp70-syspathsпакет, который сделает всю работу за вас
2 - Если я попытаюсь установить phpmyadmin через YUM..
Упакованные приложения используют PHP по умолчанию и не знают об установленной SCL.
Для нескольких версий установка будет намного проще:
- версия по умолчанию (пакеты php-*) из репозитория remi-php##
- альтернативная версия (пакеты php##-php*) из репозитория remi-safe
СмотритеИнструкции мастера.
Уведомление: приложения в репозитории EPEL (например, phpMyAdmin, GLPI, Wordpress, roundcubemail...) не будут работать с последней версией PHP (7+), поэтому вам также придется взять последнюю версию из репозитория "remi", если она доступна.