Blogger Information
Blog 143
fans 1
comment 0
visits 439848
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
如何在CentOS下PHP多版本共存时指定命令行状态默认使用的PHP版本
弘德誉曦的博客
Original
976 people have browsed it

问题
在CentOS上安装了4个版本的PHP,但在命令行状态默认使用的php版本是最后安装的那个PHP版本,但我想指定命令行的PHP版本。
分析过程
1、多版本的话要先跟踪一下php命令是调用哪个目录的,可以使用

代码内容:
1
whereis php

找到后一般是个链接文件,删掉(或重命名)后重新建立一个新的链接文件到新版目录即可。【行不通,没发现有这个链接文件】
2、在 Linux 下执行 php 脚本时通常是可以使用以下命令:
#/usr/local/php/bin/php test.php

为简化输入可把此php执行程序 copy 到系统命令目录下:
#cp /usr/local/php/bin/php /usr/sbin/
【也行不通,没效果】
3、从环境变量入手

代码内容:
1
2
[root@lmg ~]# echo $PATH
/usr/local/php5/bin:/usr/local/php7/bin:/usr/local/php4/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mariadb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

发现问题,命令行默认使用的PHP版本正好在/usr/local/php5/bin这个目录里,这个地址放在环境变量的最前面,应该是它覆盖了后面的环境变量/usr/local/php7/bin:/usr/local/php4/bin:/usr/local/php/bin
解决方案
经过分析得知是以上第3个问题引起的,所以对应的解决方案如下。
把想要的PHP版本路径放在环境变量的最开始位置处。

代码内容:
01
02
03
04
05
06
07
08
09
10
11
12
# 编辑文件
[root@lmg ~]# vim /etc/profile
# 在文件最后修改为以下内容
export PATH=/usr/local/php7/bin:/usr/local/php4/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mariadb/bin:$PATH
# 保存退出
# 使环境变量生效
[root@lmg ~]# source /etc/profile
# 查看命令行的PHP版本
[root@lmg ~]# php -v
PHP 7.0.7 (cli) (built: Jun 22 2016 09:08:03) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

PHP版本为指定的 PHP 7.0.7 了,搞定。
附录
1、其实可以把php的环境变量全部取消,然后在/usr/sbin/目录建立一个软链接到相应的PHP执行程序(例如:/usr/local/php7/bin/php )就可以了。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post