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

时间:2017-03-27 07:49:33

标签: php linux ubuntu

我是使用Linux的新手,我在篡改时打破了一些php设置。

如果我执行一个包含:phpinfo();的php脚本,它会将php版本显示为5.6, 但是通过命令行,如果我运行php -v,它将返回7.0版本。

我希望两个版本都匹配 如何修复我的命令行PATH也使用php 5.6?

6 个答案:

答案 0 :(得分:93)

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

请参阅:Source

答案 1 :(得分:23)

从PHP 7.1 => PHP 5.6

Private Sub ChkEndDates()
    Dim ws As Worksheet
    Dim cell As Range
    Dim rowCount as Long
    For Each ws in Worksheets
        If ws.Name <> '"summary page" Then
            rowCount = WorksheetFunction.CountA(ws.Range("B:B"))
            For i = 1 To rowCount
                If (ws.Cells(i, 2).Value - Date < 30) And (ws.Cells(i, 2).Value > Date) Then
                    MsgBox ws.Name
                    'And maybe push into the summary page
                End If
            Next i
        End If
    Next ws
End Sub

从PHP 5.6 =&gt; PHP 7.1

let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: 0))
path.addLine(to: CGPoint(x: 160, y: 90))
path.addLine(to: CGPoint(x: 0, y: 180))
path.close()
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
triangleView.layer.mask = triangleLayer

您可以根据需要更改版本。

您可以查看tutorial

此致!!

答案 2 :(得分:17)

此解释基于Ubuntu 16.04,但预计也适用于其他版本

这里的大多数答案都是使用命令

来操纵php版本
sudo update-alternatives --set ...

虽然命令非常有用,但它从未解释过它的确切功能。这里有解释,包括备份和一些选项:

获取信息

  • 命令update-alternatives正在显示或更改符号链接,这些符号链接位于Ubuntu中的替代方向,通常定义为/etc/alternatives,但也可以更改。
  • 可以使用update-alternatives命令显示与update-alternatives --help相关的完整选项列表,可以使用man update-alternatives显示更深入的解释。
  • 由于命令update-alternatives是特殊文件夹中的主要更改符号链接,因此该文件夹的内容也可以使用常用命令显示,并显示以php开头的所有项目:
 $ 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 31 Jan 19 02:58 /etc/alternatives/php.1.gz -> /usr/share/man/man1/php7.2.1.gz  
lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2  
lrwxrwxrwx 1 root root 35 Jan 19 03:00 /etc/alternatives/php-cgi.1.gz -> /usr/share/man/man1/php-cgi7.2.1.gz 
lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
  • 使用以下命令显示项目update-alternatives
$ update-alternatives --list php  
/usr/bin/php7.0  
/usr/bin/php7.2
  • 显示更多详细信息,您可以执行此操作:
$ update-alternatives --display php
php - auto mode
  link best version is /usr/bin/php7.2
  link currently points to /usr/bin/php7.2
  link php is /usr/bin/php
  slave php.1.gz is /usr/share/man/man1/php.1.gz
/usr/bin/php7.0 - priority 70
  slave php.1.gz: /usr/share/man/man1/php7.0.1.gz
/usr/bin/php7.2 - priority 72
  slave php.1.gz: /usr/share/man/man1/php7.2.1.gz

最后,我们仍然想知道我们可以链接哪些php版本。以下命令显示/usr/bin/中当前可用的php版本列表:

$ ls -al /usr/bin/php*
lrwxrwxrwx 1 root root      21 Jan  1 19:47 /usr/bin/php -> /etc/alternatives/php
-rwxr-xr-x 1 root root 4385840 Apr  5 18:13 /usr/bin/php7.0
-rwxr-xr-x 1 root root 4875488 Apr  5 18:10 /usr/bin/php7.2
lrwxrwxrwx 1 root root      25 Jan  1 19:47 /usr/bin/php-cgi -> /etc/alternatives/php-cgi
-rwxr-xr-x 1 root root 4279672 Apr  5 18:13 /usr/bin/php-cgi7.0
-rwxr-xr-x 1 root root 4769272 Apr  5 18:10 /usr/bin/php-cgi7.2
-rwxr-xr-x 1 root root     663 Feb 29  2016 /usr/bin/phpunit

备份信息

  • 要对这些符号链接进行信息备份,只需将列表保存在文件中,然后使用此命令将其保存在桌面上(根据需要调整文件名alternatives-php.txt):
$ echo "command: update-alternatives --list php" > ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-php.txt 
$ echo "command: update-alternatives --display php" >> ~/Desktop/alternatives-php.txt
$ update-alternatives --display php >> ~/Desktop/alternatives-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版本

  • 如果我们首先过滤man - 文档,则/etc/alternatives/php*/中的列表包含3行:
 $ 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
  • 虽然一方面为整个系统提供一致的链接可能是有用的另一方面,系统上已存在的几个php版本意味着它用于开发和php用于{ {1}},cliweb可以配置不同 哪个符号链接必须更改?
    PHP for web通常不是通过使用cgi中的符号链接来配置的,而/etc/alternatives(命令行)通常不使用cgi-version或cgi-configuration。因此可以假设仅更改cli的符号链接将适用于命令行,可能不需要更改phpphp-cgi。 通常最新版本是默认链接的,因此下面的命令使用从php-cgi-bin中的列表中获取的旧版本:
/usr/bin/

控制

检查更改:

$ 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
     

此更改已被接受,现在使用的版本较旧。

  • 现在我们检查man-page的编写版本:
$: 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

这意味着PHP版本与man-page一致,命令$: man php ... [SCROLL DOWN] VERSION INFORMATION This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1. COPYRIGHT ... 返回当前php-version的正确描述,没有关于man-page的手动调整< /强>

答案 3 :(得分:4)

这是一种更具交互性的方式:

update-alternatives --config php

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

答案 4 :(得分:1)

Plesk

只需说一句,如果您的服务器是使用 Plesk 进行管理的(就像我正在搜索此问题时一样),那么您在/usr/bin中可能没有更高版本的PHP

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

echo "alias php='/opt/plesk/php/7.3/bin/php'" >> ~/.bashrc

注销并重新登录,然后..瞧!

注释

  1. 您必须具有超级用户权限才能运行此功能
  2. 如果要将CLI设置为其他版本,则只需将命令中的7.3替换为所需的任何版本(对于OP,则为5.6
  3. 如果要检查Plesk可以使用的版本,只需运行:ls /opt/plesk/php

来源:Plesk Support

答案 5 :(得分:0)

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

set PATH="/usr/bin/php5.6/bin:$PATH"

修改路径以匹配您自己的PHP 5.6路径(即,如果它首先安装,它可能类似于“/ usr / bin / php”)。

末尾的“$ PATH”会附加当前路径值,所以不要忘记使用它。