web-dev-qa-db-ja.com

sudo a2enmod php5.6、php -vは引き続きphp 7.01の競合を示します

私はPHPバージョンを切り替えようとしています、次の応答を取得します。私はmpm_preforkとmpm_workerのマウントを解除しようとしましたが、まだ喜びはありません。どんなアイデアでもお願いします。

ubuntu 16.04で

Sudo a2enmod php5.6

 Considering dependency mpm_prefork for php5.6:
 Considering conflict mpm_event for mpm_prefork:
 Considering conflict mpm_worker for mpm_prefork:
 Enabling module mpm_prefork.
 Considering conflict php5 for php5.6:
 Enabling module php5.6.
 To activate the new configuration, you need to run:
 service Apache2 restart
14
GAV

コマンドは正しいように見えます。テストする前にApacheを再起動しましたか?

Sudo service Apache2 restart

PHP module php5.6 によって作成された OndřejSurý は、以下によってのみ有効にできます。

Sudo a2dismod php7.0
Sudo a2dismod php7.1
Sudo a2dismod php7.2
Sudo a2dismod php7.3
Sudo a2enmod php5.6
Sudo update-alternatives --set php /usr/bin/php5.6
Sudo service Apache2 restart

このセットアップは、PREFORK以外のMPMモジュールと互換性がないことがわかりました。 php5.6 modを有効にする前に、他のすべてのMPMモジュールを無効にする必要があります。

Modが有効にならない場合は、他のMPMを無効にする必要があります。

Sudo a2dismod mpm_prefork
Sudo a2dismod mpm_worker
Sudo a2dismod mpm_event

次に、正しいMPMを自動的に有効にする必要があるため、MODを再度有効にしてみてください。

$ Sudo a2enmod php5.6
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Enabling module php5.6.
To activate the new configuration, you need to run:
  service Apache2 restart

参考までに、これらのコマンドを '.bash_aliases'に入れたいので、DEVの作業に常に便利です。

# Aliases - PHP
alias php.info='php -i'
alias php5.6='Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php5.6 && Sudo update-alternatives --set php /usr/bin/php5.6 && Sudo service Apache2 restart'
alias php7.0='Sudo a2dismod php5.6 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php7.0 && Sudo update-alternatives --set php /usr/bin/php7.0 && Sudo service Apache2 restart'
alias php7.1='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php7.1 && Sudo update-alternatives --set php /usr/bin/php7.1 && Sudo service Apache2 restart'
alias php7.2='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.3 && Sudo a2enmod php7.2 && Sudo update-alternatives --set php /usr/bin/php7.2 && Sudo service Apache2 restart'
alias php7.3='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2enmod php7.3 && Sudo update-alternatives --set php /usr/bin/php7.3 && Sudo service Apache2 restart'

要点: https://Gist.github.com/djravine/376​​e81a018ba2b980750a5578deb3935

32
Adan Rehtla

php -v(デフォルトPHPバージョン)

PHP 7.0からPHP 5.6:まで

Sudo a2dismod php7.0

Sudo a2enmod php5.6

Sudo update-alternatives --set php /usr/bin/php5.6

Sudo service Apache2 restart

From PHP 5.6 to PHP 7.0:

Sudo a2dismod php5.6

Sudo a2enmod php7.0

Sudo update-alternatives --set php /usr/bin/php7.0

Sudo service Apache2 restart
13
Matias

サーバーで実行するようにphp7を構成するには、いくつかの構成を行う必要があります。1. php/php5のトレースを削除することを確認します。

cd /etc/Apache2/mods-enabled
ls -la

出力にはphp5.confまたはphp5.loadが含まれていてはなりませんが、含まれている場合は以下を実行します。

# this is the proper way of disabling modules
Sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
Sudo rm php5.load
Sudo rm php5.con

次に、代わりにphp7.0.confとphp7.0.loadを追加します。

# this is the proper way of enabling modules
Sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
Sudo ln -s php7.0.conf ../mods-available/php7.0.conf
Sudo ln -s php7.0.load ../mods-available/php7.0.load

Ls -la php *の出力は次のようになります。

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

モジュールを処理した後、/ etc/Apache2/conf-enabledディレクトリに移動しました。 Sudo rmによるphp/php5の痕跡も削除します。

次に、必要に応じて以下を実行します。

# the proper way of enabling configs
Sudo a2enconf php7.0-cgi
Sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
Sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
Sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

Ls -la php *の出力は次のようになります。

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0

そして、Apacheを再起動します。

これらの手順に従って解決しました。

5
Sufiyan Malek