[Plesk 11 のみ] 同じ Plesk 11.0 for Linux サーバに 2 バージョンの PHP をインストールして使用するには

Created:

2016-11-16 13:22:02 UTC

Modified:

2017-08-16 15:41:24 UTC

4

Was this article helpful?


Have more questions?

リクエストを送信

[Plesk 11 のみ] 同じ Plesk 11.0 for Linux サーバに 2 バージョンの PHP をインストールして使用するには

Applicable to:

  • Plesk 11.x for Linux

問題の修正

Plesk for Linux 11.5 以降は、複数バージョンの PHP の実行をサポートしています( リリースノート を参照)。Plesk 11.5 サーバに PHP をインストールして構成する方法は、『 Plesk 管理者ガイド 』を参照してください。

注: Plesk 11.5、12.0 の場合、KB 記事 #213909265 を参照してください。Plesk for Linux で複数の PHP バージョンを有効にするには

解決策

注: 以下の手順は、Plesk 11.0.9 のみが対象です。Plesk 11.5 をお使いの場合、上記のマニュアルを参照してください。

以下を実行するためには、 PHP を fastcgi で実行する 必要があります。

  1. Plesk サーバに root として SSH 接続して PHP ソースをダウンロードし、これを展開して、構成します。

    # cd /usr/local/src
    # mkdir php540
    # cd php540
    # wget http://museum.php.net/php5/php-5.4.0.tar.gz
    # tar xzvf php-5.4.0.tar.gz
    # cd php-5.4.0

    注: 新しい PHP を単一ディレクトリ内にインストールするためには、プレフィックススイッチを使用する必要があります。例:

    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php540-cgi' '--with-config-file-path=/usr/local/php540-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--enable-cgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php540-cgi' '--with-png-dir=/usr/local/php540-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php540-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php540-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php540-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php540-cgi/php.d'

    この例でのプレフィックスは /usr/local/php540-cgi/ です。

    プレフィックスの選択は必須です 。これにより、新しい PHP インストールが、Plesk の使用する古い PHP バージョンと干渉することを防止できます。

  2. PHP をコンパイルします。

    # make
  3. 新しい PHP をインストールします。

    # make install
  4. PHP ラッパを作成します。例えば、 domain.com という顧客が、デフォルトの PHP 5.1 には存在しない新しい PHP 関数を使用しているとします。Apache に対し、新しい PHP バージョン(5.4.0)を使用するよう指示します。

    # cd /var/www/vhosts/domain.com/cgi-bin
    # mkdir .cgi_wrapper
    # cd .cgi_wrapper

    次の内容で新しいファイル .phpwrapper を作成します。

    #!/bin/sh
    export PHPRC=/var/www/vhosts/domain.com/etc/
    export PHP_FCGI_CHILDREN=4
    export PHP_FCGI_MAX_REQUESTS=1000
    exec /usr/local/php540-cgi/bin/php-cgi

    作成したファイルやディレクトリに、必要なパーミッションや権限を設定します。

    # chgrp psaserv /var/www/vhosts/domain.com/cgi-bin
    # cd /var/www/vhosts/domain.com/cgi-bin
    # chmod 101 .cgi_wrapper
    # chmod 500 .cgi_wrapper/.phpwrapper
    # chown domain.com:psacln .cgi_wrapper -R
    # chattr -R +i .cgi_wrapper
  5. Apache に新しい PHP ラッパを認識させます。Plesk は、vhost ごとに httpd 設定を変更するオプションを提供しています(ドメインまたはサブドメイン)。このオプションを使用して、Apache に対し、 domain.com で Plesk の提供する PHP ラッパではなく新しい PHP ラッパを使用する必要があると指示します。

    # cd /var/www/vhosts/domain.com/conf

    次の内容で新しいファイル vhost.conf を作成します。

    <Directory /var/www/vhosts/domain.com/httpdocs>
    RemoveHandler fcgid-script
    <IfModule mod_fcgid.c>
    AddHandler fcgid-script .php
    <Files ~ (\\.php)>
    SetHandler fcgid-script
    FCGIWrapper /var/www/vhosts/domain.com/cgi-bin/.cgi_wrapper/.phpwrapper .php
    Options +ExecCGI
    allow from all
    </Files>
    </IfModule>
    </Directory>

    これで、Apache に対してデフォルトの Plesk PHP ラッパを使用しないように指示し(RemoveHandler fcgid-script)、代わりに PHP ファイルの新しいハンドラを作成しました。「domain.com」ドメインでの PHP ファイルの実行時に、Apache は新しい PHP ラッパを呼び出し、手順 1~3 でインストールしたバージョンを使用します。

  6. 「domain.com」ドメインを再構成します。

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain domain.com
  7. Apache を再起動します。

    # /etc/init.d/httpd restart

    新しいバージョンの PHP でしか使用できない関数を必要とする各ドメインに対し、手順 4、5、6、7 を行います(「domain.com」を顧客のドメイン名に変更してください)。

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