使RHSCL PHP在全球范围内可用的最佳方法


10

我已经使用以下网址安装了RHSCL 2:

https://access.redhat.com/documentation/zh-CN/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二进制文件,以便Web服务器可以使用它并使用普通shell来ssh用户。


你忘了看你给的链接的第3章....
斯文

1
斯文...我自己读了..而它所拥有的只是启动一个子外壳,并提供了可用的收藏。它没有详细说明如何默认情况下使集合可用而不需要用户运行子shell。我将在下面详细说明适当的解决方案。
安东尼

Sven,这意味着每个用户和每个守护程序都需要运行scl enable rh-php56 command,这很复杂。通过@antofthy的答案全局启用它更加优雅。
Stefan Lasiewski '16

Answers:


16

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

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

来源/ opt / rh / rh-php56 / enable

现在,您可以正常运行“ php”或阅读手册页“ man php”。

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

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

例如

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

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

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


该方法调用哪个php.ini实例?
Darvanen '16

1
读取的php.ini文件被硬编码到php程序中。在上面的示例中,它是“ /etc/opt/rh/rh-php56/php.ini”。您可以使用PHP脚本<?php phpinfo()?>从“ .php”网页或CLI PHP命令中进行验证。
安东尼

啊...我正在重新启动httpd而不是php-fpm服务。张贴在这里,以防其他人陷入困境。
Darvanen

这实际上足以启用SCL包吗?access.redhat.com/solutions/527703似乎创建了一个bash脚本,其功能类似于source scl_source enable python33
Stefan Lasiewski

应该足够了。它基本上将环境设置为使用特定版本而不是系统版本。但是只能在子shell内启动。
安东尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.