Recherche de site Web

Comment installer PHP 7 pour Apache ou Nginx sur Ubuntu 14.04 et 14.10


Des mois après la sortie de la version stable de PHP 7.0, c'est peut-être le bon moment pour vous de penser à mettre à jour les anciennes versions vers cette version.

Il faut toujours faire preuve de prudence concernant les mises à niveau, en particulier dans un environnement de production, mais c'est une bonne idée maintenant de mettre à niveau afin de bénéficier des améliorations de vitesse, ainsi que de fonctionnalités telles que les indications de type scalaire et bien d'autres encore.

Vous pouvez installer deux versions de PHP sur votre système et en utiliser une à des fins de test, mais n'oubliez pas que vous n'activez qu'un seul module PHP Apache à la fois.

Ce guide se concentre sur la mise à niveau depuis PHP 5.X, en utilisant mod_php en connexion avec le serveur Web Apache ou PHP-FPM en connexion avec le serveur Web Nginx.

  1. Installez PHP 7 dans Ubuntu 14.04 et 14.10
  2. Mise à niveau vers PHP 7.0 sous Apache Web Server
  3. Mise à niveau vers PHP 7.0 sous Nginx Web Server

Voyons maintenant comment vous pouvez mettre à niveau vers la dernière version de PHP et également configurer votre système pour l'utiliser.

Comment installer PHP 7 dans Ubuntu 14.04 et 14.10

Tout d'abord, vous devrez ajouter le PPA maintenu par Ondřej Surý pour Debian et ses dérivés tels que Ubuntu en exécutant la commande ci-dessous :

sudo add-apt-repository ppa:ondrej/php

Mettez ensuite à jour votre système comme suit :

sudo apt-get update

Tout est maintenant défini et vous pouvez installer PHP 7.0, mais nous examinerons la mise à niveau pour Apache et Nginx dans différentes sections.

Mise à niveau vers PHP 7.0 sous Apache Web Server

Cette section est destinée aux systèmes exécutant Apache, où le code PHP est exécuté à l'aide du module mod_php. Installez la dernière version de PHP en exécutant la commande ci-dessous :

sudo apt-get install php7.0
Exemple de sortie

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

PHP a maintenant été mis à niveau sur votre système, mais si vous utilisez le système de gestion de base de données MySQL, vous devrez alors exécuter la commande suivante pour mettre à jour la liaison PHP-MySQL et vous devrez également installer certains modules utiles tels que Curl, GD, Cli, JSON, etc.

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Si vous souhaitez installer des modules PHP7.0 supplémentaires, vous pouvez utiliser la commande apt-cache pour répertorier tous les modules PHP7.0 et les installer.

sudo apt-cache search php7
Exemple de sortie

php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP

Une fois PHP7.0 et ses modules installés, vous pouvez redémarrer votre serveur web Apache et vérifier la version PHP comme indiqué :

sudo service apache2 restart
php -v
Exemple de sortie

PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Vous pouvez également vérifier les informations PHP7 en créant un fichier info.php dans le répertoire /var/www/html.


sudo vi /var/www/html/info.php

Placez le code suivant et accédez à la page via http://server_IP-address/info.php.


<?php
phpinfo();
?>

Mise à niveau vers PHP 7.0 sous Nginx Web Server

Cette section vous guide tout au long du processus de mise à niveau vers PHP7.0 et de mise à jour de PHP-FPM avec le serveur Web Nginx, où le code PHP est exécuté à l'aide de PHP-FPM.

Exécutez la commande ci-dessous pour installer les derniers packages PHP-FPM :

sudo apt-get install php7.0
sudo apt-get install php7.0-fpm

PHP a maintenant été mis à niveau, mais si vous utilisez MySQL, vous devrez alors exécuter la commande suivante pour mettre à jour la liaison PHP-MySQL et certains modules supplémentaires, comme indiqué :

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Ensuite, vous devez ajouter la directive fastcgi_pass dans le fichier /etc/nginx/sites-enabled/default ou dans tous les fichiers de vos sites virtuels qui doivent utiliser et prendre en charge PHP. , puisque le chemin du fichier socket PHP-FPM que PHP utilise pour communiquer avec Nginx a changé.

Utilisez votre éditeur préféré et ouvrez le fichier pour le modifier comme suit :


sudo vi /etc/nginx/sites-enabled/default 

Modifier ou ajouter comme suit :


location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Redémarrez ensuite Nginx et php-fpm comme suit :


sudo service nginx restart
sudo service php7.0-fpm restart

Enfin, vous pouvez tester si PHP fonctionne ou non en vérifiant d'abord votre version de PHP, puis en la testant avec le serveur Web.

php -v

Vous obtenez des informations sur vos packages PHP en écrivant un petit fichier info.php dans le répertoire /usr/share/nginx/html/ :

sudo vi /usr/share/nginx/html/info.php 

Mettez ce code sur votre fichier info.php :

<?php
phpinfo();
?>

Enregistrez et quittez le fichier.

Ouvrez votre navigateur Web, entrez http://server_IP-address/info.php et vous devriez pouvoir voir la page ci-dessous qui vous montre les détails de votre package PHP.

Vous pouvez désormais utiliser PHP 7.0 avec plaisir sur votre système Ubuntu 14.04/14.10, et j'espère que ce guide vous sera utile.

Pour toute information supplémentaire concernant la mise à jour de PHP ou des questions, vos commentaires sont les bienvenus dans la section commentaires ci-dessous.