Ubuntu 16.04にphp 5.6およびphp 7.1をインストールしました
WebサーバーとしてApacheを使用していることを知っています。
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
Apacheモジュールでphp7.1を無効にし、php 5.6を有効にすると、Apacheは変更を認識し、php 5.6インタープリターを期待どおりに使用します。
しかし、コマンドラインから内部php Webサーバーを実行すると:
php -S localhost:8888
phpはphp 7を使用してリクエストを処理します。コマンドラインでphp 6.6とphp 7.1を切り替えるにはどうすればよいですか?
Sudo update-alternatives --config php
デフォルトではPHP 5.6がシステムに設定されているため、PHP 7.1に切り替える必要があります。
Apache:
$ Sudo a2dismod php5.6
$ Sudo a2enmod php7.1
$ Sudo service Apache2 restart
コマンドライン:
$ Sudo update-alternatives --set php /usr/bin/php7.1
システムにはデフォルトのPHP 7.1が設定されており、PHP 5.6に切り替える必要があります。
Apache:
$ Sudo a2dismod php7.1
$ Sudo a2enmod php5.6
$ Sudo service Apache2 restart
コマンドライン:
$ Sudo update-alternatives --set php /usr/bin/php5.6
これをシェルに入力します
$ Sudo update-alternatives --config php
そして、これはあなたが得るものです
There are 4 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php7.2 72 auto mode
1 /usr/bin/php5.6 56 manual mode
2 /usr/bin/php7.0 70 manual mode
3 /usr/bin/php7.1 71 manual mode
4 /usr/bin/php7.2 72 manual mode
Press <enter> to keep the current choice[*], or type selection number:
適切なバージョンを選択してください
これを試してみるべきだと思う
php5.6からphp7.1
Sudo a2dismod php5.6
Sudo a2enmod php7.1
Sudo service Apache2 restart
Sudo update-alternatives --set php /usr/bin/php7.1
Sudo update-alternatives --set phar /usr/bin/phar7.1
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1
php7.1からphp5.6
Sudo a2dismod php7.1
Sudo a2enmod php5.6
Sudo service Apache2 restart
Sudo update-alternatives --set php /usr/bin/php5.6
Sudo update-alternatives --set phar /usr/bin/phar5.6
Sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
利用可能なすべてのバージョンをリストし、それらから選択するには:
Sudo update-alternatives --config php
または手動で行う
Sudo a2dismod php7.1 // disable
Sudo a2enmod php5.6 // enable
実際、PHP 5または7にa2enmod
を使用することはお勧めしません。update-alternatives
を使用します。 Sudo update-alternatives --config php
を実行して、使用するPHPのシステム全体のバージョンを設定できます。これにより、コマンドラインとApacheバージョンが同じように動作します。 update-alternatives
の詳細については、 manページ をご覧ください。
以下のコマンドラインを使用して、2つのPHPバージョンを切り替えることができます。
例
以下のコマンドを使用できるPHP Version
を7.1
から7.2
に切り替えたい
Sudo a2dismod php7.1 && Sudo update-alternatives --set php /usr/bin/php7.2 && Sudo a2enmod php7.2 && Sudo service Apache2 restart
a2dismod
は現在のphpバージョンを無効にするために使用され、a2enmod
はバージョンを有効にするために使用されます
次のバージョンから切り替えるスクリプトを作成できます:Sudo nano switch_php
その後、これを入力します:
#!/bin/sh
#!/bin/bash
echo "Switching to PHP$1..."
case $1 in
"7")
Sudo a2dismod php5.6
Sudo a2enmod php7.0
Sudo service Apache2 restart
Sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;;
"5.6")
Sudo a2dismod php7.0
Sudo a2enmod php5.6
Sudo service Apache2 restart
Sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;;
esac
echo "Current version: $( php -v | head -n 1 | cut -c-7 )"
終了して保存し、実行可能にします:Sudo chmod +x switch_php
スクリプトを実行するには、パラメーターが7または5.6である./switch_php [VERSION_NUMBER]
と入力するだけです。
これで、PHP7からPHP 5.6に簡単に切り替えることができます!
端末に特定のコマンドを入力します。
選択したPHPバージョンを無効にするには...
他のPHPバージョンを有効にするには...
PHPバージョンをアップグレードします。バージョンをダウングレードしたい場合は同じことを逆にします。PHP_INFO()で確認できます。
以下を使用して、PHP 5.6からPHP 7.2に切り替えます。
Sudo a2dismod php5.6 && Sudo a2enmod php7.2 && Sudo service Apache2 restart
次を使用して、PHP 7.2からPHP 5.6に切り替えます。
Sudo a2dismod php7.2 && Sudo a2enmod php5.6 && Sudo service Apache2 restart
これらのオープンソースPHPスイッチスクリプトは、Ubuntu 16.04 LTSで使用するために特別に設計されたものを使用できます。
https://github.com/rapidwebltd/php-switch-scripts
PHP 5.6、7.0、7.1および7.2に必要なすべての依存関係をインストールするsetup.sh
スクリプトがあります。これが完了したら、次のスイッチスクリプトのいずれかを実行して、PHP CLIおよびApache 2モジュールのバージョンを変更できます。
./switch-to-php-5.6.sh
./switch-to-php-7.0.sh
./switch-to-php-7.1.sh
./switch-to-php-7.2.sh
PHP 5.6から=> PHP 7.1
$ Sudo a2dismod php5.6
$ Sudo a2enmod php7.1
古いLinuxバージョン用
$ Sudo service Apache2 restart
より新しいバージョンの
$ systemctl restart Apache2
laravelをUbuntu 18.04にインストールする場合、デフォルトのPHP 7.3.0RC3インストールを選択しますが、laravelおよびsymfonyは正しくインストールされず、php-xmlおよびphpのエラーが表示されます-たとえインストールされていても、Zip。上記の手順を使用して、PHP 7.1に切り替える必要があります。または、
Sudo update-alternatives --set php /usr/bin/php7.1
現在、laravel新しいブログを実行すると、正常に処理が進みます。
以下のスクリプトを使用して、PHPバージョンを簡単に切り替えることができます。phpize構成も含めました。
https://github.com/anilkumararumulla/switch-php-version
スクリプトファイルをダウンロードして実行する
sh switch.sh