
複数の PHP バージョンで CentOS サーバーをセットアップしようとしています。
これまでは、REMI ソフトウェア コレクションとをインストールして、Apache をさまざまなバージョンで実行することでこれを実現してきましphp56
たphp70
。
ここまでは順調です。php
コマンド ラインに入力しても情報は表示されませんがphp56 -v
、たとえば、次のような表示がされます。ここまでは、想定どおりの動作です。
いくつか質問があります。1
- コマンドラインで使用するスクリプトを持つソフトウェアはどうなるのか気になっていますphp
。たとえば、composer スクリプトなどでしょうか? 当然、スクリプトがコマンドライン PHP を実行しようとすると失敗します。
1a.たとえば、 php
と実際の の間にシンボリック リンクを作成する必要があると考えるのは正しいでしょうか?php70
1b. 他にもリンクする必要がある実行ファイルはありますか? どこかにphar
リンクされているものや、他のものが見つかりました。リンクする必要があるすべてのファイルを知るにはどうすればよいですか?
phpmyadmin
2 - YUM 経由でインストールしようとすると、php 5.4
パッケージのダウンロードが要求されます。これ自体が、私の頭の中に多くの疑問を投げかけます。この場合、5.4 をシステムの近くに置きたくないので、どうしたらよいでしょうか。また、上記の手順 1a を実行すると、YUM は PHP 依存関係のダウンロードを要求することは明らかだと思います。これを防ぐ方法、または PHP がすでに PHP70 としてインストールされていることを YUM に「説明」する方法はありますか。または、依存関係を無視する方法はありますか。
馬鹿げた質問だったらすみません。Linux の経験は限られており、YUM の理解も十分ではありません。また、複数バージョンの問題に直面するのは初めてです。ありがとうございます!
アップデート:
バージョン固有のパッケージをインストールしたことは理解していますが、これは主に Apache に複数のバージョンが必要だったためです。質問は、コマンド ラインで PHP を実行する他のソフトウェアをどのように処理するか、YUM PHP 依存関係をどのように処理するか、そしてこのシナリオでの通常のアプローチは何であるかということだと思います。
答え1
知らせ: PHP 5.6と7.0は両方ともサポート終了となり、コミュニティによるサポートのみとなります。最大限の努力; ぜひご利用くださいサポートされているバージョン(7.1以上)
1 - コマンドラインで PHP を使用するスクリプトを持つソフトウェアがどうなるのか興味があります。
ほとんどのスクリプトは「/usr/bin/env php」を使用するため、スクリプトを実行する前に適切なバージョンを有効にするだけです。
module load php71
php -v
composer install
1a. たとえば、php と実際の php70 の間にシンボリック リンクを作成する必要があると考えるのは正しいでしょうか?
はい、動作します。php56-syspathsまたはphp70-syspathsあなたの代わりに作業を行うパッケージ
2 - YUM 経由で phpmyadmin をインストールしようとすると...
パッケージ化されたアプリケーションはデフォルトの PHP に依存しており、インストールされている SCL を認識しません。
複数のバージョンの場合、インストールははるかに簡単になります。
- remi-php## リポジトリからのデフォルト バージョン (php-* パッケージ)
- remi-safe リポジトリからの代替バージョン (php##-php* パッケージ)
を参照してくださいウィザードの指示。
知らせ: EPEL リポジトリ内のアプリケーション (phpMyAdmin、GLPI、Wordpress、roundcubemail など) は、最近の PHP バージョン (7 以上) では動作しません。そのため、利用可能な場合は、「remi」リポジトリから最新バージョンを取得する必要があります。