Article ID: 115833, created on Jun 7, 2013, last review on Oct 15, 2015

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux

Centos 5 で PHP 5.2 からアップグレードする:

1) サーバコンソールから自動インストーラを実行します。

    /usr/local/psa/admin/sbin/autoinstaller

2) メインコンポーネントリストで PHP5 のサポートオプションがオンになっていることを確認します。

3) 自動インストーラを修了します。4) epel および remi リポジトリをインストールします。

    # wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
    # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
    # sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

注記:CentOS 6 で PHP をアップグレードしたい場合、以下のようにして、上位の epel および remi リポジトリをインストール/有効化します。

    # wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
    # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
    # sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

5) remi リポジトリを有効化します。

    # sudo vi /etc/yum.repos.d/remi.repo 

ファイルの [remi] セクションで "enabled" オプションを 1 に設定します。

注記:Atomic リポジトリから PHP をインストールしたい場合、以下のコマンドでインストールします。

    # wget -q -O - http://www.atomicorp.com/installers/atomic | sudo sh

6) 次のコマンドで PHP をアップグレードします。

    #yum install php

PHP 5.3 からのアップグレード

1) サーバコンソールから自動インストーラを実行します。2) メインコンポーネントリストで PHP 5.3 のサポートオプションがオンになっていることを確認します。3) 自動インストーラを修了します。4) すべての PHP 5.3 コンポーネントと PHP 5.3 コンフィギュレータを削除します。

以下のコマンドを使用して、どのパッケージが削除されるのか確認することができます。

    #rpm -qa | grep 'php53-'

表示されるすべてのパッケージを、以下のコマンドで削除します。

    # rpm -e --nodeps `rpm -qa | grep psa-php53-configurator-`
    # rpm -e `rpm -qa | grep 'php53-' | xargs`

5) サーバコンソールから自動インストーラを実行します。

6) PHP5 サポートをチェックしてインストールします。

7) epel および remi リポジトリをインストールします。

    # wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
    # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
    # sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

8) remi リポジトリを有効化します。

    # sudo vi /etc/yum.repos.d/remi.repo

ファイルの [remi] セクションで "enabled" オプションを 1 に設定します。

注記:Atomic リポジトリから PHP をインストールしたい場合、以下のコマンドでインストールします。

    # wget -q -O - http://www.atomicorp.com/installers/atomic | sudo sh

9) 以下のコマンドで PHP をアップグレードします。

    # yum install php

PHP 5.4 用に ionCube をインストールする(オプション):

  1. ionCube をダウンロードします。

x32 の場合:

# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.zip

x64 の場合:

# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
  1. ファイルを展開します。

  2. PHP 拡張フォルダに ioncube_loader_lin_5.4.so をコピーします。

    #sudo cp ioncube/ioncube_loader_lin_5.4.so /usr/lib/php/modules/
    

PHP モジュールが含まれる拡張ディレクトリ(/usr/lib/php/modules/)の場所が異なる場合があります。場所を確認するには、php -ini コマンドを使用します。

    php -ini|grep extension_dir
    extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  1. SELinux 属性を設定します。

    # sudo chcon -u system_u  -t lib_t /usr/lib/php/modules/ioncube_loader_lin_5.4.so
    # ls -Z /usr/lib64/php/modules/ioncube_loader_lin_5.4.so
    -rw-r--r--. root root system_u:object_r:lib_t:s0    /usr/lib64/php/modules/ioncube_loader_lin_5.4.so
    
  2. PHP 構成で ionCube をオンにします。

    # echo "zend_extension=/usr/lib/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini
    

6. ionCube が動作していることを確認します。

    # php -r 'phpinfo();' | grep -i ioncube

また、ionCube ローダーアーカイブに含まれるヘルパ PHP スクリプト "loader-wizard.php"  を使用して ionCube ローダーをテストすることもできます。

起こり得る問題

  1. MySQL サーバが PHP とともにアップグレードされる。データベース作成時にデータベースユーザまたはアプリケーションが "Table mysql.servers does not exist" のような MySQL エラーで失敗した場合、MySQL サーバが PHP とともにアップグレードされたことを意味します。これは、以下のコマンドで修正できます。

    # mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
    
  2. 次のようなエラーメッセージが表示された場合:

    Failed loading /usr/lib/php/modules/ioncube_loader_lin_5.4.so: /usr/lib/php/modules/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS6`
    

ionCube ローダーファイルのアーキテクチャが、別の OS アーキテクチャ用になっています。

  1. 次のようなエラーメッセージが表示された場合:

    Failed loading /usr/lib/php/modules/ioncube_loader_lin_5.4.so:  /usr/lib/php/modules/ioncube_loader_lin_5.4.so: wrong ELF class: ELFCLASS6`""`Failed loading /usr/lib/php/modules/ioncube_loader_lin_5.4.so:  /usr/lib/php/modules/ioncube_loader_lin_5.4.so: cannot restore segment prot after reloc: Permission denied`
    

SELinux が有効です。ionCube ローダーファイルで SELinux コンテキストが正しくありません。

  1. PHP が CGI/FastCGI モードで機能せず、HTTP Error 500 が発生する場合、グローバルまたはドメインの php.ini ファイルに、PHP 5.4 に対応していないディレクティブが存在する可能性があります。対応しないディレクティブのリスト:

    register_globals
    register_long_arrays
    magic_quotes_gpc
    magic_quotes_runtime
    magic_quotes_sybase
    allow_call_time_pass_reference
    define_syslog_variables
    highlight.bg
    session.bug_compat_42
    session.bug_compat_warn
    y2k_compliance
    safe_mode
    safe_mode_gid
    safe_mode_include_dir
    safe_mode_exec_dir
    safe_mode_allowed_env_vars
    safe_mode_protected_env_vars
    zend.ze1_compatibility_mode`
    

詳しくは、http://www.php.net/manual/en/migration54.ini.php を参照してください。

56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f 01bc4c8cf5b7f01f815a7ada004154a2 2a5151f57629129e26ff206d171fbb5f e335d9adf7edffca6a8af8039031a4c7 742559b1631652fadd74764ae8be475e aea4cd7bfd353ad7a1341a257ad4724a

Email subscription for changes to this article