web-dev-qa-db-ja.com

仮想ホストごとの専用PHPバージョン

PHP7.2とPHP5.6がインストールされたUbuntu 18.04 LTSサーバーがあります。これまでの2つの仮想ホストは同様に構成されています。

<VirtualHost *:80>
    # domain: php56.test
    # public: /var/www/php56/   

    ServerName php56.test
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/php56

    <Directory /var/www/php56/>
        Require all granted
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
    </Directory>

    ErrorLog ${Apache_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

ここで、PHP5.6をphp56.testに、PHP7.2をphp72.testに捧げます。

Web上のいくつかの記事によると、.confファイルを試しましたが、成功しませんでした。 PHP5.6またはPHP7.2を実行できましたが、専用サイトに必要な両方を同時に実行することはできませんでした。デフォルトの.confはそのままで、サイトは同様にphp56.test.confに関連します。

3
Thomas-AC

実際、私は.htaccessの必要性なしに動作するソリューションを見つけました。 Ubuntu 18.04および16.04にApacheを使用して複数のPHPバージョンをインストールする方法を確認します- https://tecadmin.net/install-multiple-php-version-Apache-ubuntu/

Rahul Kumarに感謝します。

1
Thomas-AC

Mod_phpでこれを行うことはできません。一度に1つのバージョンしかロードできません。

異なるバージョンで複数のFPMインスタンスを実行するか、FCGI経由でPHPを使用できます(それぞれのハウツーはネット上で動き回っています)が、mod_php統合(configsのphp_flagやphp_valueなど)必要になる場合があります。

組み合わせて使用​​することもできます。1つのバージョンをmod_phpに、他のバージョンをFCGIまたはFPMに用意してください。 FCGIでのテスト中にmod_phpに「既知の良好な」バージョンがあり、準備ができたらmod_phpバージョンをアップグレードしました。

あるいは、それぞれに異なるmod_phpを使用して2つのApacheインストールを実行することもできますが、それはより厄介になる可能性があります(そして、ソケットを共有できません)。

これを行う最新の方法は、テストにVMまたはコンテナを使用することです。

2
BigRedS