Plesk 12 以降のバージョンで複数の PHP バージョンを使用するには

Refers to:

  • Plesk 12.5 for Linux
  • Plesk Onyx for Linux
  • Plesk 11.5 for Linux
  • Plesk 12.0 for Windows
  • Plesk 12.0 for Linux
  • Plesk 12.5 for Windows

Created:

2016-11-16 13:16:51 UTC

Modified:

2017-02-22 23:43:56 UTC

10

Was this article helpful?


Have more questions?

リクエストを送信

Plesk 12 以降のバージョンで複数の PHP バージョンを使用するには

Plesk 12.5 が PHP7 に対応しました。詳しくは KB 記事 #127701 をご覧ください。

なぜ同じサーバで複数の PHP バージョンを使用する必要があるのでしょうか?

様々な理由から、同じサーバで複数の PHP バージョンを使用する必要が生じます。例えば、PHP 5.2 アプリケーションを実行しているサーバで Symfony2 や Lithium など新しいフレームワークをベースにしている別のアプリケーションを使用する必要がある場合や、 PHP 5.2 を実行するレガシーサイトがクライアントにある場合、あるいは、新機能をテストしたい場合などがあります。さらには、ホスティングを最新の OS に移行するけれども、一部のサイトについては現在の OS で使用できる古い PHP バージョンのまま残したい場合もあります。

Plesk 12.0 および Plesk 12.5 で複数の PHP バージョンを使用するにはどうすればよいでしょうか?

Plesk 12.0 および Plesk 12.5 では、Plesk チームがビルドした複数の PHP 5.x バージョンを Plesk パネル経由でインストールして使用できるようになっており、追加のサードパーティ製リポジトリを使用したり、ソースから PHP を作成する必要はありません。

Plesk の PHP パッケージを使用しても、他の PHP パッケージとの競合や他の PHP パッケージの上書きが発生しないため、現在の PHP ビルドやサードパーティの PHP パッケージをそのままお使いいただけます。

Plesk チームの PHP パッケージは以下の OS に対応します。

Plesk 12: CentOS 6、CentOS 7、Ubuntu 14

Plesk 12.5: Ubuntu 12/14、Debian 7/8、CentOS/RHEL 6、7

手順 1. Plesk チームがパッケージした PHP バージョンのうち、必要なものをインストールします。

  • GUI 経由でのインストール:

    Plesk インストーラのインターフェースで、必要な PHP バージョンを選択します( [Add/Remove Components]>[Web hosting features]>[Different PHP interpreters versions] )。

  • CLI 経由でのインストール:

    #plesk sbin autoinstaller --select-product-id plesk --select-release-current  --install-component php5.6

注: "PHP 5 support (from OS vendor)" コンポーネントは、たとえ不要になっても削除できません。

注: 現在、PHP-FPM ハンドラは Plesk PHP パッケージに含まれていません。これは Plesk 12.5 で変更され、必要な PHP-FPM バージョンを選択できるようになる予定です。

手順 2. サービスプランとウェブサイトの設定で、必要な PHP バージョンを選択します

インストール後、サービスプランおよびウェブサイトホスティング設定で、新しい PHP バージョンを選択できるようになります。

ウェブサイトの PHP を、Plesk チームがパッケージした PHP に切り替える

インストール済みの PHP バージョンが Plesk チームからの PHP パッケージに置き換えられたり、既存のサービスプランやウェブサイトが更新されることはありません。サードパーティ製リポジトリの PHP パッケージを既に使用しており、Plesk チームがパッケージした PHP にサイトを移動したい場合、Plesk UI または Plesk コマンドラインインターフェースで手動で変更する必要があります。

この簡単な手順は以下の通りです。例えば、すべてのウェブサイトを CentOS 6 リポジトリの "PHP 5.3 fastcgi" から Plesk チームがパッケージした "PHP 5.4 fastcgi" に切り替えるとします。

  • 以下のコマンドを実行して、新旧両 PHP ハンドラが Plesk に登録されていることを確認します。
    /usr/local/psa/bin/php_handler --list

"display name" 列のエントリを確認します。

  • すべてのウェブサイトを新しい PHP ハンドラに切り替えます("id" 列のエントリに示されます)。
    /usr/local/psa/bin/php_handler --replace -old-id fastcgi -new-id plesk-php54-fastcgi

この切り替えが失敗した場合、 添付のヘルパーユーティリティ を使用して現在の状況をチェックし、ハンドラを切り替えることができます。この作業は root ユーザで行う必要があります。

以下のコマンドを実行すると、現在使用されているすべてのドメインとハンドラが表示されます。

#php php_management_tool list

特定の PHP ハンドラを使用しているすべてのドメインを、あるハンドラ( --from オプションで指定)から別のハンドラ --to オプションで指定)に切り替えるには、以下のコマンドを実行します。

#php php_management_tool move --from=fastcgi-54 --to=plesk-php54-fastcgi

指定したドメインを --to オプションで指定した PHP ハンドラに切り替えるには、以下のコマンドを実行します。

#php php_management_tool move --to=plesk-php56-cgi --domains=ex.example.com,example.com

技術情報

Plesk チームが提供する PHP パッケージは、他のサードパーティ製リポジトリからのパッケージと競合しません。パッケージ名には "plesk-php" というプレフィックスが付いています。以下のいずれかのコマンドを使用することによって、現在 Plesk チームからの PHP パッケージがサーバにインストールされているかどうかを確認することができます。

RedHat 系 OS:

rpm -qa|grep "plesk-php"

Ubuntu/Debian の場合:

dpkg -l|grep "plesk-php"

すべてのファイルが /opt/plesk/php/<version> ディレクトリにインストールされます。

php.ini ファイルは /opt/plesk/php/<version>/etc にあります。

現在 Plesk に登録されている PHP ハンドラを確認するには、以下のコマンドを使用することができます。

/usr/local/psa/bin/php_handler --list

" devel " パッケージをインストールするには

例えば、Plesk PHP 用に " devel " パッケージをインストールしたい場合、システムパッケージ管理ツール(yum または apt)を使用して、該当する PHP バージョン用に plesk-phpXX-devel パッケージをインストールする必要があります。

# yum install plesk-php56-devel

または

# apt-get install plesk-php56-devel

Plesk にカスタム PHP モジュールを追加する

モジュールを追加するには、まず必要なパッケージをダウンロードしてからインストールし、次にモジュールをビルドして、最後にこれを対応する PHP バージョンに対して有効化します。ビルド手順は、標準の PHP 手順とほぼ同じです。 こちら で確認してください。使用する必要があるカスタムパスに注意が必要です。

以下では、このコンセプトを説明するために、PHP 5.6 用に memcached モジュールを追加する例を用いています。例で使うコマンドは CentOS 7 用ですが、その他の OS でもこの機能を利用できます。パッケージ名は少し変更する必要がありませんが、基本的な原則は同じです。

必要なパッケージをダウンロードしてインストールします。

# yum search plesk-php devel
# yum install make plesk-php56-devel gcc glibc-devel libmemcached-devel zlib-devel

次にモジュールをビルドします。

# /opt/plesk/php/5.6/bin/pecl install memcached

(libmemcached ディレクトリを問われたときは、空欄のまま Enter キーを押します)

該当する PHP バージョン用に登録します。

# echo "extension=memcached.so" > /opt/plesk/php/5.6/etc/php.d/memcached.ini

最後に、モジュールが有効になっていることを確認します。

# /opt/plesk/php/5.6/bin/php -i | grep "memcached support"
memcached support => enabled

既知の問題と制約

  • Plesk ミラーツール。 Plesk リポジトリミラーを使用している場合、http://kb.plesk.com/jp/113337 からツールを入手して更新する必要があります。最新バージョンは 1.4 です。

  • PHP-FPM および PHP Apache モジュール は、Plesk チームからの PHP パッケージに含まれていません。

  • Plesk チームからの PHP パッケージは、古い OS では使用できません。 現在 Plesk チームからの PHP パッケージを使用できるのは、CentOS 6、CentOS 7、および Ubuntu -14 です。Plesk 12.1 以降、Ubuntu 12 や Debian OS にも対象を広げる予定です。

複数バージョンの PHP への対応について、こちらの Plesk フォーラムスレッド でご意見をお聞かせください。

参考情報

php_management_tool :CLI で php ハンドラをドメインごとに管理するためのユーティリティ

Plesk ミラーツール :Plesk リポジトリミラーを管理するためのユーティリティ

オープンディスカッション用の Plesk フォーラムスレッド

PHP Handlers(管理者ガイド)

他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。