如何更改Ubuntu 14.04上的php cli版本?

如何更改Ubuntu 14.04上的php cli版本?,php,linux,ubuntu,Php,Linux,Ubuntu,我刚开始使用Linux,在篡改时破坏了一些php设置 如果执行包含以下内容的php脚本:phpinfo()它将php版本显示为5.6, 但是通过命令行,如果我运行php-v,它将返回7.0版本 我希望两个版本都匹配。 如何修复命令行路径以同时使用php 5.6?您可以尝试在终端命令行上将路径设置为正确的php版本: set PATH="/usr/bin/php5.6/bin:$PATH" 修改路径以匹配您自己的PHP5.6路径(即,如果首先安装,它可能类似于“/usr/bin/PHP”) 末尾

我刚开始使用Linux,在篡改时破坏了一些php设置

如果执行包含以下内容的php脚本:
phpinfo()它将php版本显示为5.6,
但是通过命令行,如果我运行
php-v
,它将返回7.0版本

我希望两个版本都匹配。

如何修复命令行路径以同时使用php 5.6?

您可以尝试在终端命令行上将路径设置为正确的php版本:

set PATH="/usr/bin/php5.6/bin:$PATH"
修改路径以匹配您自己的PHP5.6路径(即,如果首先安装,它可能类似于“/usr/bin/PHP”)

末尾的“$PATH”追加了当前路径值,因此不要忘记使用它

sudo update-alternatives --set php /usr/bin/php5.6

请参阅:

来自PHP7.1=>PHP5.6

sudo update-alternatives --set php /usr/bin/php5.6
从PHP5.6=>PHP7.1

sudo update-alternatives --set php /usr/bin/php7.1
您可以根据需要更改版本

你可以查一下

问候

这一解释基于Ubuntu 16.04,但也适用于其他版本 这里的大多数答案都通过使用命令来操作php版本

sudo update-alternatives --set ...
虽然这个命令非常有用,但它从未解释过它的确切功能。下面是解释,包括备份和一些选项:

获取信息
  • 命令
    updatealternations
    显示或更改位于可选方向的符号链接,该方向在Ubuntu中通常定义为
    /etc/alternations
    ,但也可以更改
  • 可以使用命令
    更新备选方案--help
    显示与
    更新备选方案相关的完整选项列表,可以使用
    手动更新备选方案
    显示更深入的解释
  • 由于命令
    updatealternations
    主要用于更改特殊文件夹中的符号链接,因此也可以使用常用命令显示该文件夹的内容,下面显示以
    php
    开头的所有项目:
  • 要使用命令
    updatealternations
    显示项目,请使用以下命令:
  • 要显示更多详细信息,您可以执行以下操作:
最后,我们仍然想知道可以链接哪些php版本。以下命令显示了
/usr/bin/
中当前可用php版本的列表:

备份信息
  • 要对这些符号链接进行信息备份,只需将列表保存在文件中,并使用此命令将其保存在桌面上(根据需要调整文件名
    alternations php.txt
    ):
如果愿意,您仍然可以添加命令
ls
的结果,如上图所示:

$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt
。。。以及可用的PHP版本:

$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt
$ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt
更改命令行的PHP版本
  • 如果我们首先过滤
    ,则
    /etc/alternations/php*/
    中的列表包括3行:
  • 一方面,为整个系统提供一致的链接可能很有用,另一方面,系统上已经存在多个php版本这一事实意味着它用于开发和php for
    cli
    web
    cgi
    可以进行不同的配置。
    必须更改哪个符号链接?
    PHP for web通常不使用
    /etc/alternations
    中的符号链接进行配置,
    cli
    (命令行)通常不使用cgi版本或cgi配置。因此,可以假设仅更改
    php
    的符号链接对命令行有效,可能不需要更改
    php cgi
    php cgi bin
    。 默认情况下,通常会链接最新版本,因此下面的命令使用的是从
    /usr/bin/
    列表中获取的旧版本:
控制 检查更改:

更改已被接受,使用的版本现在是旧版本

  • 现在,我们检查手册页的编写版本:

这意味着PHP版本与手册页一致,命令
man PHP
返回当前PHP版本的正确描述,并且不需要手动调整手册页

以下是更具交互性的方式:

update-alternatives --config php

您将看到所有可用版本的列表,并选择其中一个

更改前检查您拥有的内容

 php -v
将所有内容更改为PHP7.2

sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
普莱斯克 也就是说,如果您的服务器是使用Plesk管理的(就像我在搜索这个问题时一样),那么您可能在
/usr/bin

在本例中,您的PHP版本将位于
/opt/plesk/PHP
中,因此您可以作为超级用户使用以下命令(如果您不是超级用户,请先运行
su
)来设置PHP CLI版本(在本例中为7.3):

注销并重新登录,然后。。。。瞧

笔记
  • 您必须具有超级用户权限才能运行此操作
  • 如果要将CLI设置为不同的版本,只需将命令中的
    7.3
    替换为所需的版本(在OP的情况下为
    5.6
  • 如果您想检查Plesk有哪些版本可供您使用,只需运行:
    ls/opt/Plesk/php

  • 来源:

    检查这两个ini文件,在不改变或添加任何细节的情况下检查问题的措辞。英语不太可能是作者的第一语言。希望这能有所帮助。我爱你,直到死亡。这非常好。我只有PHP 7.0,所以要安装其他。真正的MVP会给出详细的答案,如these@Sunhat谢谢你答案的p-投票是值得赞赏的:)应该是新的答案,这样更好,更不容易出错和浪费时间
    $ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt
    $ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt
    
    $ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt
    $ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt
    
     $ ls -al /etc/alternatives/php*  
    lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2  
    lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2  
    lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
    
    $ sudo update-alternatives --set php /usr/bin/php7.0
    update-alternatives: using /usr/bin/php7.0 to provide /usr/bin/php (php) in manual mode
    
    $: php -v
    PHP 7.0.29-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr  5 2018 08:34:50) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
        with Zend OPcache v7.0.29-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies
    
    $: man php
    ... [SCROLL DOWN]
    VERSION INFORMATION
       This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1.
    COPYRIGHT
    ...
    
    update-alternatives --config php
    
     php -v
    
    sudo update-alternatives --set php /usr/bin/php7.2
    sudo update-alternatives --set phar /usr/bin/phar7.2
    sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
    sudo update-alternatives --set phpize /usr/bin/phpize7.2
    sudo update-alternatives --set php-config /usr/bin/php-config7.2
    
    echo "alias php='/opt/plesk/php/7.3/bin/php'" >> ~/.bashrc