Linuxを使用するのは初めてで、改ざん中にいくつかのphp設定を壊しました。
phpinfo();
を含むphpスクリプトを実行すると、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
必要に応じてバージョンを変更できます。
これを確認できます tutorial
よろしく!!
ここでのほとんどの回答は、コマンドを使用してphp-versionを操作します
Sudo update-alternatives --set ...
このコマンドは非常に便利ですが、何をするのか正確には説明されていません。バックアップといくつかのオプションを含む説明があります。
update-alternatives
は、通常/etc/alternatives
と定義されているUbuntuの代替方向にあるシンボリックリンクを表示または変更しますが、変更することもできます。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
- 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
(commandline)は通常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
利用可能なすべてのバージョンのリストが表示され、そのうちの1つを選択します
端末のコマンドラインで正しいphpバージョンへのパスを設定してみてください:
set PATH="/usr/bin/php5.6/bin:$PATH"
PHP 5.6への独自のパスに一致するようにパスを変更します(つまり、最初にインストールされた場合は、「/ usr/bin/php」のようなものになります)。
最後の「$ PATH」は現在のパス値を追加するので、使用することを忘れないでください。