Article ID: 115833, created on Feb 27, 2014, last review on Mar 18, 2015

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

Mise à niveau depuis PHP 5.2 pour CentOS 5 :

1) Exécutez le Programme d'installation automatique de Parallels depuis la console du serveur.

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

2) Sur la liste des principaux composants, vérifiez si l'option Prise en charge de PHP 5 est sélectionnée.

3) Quittez le Programme d'installation automatique de Parallels.

4) Installez les répertoires epel et 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

REMARQUE : si vous voulez mettre à niveau PHP sur CentOS 6, installez/activez les répertoires epel et remi de la version suivante comme suit :

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

5) Activez le répertoire remi :

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

Dans la section [remi] du fichier, définissez l'option "enabled" sur 1.

REMARQUE : si vous voulez installer PHP depuis le répertoire Atomic, installez-le avec la commande suivante :

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

6) Mettez PHP à niveau avec cette commande :

    #yum install php

Mise à niveau de PHP 5.3

1) Exécutez le Programme d'installation automatique de Parallels depuis la console du serveur.

2) Sur la liste des principaux composants, vérifiez si l'option Prise en charge de PHP 5.3 est sélectionnée.

3) Quittez le Programme d'installation automatique de Parallels.

4) Supprimez tous les composants PHP 5.3 et le configurateur PHP 5.3.

Vous pouvez vérifier quels packs seront supprimés avec la commande suivante :

    #rpm -qa | grep 'php53-'

Tous les packs listés seront supprimés avec les commandes suivantes :

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

5) Exécutez le Programme d'installation automatique de Parallels depuis la console du serveur.

6) Vérifiez et installez la prise en charge de PHP 5.

7) Installez les répertoires epel et 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) Activez le répertoire remi :

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

Dans la section [remi] du fichier, définissez l'option "enabled" sur 1.

REMARQUE : si vous voulez installer PHP depuis le répertoire Atomic, installez-le avec la commande suivante :

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

9) Mettez PHP à niveau avec cette commande :

    # yum install php

Installation de ionCube pour PHP 5.4 (facultatif) :

  1. Téléchargez ionCube :

Pour x32 :

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

Pour x64 :

# wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
  1. Dézippez le fichier.

  2. Copiez ioncube_loader_lin_5.4.so vers le dossier d'extension PHP :

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

Remarque : le répertoire de vos extensions (/usr/lib/php/modules/) dans lequel se trouvent les modules PHP peut varier. Vérifiez l'emplacement à l'aide de la commande php -ini :

    php -ini|grep extension_dir
    extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
  1. Définissez les attributs 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. Activez ionCube dans la config PHP :

    # echo "zend_extension=/usr/lib/php/modules/ioncube_loader_lin_5.4.so" >> /etc/php.d/zend_extensions_psa.ini
    
  3. Vérifiez si ionCube fonctionne :
    # php -r 'phpinfo();' | grep -i ioncube

Vous pouvez également tester le Loader ionCube à l'aide du script d'aide PHP "loader-wizard.php" inclus dans l'archive du Loader ionCube.

Problèmes potentiels

  1. Le serveur MySQL est mis à niveau avec PHP. Si lors de la création de bases de données, d'utilisateurs de bases de données ou d'applications, le processus échoue avec des erreurs MySQL du type "Table mysql.servers does not exist", cela signifie que le serveur MySQL a été mis à niveau avec PHP. Pour résoudre ce problème, utilisez la commande :

    # mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
    
  2. Si vous voyez un message d'erreur du type :

    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`
    

Cela signifie que l'architecture du fichier Loader ionCube est différente de l'architecture de l'OS.

  1. Si vous voyez un message d'erreur du type :

    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`
    

Cela signifie que SELinux est activé. Le contexte SELinux incorrect est dans le fichier Loader ionCube.

  1. PHP ne fonctionne pas en mode CGI/FastCGI et indique l'erreur HTTP 500. Cela peut provenir de directives qui ne sont pas compatibles avec PHP 5.4 dans le fichier php.ini global ou du domaine. Voici une liste des directives non compatibles :

    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`
    

Pour en savoir plus, consultez la section Changement dans les paramètres INI du guide PHP.

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

Email subscription for changes to this article
Save as PDF