我是使用Linux的新手,我在篡改时打破了一些php设置.
如果我执行一个包含以下phpinfo();内容的php脚本:它将php版本显示为5.6,但是通过命令行,如果我运行php -v它,则返回7.0版本.
我希望两个版本都匹配.
我如何修复我的命令行PATH也使用PHP 5.6?
小智 120
sudo update-alternatives --set php /usr/bin/php5.6
Run Code Online (Sandbox Code Playgroud)
请参阅:来源
Rad*_*dez 29
从PHP 7.1 => PHP 5.6
sudo update-alternatives --set php /usr/bin/php5.6
Run Code Online (Sandbox Code Playgroud)
从PHP 5.6 => PHP 7.1
sudo update-alternatives --set php /usr/bin/php7.1
Run Code Online (Sandbox Code Playgroud)
您可以根据需要更改版本.
您可以查看本教程
问候!!
Dav*_*vid 22
这里的大多数答案通过使用命令来操纵php版本
sudo update-alternatives --set ...
Run Code Online (Sandbox Code Playgroud)
虽然命令非常有用,但它从未解释过它的确切功能.这里有解释,包括备份和一些选项:
update-alternatives正在显示或更改符号链接,这些符号链接位于Ubuntu中的替代方向,该方向通常定义为,/etc/alternatives但也可以更改.update-alternatives可以使用命令显示与之相关的完整选项列表,可以显示update-alternatives --help更深入的解释man update-alternatives.update-alternatives是特殊文件夹中的主要更改符号链接,因此该文件夹的内容也可以使用常用命令php显示,并显示以下所有项目开头:Run Code Online (Sandbox Code Playgroud)$ 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使用此命令显示项目使用此命令: Run Code Online (Sandbox Code Playgroud)$ update-alternatives --list php /usr/bin/php7.0 /usr/bin/php7.2
Run Code Online (Sandbox Code Playgroud)$ 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版本.以下命令显示了当前可用的php版本列表/usr/bin/:
Run Code Online (Sandbox Code Playgroud)$ 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需要调整文件名):Run Code Online (Sandbox Code Playgroud)$ 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如上所示:Run Code Online (Sandbox Code Playgroud)$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt $ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt...以及可用的PHP版本:
Run Code Online (Sandbox Code Playgroud)$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt $ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt
man-documents,列表中/etc/alternatives/php*/包含3行:Run Code Online (Sandbox Code Playgroud)$ 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并且cli(命令行)通常不使用cgi-version或cgi-configuration.因此可以假设只更改符号链接php将适用于命令行,更改php-cgi和php-cgi-bin可能不需要.通常,最新版本默认链接,因此下面的命令使用从列表中获取的旧版本/usr/bin/:Run Code Online (Sandbox Code Playgroud)$ 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
检查更改:
Run Code Online (Sandbox Code Playgroud)$: 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该更改已被接受,现在使用的版本较旧.
Run Code Online (Sandbox Code Playgroud)$: man php ... [SCROLL DOWN] VERSION INFORMATION This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1. COPYRIGHT ...
这意味着PHP版本与man-page一致,并且该命令man php返回当前php-version的正确描述,并且不需要关于man-page的手动调整.
小智 13
这是一种更具交互性的方式:
update-alternatives --config php
Run Code Online (Sandbox Code Playgroud)
您会看到所有可用版本的列表,然后选择其中一个