通过Yum从Remi源安装PHP包后文件路径问题咨询
嘿,这个问题其实是Remi源的核心设计思路决定的,我给你好好拆解下:
支持多PHP版本共存:这是Remi源最关键的设计目的之一。系统自带的PHP版本通常偏老旧,而Remi允许你同时安装多个不同版本的PHP(比如PHP7.2、PHP7.4、PHP8.1)。如果所有版本都塞进默认路径(比如
/usr/bin、/etc/php.d),不同版本的文件会互相覆盖,直接导致系统环境混乱。把每个版本独立放在/opt/remi/phpXX/root/这类路径下,就能完美隔离各个PHP环境,你可以随时切换使用,互不干扰。避免破坏系统默认依赖:很多Linux发行版(比如CentOS、RHEL)的系统工具可能依赖自带的PHP版本,如果替换默认路径的PHP,很可能导致系统工具报错甚至无法运行。Remi的这种安装方式能保证系统默认PHP不受影响,你需要用Remi版本的PHP时,只需通过环境变量或软链接主动切换即可。
镜像默认路径的标准化结构:你会发现
/opt/remi/php72/root/下面的目录结构和系统默认路径完全一致——比如/opt/remi/php72/root/usr/bin对应默认的/usr/bin,/opt/remi/php72/root/etc/php.d对应默认的/etc/php.d。这种设计是为了让你在使用特定版本PHP时,能快速找到对应的配置文件和二进制文件,也方便php-config、phpize这类工具定位资源。
既然文件不在默认路径,你可以通过以下方式让系统识别并使用这个版本的PHP:
临时直接调用:直接使用对应路径下的PHP二进制文件,比如执行
/opt/remi/php72/root/usr/bin/php -v就能查看7.2版本的信息,安装插件后用这个命令执行脚本,插件就能正常加载。设置环境变量长期生效:把Remi PHP的bin路径添加到系统环境变量
PATH的最前面,让系统优先使用这个版本。编辑/etc/profile(系统级)或者~/.bashrc(用户级)文件,添加一行:export PATH=/opt/remi/php72/root/usr/bin:$PATH然后执行
source /etc/profile或source ~/.bashrc让配置生效,之后直接输入php命令就会调用7.2版本了。检查插件配置路径:每个版本的
php.ini在/opt/remi/php72/root/etc/php.ini,插件的配置文件通常存放在/opt/remi/php72/root/etc/php.d/目录下。如果安装了插件但没激活,检查下插件的.ini文件是否在这个目录里,并且里面的extension=xxx.so配置是否指向该版本对应的扩展文件(比如/opt/remi/php72/root/usr/lib64/php/modules/xxx.so)。用Remi的切换工具简化操作:Remi源还提供了
php-switcher工具(可能需要单独安装),它能帮你快速切换系统默认的PHP版本,自动配置环境变量和软链接,非常省心。
内容的提问来源于stack exchange,提问作者Cesc

