欢迎光临
我们一直在努力

Linux7-配置php为系统变量的几种方法

下午接一客户电话说,他的linux系统php配置的是php7.3.1的版本,但通过Linux查询版本(php -v),确是php5.4.16,当时很是纳闷,我并没有给客户的机器配置php变量呀,怎么能用php -v查询到php的版本,登录机器开始排查问题,直接输入php -v命令,如下所示,确实提示是php5.4.16;

[root@localhost ~]# php -v
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

到这我有一点晕,这台景安的机器,开始就没安装过php5,怎么全局变量提示php的版本是5.4.16呢,我接连登录几台景安的机器全是一样的情形,难道是景安系统安装包的问题,他们默认集成了php5.4吗,还配置了php变量,我又登录几台腾讯云的机器,发现也存在同样的问题,事情到这里,想不出所以然来了,先不管这些,先排除问题再说。

首先打开/etc/profile跳转到最下面,看到底有没有配置php变量,答案是确定的,没有通过/etc/profile去配置php变量的,那只有打开/usr/bin目录看下,在目录下面看有没有建立的软链接或是直接把php的bin目录下面的文件全移过来了,通过查看/usr/bin目录看到以下文件全存在于这个目录中。

-rwxr-xr-x    1 root root   4618120 Oct 31 03:33 php
-rwxr-xr-x    1 root root   4596944 Oct 31 03:33 php-cgi
-rwxr-xr-x    1 root root      4524 Oct 31 03:33 php-config
-rwxr-xr-x    1 root root      4760 Oct 31 03:33 phpize

我们知道以上几个文件全是在php的bin目录下的,把这几个文件复制到了/usr/bin目录下面,那其时就是配置了php为全局变量了,先不管为啥这些文件会让复制过来,先解决问题再说,首先我们先删除掉这些文件

rm -rf /usr/bin/phar /usr/bin/phar.phar /usr/bin/php /usr/bin/php-cgi /usr/bin/php-config /usr/bin/phpize
#开始的二个文件也是在php下面的bin目录中存在的,一并删除

删除后再使用php -v命令,现在报错如下

[root@localhost ~]# php -v
-bash: /usr/bin/php: No such file or directory

看到上面的报错,说明我们删文件是删的正确的,既然现在系统不支持php变量了,那么我们下面就重新配置php为全局变量,配置php为全局变量通常用三种方式。

  • 通过配置软链接的方式配置php为全局变量
ln -s /usr/local/php/bin/php /usr/bin/php
#/usr/local/php 为php的安装目录,推荐这种方式,说白了只是建立了一个快捷方式
  • 在/etc/profile文件的末尾添加相应参数以配置php为全局变量,可以直接执行下面的命令,注:php安装目录为/usr/local/php
echo "export PATH=$PATH:/usr/local/php/bin" >> /etc/profile && source /etc/profile
  • 还有一种方法,那就是复制安装目录下面的bin文件名下面的全部文件到/usr/bin目录下面,这种方式让人感觉很笨,如果php要是升级版本那这些文件要在安装后重新复制才可以,要不就会和开头那样用全局命令一直提示是php5.4,复制命令如下;
[root@localhost ~]# cp -r /usr/local/php/bin/* /usr/bin/
cp: overwrite ‘/usr/bin/phar’? y
cp: overwrite ‘/usr/bin/phar.phar’? y
cp: overwrite ‘/usr/bin/php’? y
cp: overwrite ‘/usr/bin/php-cgi’? y
cp: overwrite ‘/usr/bin/php-config’? y
cp: overwrite ‘/usr/bin/phpize’? y

我是用的最上面的建立软链接的这种方式,建立后重新运行全局命令:php -v

[root@localhost ~]# ln -s /usr/local/php/bin/php /usr/bin/php
[root@localhost ~]# php -v
PHP 7.3.1 (cli) (built: Feb  5 2019 22:19:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
[root@localhost ~]# 

问题解决了,开始我认为是景安的系统安装包的问题导致的,但是腾讯云的机器也这样,这就搞不懂这是为啥了,难道是centos7默认集成的吗?

赞(0) 打赏
转载请注明出处:爱编程 » Linux7-配置php为系统变量的几种方法
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱编程、一个运维兼程序员的博客!

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏