Najlepszy sposób, aby RHSCL PHP był dostępny na całym świecie

10

Zainstalowałem RHSCL 2 przy użyciu następującego adresu URL:

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

za pomocą menedżera subskrypcji RedHat.

Potem pobiegłem yum remove php*za mnąyum install rh-php56

Wszystko poszło gładko, z wyjątkiem tego, że nigdzie nie znaleziono PHP. Następnie uruchomiłem find / -name phpi znalazłem rh-php56w następujących katalogach:

/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

Jaki jest najlepszy sposób na przeniesienie tych plików binarnych do /usr/bindowolnego innego katalogu, który jest zazwyczaj globalnie dostępny dla wszystkich użytkowników?

Czy przegapiłem krok podczas instalowania pakietów, dlatego nie jest on dostępny na całym świecie? A może tak właśnie dzieje się podczas korzystania z RHSCL?

Testowałem pliki binarne w tych folderach i działają one po uruchomieniu, php -vwięc działa dobrze.

Moja pierwsza myśl jest tylko cpdo /binalbo /usr/binale może jest oficjalnym sposób do tego, co pytam?

edytować

Nie mogę komentować, nie ma rep ... z rozdziału 3 linku, który opublikowałem, mówi, że pakiety kolekcji oprogramowania muszą być uruchomione w następujący sposób:

scl enable rh-php56 'php -v'

Co działa ... ale jak mam go uruchomić dla wszystkich użytkowników, tak jak $ php -vbez dodatkowych poleceń. Potrzebuję globalnie dostępnych plików binarnych php, aby serwery WWW mogły go używać i użytkowników ssh z normalnymi powłokami.

Ozzy
źródło
Zapomniałeś przeczytać rozdział 3 linku, który podałeś ....
Sven
1
Sven ... Sam to przeczytałem ... i wszystko, co ma, to uruchomienie podpowłoki z udostępnioną kolekcją. NIE opisuje szczegółowo, jak domyślnie udostępnić kolekcję bez potrzeby uruchamiania podpowłoki. Poniżej opiszę właściwe rozwiązanie.
Anthony
Sven, oznaczałoby to, że każdy użytkownik i każdy demon musiałby uruchomić scl enable rh-php56 command, co jest skomplikowane. Włączenie go globalnie za pomocą odpowiedzi @ antofthy jest znacznie bardziej eleganckie.
Stefan Lasiewski

Odpowiedzi:

16

Sposobem na zaimportowanie kolekcji oprogramowania do bieżącej powłoki (bez uruchamiania podpowłoki) jest pobranie pliku „enable”.

Na przykład dla rh-php56 na maszynie Redhat 7 ...

source / opt / rh / rh-php56 / enable

Możesz teraz uruchomić „php” lub normalnie czytać strony podręcznika „man php”.

to doda odpowiednie zmienne środowiskowe do bieżącego środowiska powłok. Poszczególni użytkownicy mogą to zrobić w plikach .bashrc, dzięki czemu może być dostępny z SSH (powłoki nieinteraktywne)

Możesz także skopiować (lub dowiązanie symboliczne) plik włączający do /etc/profile.d/ z sufiksem „.sh”, aby automatycznie włączyć go dla WSZYSTKICH użytkowników.

Na przykład

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

Zrób to, jeśli potrzebujesz czegoś więcej niż środowiska (np. Demonów?). Lub jeśli w systemie występuje wiele wersji tego oprogramowania (w celu zapewnienia wstecznej kompatybilności z innym oprogramowaniem / usługami), ponieważ mogą występować interakcje między wersjami. Również użytkownicy mogą nie chcieć „najnowszej” wersji lub mogą się mylić, dlaczego system „podstawowy” (np. Config / etc) nie wpływa na wersję kolekcji oprogramowania.

Anthony Thyssen (bardzo stary administrator systemu)

Anthony
źródło
które wystąpienie php.ini wywołuje ta metoda?
Darvanen,
1
Odczytany plik php.ini jest na stałe zakodowany w programie php. W powyższym przykładzie jest to „/etc/opt/rh/rh-php56/php.ini”. Możesz to sprawdzić za pomocą skryptu PHP <? Php phpinfo ()?> Albo ze strony internetowej „.php”, albo za pomocą komendy CLI PHP.
Anthony
Ahhh ... Ponownie uruchamiałem httpd zamiast usługi php-fpm. Publikowanie tutaj na wypadek, gdyby ktokolwiek utknął w ten sposób.
Darvanen,
Czy to faktycznie wystarcza, aby włączyć pakiet SCL? access.redhat.com/solutions/527703 wydaje się tworzyć skrypt bash, który robi coś takiegosource scl_source enable python33
Stefan Lasiewski
Powinno wystarczyć. Zasadniczo ustawia środowisko do korzystania z konkretnej wersji w stosunku do wersji systemowej. Ale zaczęło się tylko w podpowłoce.
Anthony