CentOS 5 で PHP を PHP 5.4 にアップグレードするには

Created:

2016-11-16 13:06:06 UTC

Modified:

2017-08-16 16:51:07 UTC

2

Was this article helpful?


Have more questions?

リクエストを送信

CentOS 5 で PHP を PHP 5.4 にアップグレードするには

Applicable 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 を参照してください。

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