使 RHSCL PHP 全球可用的最佳方式

Ozz*_*zzy 11 php installation redhat php56

我已经使用以下网址安装了 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 phprh-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
Run Code Online (Sandbox Code Playgroud)

将这些二进制文件放入/usr/bin通常对所有用户全局可用的任何其他目录中的最佳方法是什么?

安装软件包时我是否错过了一个步骤,这就是为什么它在全球范围内不可用?或者这只是使用 RHSCL 时发生的情况?

我已经测试了这些文件夹中的二进制文件,它们在我运行php -v时可以正常工作,因此工作正常。

我的第一个想法是cp进入/bin或者/usr/bin但也许有一种官方的方式来做我的要求?

编辑

无法评论,没有代表...来自我发布的链接的第 3 章,它说软件集合包必须像这样运行:

scl enable rh-php56 'php -v'

哪个有效......但是我如何让它在$ php -v没有额外命令的情况下为所有用户运行。我需要全局可用的 php 二进制文件,以便网络服务器可以使用它,并且 ssh 用户可以使用普通 shell。

ant*_*ony 17

将软件集合导入当前 shell(而不是启动子 shell)的方法是获取“启用”文件。

例如对于 Redhat 7 机器上的 rh-php56 ......

source /opt/rh/rh-php56/enable

您现在可以正常运行“php”,或阅读联机帮助页“man php”。

这会将适当的环境变量添加到当前的 shell 环境中。个人用户可以在 .bashrc 文件中执行此操作,从而可以从 SSH(非交互式 shell)获得它

您还可以将启用文件复制(或符号链接)到带有“.sh”后缀的 /etc/profile.d/ 中,以便为所有用户自动启用它。

例如

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

如果需要的不仅仅是环境(例如守护进程?),请小心执行此操作。或者,如果系统上存在该软件的多个版本(为了与其他软件/服务向后兼容),因为版本之间可能存在交互。此外,用户可能不想要“最新”版本,或者对“基本”系统(例如:/etc configs)为什么不影响软件集合版本感到困惑。

Anthony Thyssen(非常老的系统管理员)