Найкращий спосіб зробити RHSCL PHP доступним у всьому світі


10

Я встановив RHSCL 2 за допомогою наступної URL-адреси:

https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/2/html/2.0_Release_Notes/chap-Installation.html

за допомогою менеджера підписок RedHat.

Я тоді побіг yum remove php*за нимyum install rh-php56

Все пройшло гладко, за винятком того, що PHP ніде не зустрічається. Потім я побіг find / -name phpі знайшов rh-php56у таких каталогах:

/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/register.content/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/root/usr/bin/php
/opt/rh/rh-php56/root/usr/lib64/php
/opt/rh/rh-php56/root/usr/share/php

Який найкращий спосіб занести ці бінарні файли в /usr/binбудь-який інший каталог, який зазвичай доступний у всьому світі для всіх користувачів?

Чи пропустив я крок під час встановлення пакетів, тому він недоступний у всьому світі? Або це лише те, що відбувається при використанні RHSCL?

Я перевірив двійкові файли в цих папках, і вони працюють, коли я запускаю, php -vтак що це працює нормально.

Перша моя думка - просто cpвступити /binабо, /usr/binале, можливо, існує офіційний спосіб робити те, що я прошу?

редагувати

Не можу коментувати, не відповідати ... з розділу 3 посилання, яке я опублікував, в ньому йдеться про те, що пакети програмного збору повинні запускатися так:

scl enable rh-php56 'php -v'

Що працює ... однак як змусити його працювати для всіх користувачів, як, $ php -vбез додаткових команд. Мені потрібні бінарні файли php у всьому світі, щоб веб-сервери могли ним користуватися та обшукувати користувачів із звичайними оболонками.


Ви забули прочитати розділ 3 посилання, яке ви дали ....
Свен

1
Свен ... я сам це прочитав .. і все, що він має, - це запуск підрозділу з наявної колекції. У ньому НЕ деталізовано, як зробити колекцію доступною за замовчуванням, не потребуючи користувача запускати підкожу. Я детально розкажу про правильне рішення нижче.
Антоній

Sven, це означало б, що кожному користувачеві та кожному демону потрібно запустити scl enable rh-php56 command, що є складним. Увімкнення цього глобально за допомогою відповіді @ antofthy набагато елегантніше.
Стефан Ласєвський

Відповіді:


16

Спосіб імпорту колекції програмного забезпечення у вашу поточну оболонку (а не запуск підкошти) - це джерело файлу "enable".

Наприклад, для rh-php56 на машині Redhat 7 ...

source / opt / rh / rh-php56 / enable

Тепер ви можете запускати "php" або читати manpages "man php" як звичайне.

що додасть відповідні змінні середовища до поточного середовища оболонок. Окремі користувачі можуть це зробити у файлах .bashrc, дозволяючи йому бути доступним із SSH (неінтерактивні оболонки)

Ви також можете скопіювати (або символізувати посилання) файл увімкнення у /etc/profile.d/ з суфіксом ".sh", щоб автоматично включити його для ВСІХ користувачів.

Наприклад

ln -s / opt / rh / rh-php56 / enable /etc/profile.d/rh-php56.sh

Будьте обережні, роблячи це, якщо потрібно більше середовища (наприклад, демони?). Або якщо в системі є декілька версій цього програмного забезпечення (для зворотної сумісності з іншим програмним забезпеченням / послугами), оскільки може бути взаємодія між версіями. Також користувачі можуть не захотіти "останньої" версії або заплутатися в тому, чому система "база" (конфігурації EG: / і т.д.) не впливає на версію програмного збору програмного забезпечення.

Ентоні Тіссен (дуже стара система адміністратора)


який екземпляр php.ini використовує цей метод?
Дарванен

1
Зчитування файлу php.ini важко кодується в програмі php. У наведеному вище прикладі це "/etc/opt/rh/rh-php56/php.ini". Ви можете перевірити це за допомогою сценарію PHP <? Php phpinfo ()?> Або з веб-сторінки ".php", або за допомогою команди CLI PHP.
Антоній

А-а-а ... я перезапустив httpd замість служби php-fpm. Опублікувати тут на випадок, якщо хтось інший застрягне таким чином.
Дарванен

Це насправді достатньо для включення пакету SCL? access.redhat.com/solutions/527703, здається, створює баш сценарій, який робить щось на кшталтsource scl_source enable python33
Стефан Ласєскі

Повинно бути достатнім Це в основному задає середовище для використання конкретної версії над версією системи. Але тільки всередині підрозділу запущено.
Антоній
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.