[英]How can I change php-cli version on Ubuntu 14.04?
我是使用 Linux 的新手,我在篡改時破壞了一些 php 設置。
如果我執行 php 腳本,其中包含: phpinfo();
它顯示 php 版本為 5.6,但通過命令行,如果我運行php -v
它會返回 7.0 版本。
我想讓兩個版本匹配。
如何修復我的命令行 PATH 以同時使用 php 5.6?
sudo update-alternatives --set php /usr/bin/php5.6
請參閱: 來源
從 PHP 7.1 => PHP 5.6
sudo update-alternatives --set php /usr/bin/php5.6
從 PHP 5.6 => PHP 7.1
sudo update-alternatives --set php /usr/bin/php7.1
您可以根據需要更改版本。
您可以查看本教程
問候!!
這里的大多數答案都是通過使用命令來操作 php-version
sudo update-alternatives --set ...
雖然該命令非常有用,但它從未解釋過它究竟做了什么。 下面是解釋,包括備份和一些選項:
update-alternatives
顯示或更改位於替代方向的符號鏈接,該方向在 Ubuntu 中通常定義為/etc/alternatives
但也可以更改。update-alternatives --help
顯示與update-alternatives
相關的完整選項列表,可以使用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
-documents /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
中的符號鏈接進行配置,並且cli
(命令行)通常不使用 cgi-version 或 cgi-configuration。 因此可以假設僅更改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
更改已被接受,使用的版本現在是舊版本。
$: 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 php
返回當前 php 版本的正確描述,並且不需要手動調整手冊頁。
這是更多交互方式:
update-alternatives --config php
您將看到所有可用版本的列表並選擇其中之一
您可以嘗試在終端命令行中將路徑設置為正確的 php 版本:
set PATH="/usr/bin/php5.6/bin:$PATH"
修改路徑以匹配您自己的 PHP 5.6 路徑(即,如果它是先安裝的,它可能類似於“/usr/bin/php”)。
最后的“$PATH”附加了當前路徑值,所以不要忘記使用它。
在改變之前檢查你有什么
php -v
將所有內容更改為 php 7.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
在這種情況下,您的 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
來源: Plesk 支持
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.