我是使用Linux的新手,我在篡改时打破了一些php设置。
如果我执行一个包含:phpinfo();
的php脚本,它会将php版本显示为5.6,
但是通过命令行,如果我运行php -v
,它将返回7.0版本。
我希望两个版本都匹配 如何修复我的命令行PATH也使用php 5.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)
这里的大多数答案都是使用命令
来操纵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
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
cli
和web
可以配置不同
哪个符号链接必须更改? cgi
中的符号链接来配置的,而/etc/alternatives
(命令行)通常不使用cgi-version或cgi-configuration。因此可以假设仅更改cli
的符号链接将适用于命令行,可能不需要更改php
和php-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
此更改已被接受,现在使用的版本较旧。
$: 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 进行管理的(就像我正在搜索此问题时一样),那么您在/usr/bin
中可能没有更高版本的PHP >
在这种情况下,您的PHP版本将位于/opt/plesk/php
中,因此您可以使用以下命令作为超级用户(如果您不是超级用户,请首先运行su
)您的PHP CLI版本(在此示例中为7.3):
echo "alias php='/opt/plesk/php/7.3/bin/php'" >> ~/.bashrc
注销并重新登录,然后..瞧!
7.3
替换为所需的任何版本(对于OP,则为5.6
ls /opt/plesk/php
答案 5 :(得分:0)
您可以尝试在终端命令行上设置正确的php版本的路径:
set PATH="/usr/bin/php5.6/bin:$PATH"
修改路径以匹配您自己的PHP 5.6路径(即,如果它首先安装,它可能类似于“/ usr / bin / php”)。
末尾的“$ PATH”会附加当前路径值,所以不要忘记使用它。