web-dev-qa-db-ja.com

UbuntuでPHP)の複数のバージョンを実行する

Ubuntu 10.04(デスクトップ)でPHPの複数のバージョンを実行し、それらを切り替える簡単な方法はありますか?

WAMP forWindowsでのPHP)の非常に簡単なインストールと切り替えに甘んじています。これは開発環境用です。

2
Znarkus

アイデアは、PHP(./ configure、。/ make、。/ make installではない)のいくつかのバージョンを手動でコンパイルし、PHP拡張子を持つことです。 VirtualHost構成内にロードするように要求します。

そうすれば、必要になるまでPHPライブラリのロードを延期でき、VirtualHostごとに異なるPHPライブラリを選択できます。

1
Mojah

複数のプロジェクトを扱っていたときに同じ問題が発生しました。私が参照した この記事 しかし、必要に応じてバージョンを切り替える必要があるたびにそうでしたが、これにより、CLIとWebを別々に柔軟に使用できます。

php5.6からphp7.0への移行

Apacheの場合、次のようにコマンドを使用できます。

Sudo a2dismod php5.6 ; Sudo a2enmod php7.0 ; Sudo service Apache2 restart

CLIの場合、コマンドは次のように使用できます。

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

php7.0からphp5.6への移行

Apacheの場合、コマンドは次のように使用できます。

Sudo a2dismod php7.0 ; Sudo a2enmod php5.6 ; Sudo service Apache2 restart

CLIの場合、コマンドは次のように使用できます。

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

2つ以上のWebサーバー(2つ以上のポートをリッスンしている)のインストールと構成を回避するには、以下をお読みください。

1
lg.

古いアプローチの別の質問がフロントページに表示されたので、答えましょう。最近のPHP-FPMは、複数のバージョンのPHP =同時にインストールされます。a2enmod/a2dismodなしでバージョンを切り替えることができ、一度に1つのプロジェクトでこれを変更することもできます。

これは、PHP 5.6、PHP 7.0およびPHP 7.2が同時に実行されている)のサーバーの例です。

  1. このサーバーはDebian9です。同様に、どのディストリビューションにも1つのPHPバージョンのパッケージしかありません。aptソースでdeb https://packages.sury.org/php/ stretch mainを使用しています。

  2. それぞれに少なくともPHP-FPMをインストールします:apt-get install php5.6-fpm php7.0-fpm php7.2-fpm

  3. 各PHP-FPMには、デフォルトのプール[www]/etc/php/x.y/fpm/pool.dで構成されています。ここで、x.yはPHP =バージョン。本番環境では、サイトごとに新しいプールを使用することをお勧めします(Webサーバーを個別のユーザーで保護する方法については answer を参照)が、簡単にするために、この例ではこれらのデフォルトプールを使用します。開発中も問題ないかもしれません。

  4. <VirtualHost>構成で、fcgiプロキシを使用してFPMプールを使用してPHPスクリプトを実行します。例:.

    <FilesMatch "\.php$">
            SetHandler  "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
    </FilesMatch>
    <Proxy "fcgi://localhost/">
    </Proxy>
    
  5. 上記のSetHandlerディレクティブで異なるソケット(php7.0-fpm.sockphp7.2-fpm.sock)を使用して、PHPバージョンを変更します。変更後、Apacheの構成を再ロードします。

0
Esa Jokinen