Article ID: 118378, created on Oct 30, 2014, last review on Jun 18, 2015

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

Symptômes

Sur les systèmes Linux, vous pouvez installer toutes les versions de PHP dont vous avez besoin et les mettre à disposition dans Plesk. Pour cela, il vous suffit de les enregistrer avec l'utilitaire de ligne de commande php_handler.

Cause

Vous devez utiliser une version de PHP non fournie avec Plesk.

Résolution

Pour CloudLinux :

Si vous êtes un utilisateur CloudLinux, vous pouvez utiliser la fonction de sélection PHP CloudLinux :

http://docs.cloudlinux.com/index.html?php_selector.html

Pour Plesk 12 :

Depuis Plesk 12.0.18 MU#41, vous pouvez installer et utiliser plusieurs versions de PHP 5.x créées par l'équipe Plesk via Plesk. Pour en savoir plus, consultez l'article n° 125146 : Utiliser plusieurs versions de PHP prêtes à l'emploi dans Plesk 12.0 .

Pour Plesk 11.5 :

Étape 1 : Installez la version de PHP requise sur votre serveur Plesk.

Les instructions d'installation sont disponibles dans la documentation PHP : http://php.net/manual/fr/install.php.

    Note: It is recommended that you build PHP in another (non-production) environment with the same operating system version as the target server. This helps you avoid installing a large number of unnecessary packages on your production system. In the example below, PHP 5.6.3 is used. However you can use the instructions to install any PHP version.

Dans les grandes lignes, l'installation comporte les étapes suivantes :

  1. Accédez via SSH en tant que root à l'ordinateur pour la compilation PHP.

  2. Téléchargez la source PHP :

    # cd /usr/local/src/
    # wget http://php.net/get/php-5.6.3.tar.bz2/from/this/mirror --output-document="php-5.6.3.tar.bz2"
    
  3. Vérifiez si la distribution PHP a bien été téléchargée :

    # ls -la
    total 13156
    drwxr-xr-x  2 root root     4096 Nov 29 08:39 .
    drwxr-xr-x 15 root root     4096 Nov 29 08:39 ..
    -rw-r--r--  1 root root 13461539 Nov 14 06:41 php-5.6.3.tar.bz2 
    
  4. Dézippez-la de l'archive :

    # tar xjvf php-5.6.3.tar.bz2
    # mv php-5.6.3 php563
    
  5. Installez les bibliothèques nécessaires :

    Sur CentOS 6.x :

    # yum install libxml2-devel openssl-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel gmp-devel mysql-devel ncurses-devel unixODBC-devel net-snmp-devel mhash-devel libc-client-devel libicu-devel gcc postgresql-devel aspell-devel libxslt-devel gcc-c++ openldap-devel
    

    Sur Debian 6 Squeeze :

    #apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libgmp3-dev libc-client-dev libicu-dev libsasl2-dev unixodbc-dev libpspell-dev libsnmp-dev libxslt-dev
    
  6. Installez les bibliothèques supplémentaires :

    L'installation dépend du système utilisé pour la compilation PHP. Elle sera clarifiée lors de la configuration.

  7. Configurez :

    # cd /usr/local/src/php563
    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php563-cgi' '--with-config-file-path=/usr/local/php563-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php563-cgi' '--with-png-dir=/usr/local/php563-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php563-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/php563-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/php563-cgi/pear' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php563-cgi/php.d' '--enable-cgi'
    

    Remarque : vous devez utiliser le changement de préfixe pour que votre nouvelle version de PHP soit installée dans un seul répertoire. Comme vous pouvez le voir, voici le préfixe : /usr/local/php563-cgi/.

    Le choix du préfixe est très important, car il évite à votre nouvelle installation PHP d'interférer avec les installations PHP déjà existantes sur le serveur.

  8. Une fois que la configuration est bien terminée, compilez PHP :

    # cd /usr/local/src/php563
    # make
    
  9. [Ignorez cette étape si vous créez PHP dans votre environnement de production] Archivez le PHP compilé et transférez-le vers votre node de services Apache.

    Remarque : le chemin d'accès complet au répertoire qui contient le PHP compilé sur le serveur Plesk doit être identique à celui sur le serveur source.

    # cd /usr/local/src/
    # tar cjvf php563.tar.bz2 php563
    # scp php563.tar.bz2 root@<your_plesk_server_ip>:/usr/local/src
    
  10. Installez SSH sur votre serveur Plesk et dézippez le fichier archive avec le PHP compilé :

    # cd /usr/local/src
    # tar xjvf php563.tar.bz2
    
  11. Allez sur votre serveur Plesk et installez PHP :

    # cd /usr/local/src/php563
    # make install
    
  12. Configurez php.ini :

    # cp php.ini-development /usr/local/php563-cgi/etc/php.ini
    

    Vous pouvez modifier le fichier php.ini pour définir les options de PHP. Si vous préférez enregistrer le fichier php.ini à un autre emplacement, exécutez l'utilitaire de configuration avec l'option --with-config-file-path=/some/path à l'étape de la configuration.

  13. Restaurez les contextes SELinux :

    # restorecon -R /usr/local/php563-cgi
    

Étape 2 : Enregistrez la nouvelle version de PHP dans Plesk :

/usr/local/psa/bin/php_handler --add -displayname <NN> -path <path to php cgi> -phpini <path to php.ini> -type <php handler> -id <NN-custom>

Remarque :

  • -displayname <NN> correspond au nom de la version PHP qui s'affiche dans l'interface Plesk. Nous vous recommandons d'inclure le numéro de la version dans le nom à afficher. Par exemple, vous pouvez appeler votre version "5.6.3-custom".

  • -path <path/to/php/cgi> correspond à l'emplacement du fichier binaire CGI PHP. Vous pouvez voir cette information dans le résultat de la commande "make install " dans la ligne "Installing PHP CGI binary". Par exemple, si vous voyez la ligne "Installing PHP CGI binary: /usr/local/php563-cgi/bin/", l'emplacement que vous devez préciser est /usr/local/php563-cgi/bin/php-cgi. Pour en savoir plus, consultez le site Web officiel PHP.

  • -phpini <path/to/php.ini> correspond à l'emplacement du fichier php.ini, par exemple : /usr/local/php563-cgi/.

  • -type <php handler> correspond au type de gestionnaire PHP associé à cette version : "cgi" ou "fastcgi".

  • -id <NN-custom> correspond à l'identifiant à utiliser lorsque vous vous référez à version de PHP (par exemple, lorsque vous ajustez ou supprimez cette version).

Par exemple :

# /usr/local/psa/bin/php_handler --add -displayname php-5.6.3 -path /usr/local/php563-cgi/bin/php-cgi -phpini /usr/local/php563-cgi/etc/php.ini -type fastcgi -id 2

Une fois que vous avez enregistré la version de PHP dans Plesk, elle sera disponible pour un site Web spécifique sous Sites Web > Paramètres d'hébergement. Par exemple, comme dans la capture d'écran ci-dessous :

Liste des gestionnaires PHP enregistrés :

Pour afficher la liste des gestionnaires PHP enregistrés sur un serveur Plesk, exécutez cette commande :

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

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

Email subscription for changes to this article
Save as PDF