RHSCL PHP를 전 세계적으로 사용할 수 있게 만드는 가장 좋은 방법

RHSCL PHP를 전 세계적으로 사용할 수 있게 만드는 가장 좋은 방법

다음 URL을 사용하여 RHSCL 2를 설치했습니다.

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어느 것이 작동합니까? 그러나 추가 명령 없이 모든 사용자에 대해 실행하려면 어떻게 해야 합니까 ? 웹 서버가 이를 사용하고 일반 쉘을 사용하는 SSH 사용자를 사용할 수 있도록 전 세계적으로 사용 가능한 PHP 바이너리가 필요합니다.

답변1

소프트웨어 컬렉션을 현재 셸로 가져오는 방법(하위 셸을 시작하지 않음)은 "활성화" 파일을 소싱하는 것입니다.

예를 들어 Redhat 7 시스템의 rh-php56의 경우...

소스 /opt/rh/rh-php56/enable

이제 평소처럼 "php"를 실행하거나 맨페이지 "man php"를 읽을 수 있습니다.

그러면 현재 쉘 환경에 적절한 환경 변수가 추가됩니다. 개별 사용자는 .bashrc 파일에서 이 작업을 수행할 수 있으므로 SSH(비대화형 셸)에서 사용할 수 있습니다.

활성화 파일을 ".sh" 접미사를 사용하여 /etc/profile.d/에 복사(또는 심볼릭 링크)하여 모든 사용자에 대해 자동으로 활성화할 수도 있습니다.

예를 들어

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

환경 이상의 것이 필요한 경우(예: 데몬?) 이 작업을 주의하세요. 또는 해당 소프트웨어의 여러 버전이 시스템에 존재하는 경우(다른 소프트웨어/서비스와의 이전 버전과의 호환성을 위해) 버전 간에 상호 작용이 있을 수 있습니다. 또한 사용자는 '최신' 버전을 원하지 않거나 '기본' 시스템(예: /etc configs)이 소프트웨어 컬렉션 버전에 영향을 주지 않는 이유에 대해 혼란스러워할 수 있습니다.

Anthony Thyssen(아주 오래된 시스템 관리자)

관련 정보