Notez que cet article a été écrit il y a plus de 2 ans, mais il n'est pas forcément obsolète.
Pour connaître la version PHP, on tape dans la console :
1 2 3 4 5 |
xavierbs@sd-12345:~$ php -v PHP 7.0.28-0ubuntu0.16.04.1 (cli) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.28-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies |
On liste les packages relatifs à PHP :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
xavierbs@sd-12345:~$ dpkg -l | grep php ii dh-php 0.10 all debhelper add-on to handle PHP PECL extensions ii php-bz2 1:7.0+35ubuntu6.1 all bzip2 module for PHP [default] ii php-common 1:35ubuntu6.1 all Common files for PHP packages ii php-dev 1:7.0+35ubuntu6.1 all Files for PHP module development (default) ii php-gettext 1.0.11-2build1 all read gettext MO files directly, without requiring anything other than PHP ii php-ldap 1:7.0+35ubuntu6.1 all LDAP module for PHP [default] ii php-mysql 1:7.0+35ubuntu6.1 all MySQL module for PHP [default] ii php-pear 1:1.10.1+submodules+notgz-6 all PEAR Base System ii php-tcpdf 6.0.093+dfsg-1ubuntu1 all PHP class for generating PDF files on-the-fly ii php7.0 7.0.28-0ubuntu0.16.04.1 all server-side, HTML-embedded scripting language (metapackage) ii php7.0-bcmath 7.0.28-0ubuntu0.16.04.1 amd64 Bcmath module for PHP ii php7.0-bz2 7.0.28-0ubuntu0.16.04.1 amd64 bzip2 module for PHP ii php7.0-cli 7.0.28-0ubuntu0.16.04.1 amd64 command-line interpreter for the PHP scripting language ii php7.0-common 7.0.28-0ubuntu0.16.04.1 amd64 documentation, examples and common module for PHP ii php7.0-curl 7.0.28-0ubuntu0.16.04.1 amd64 CURL module for PHP ii php7.0-dev 7.0.28-0ubuntu0.16.04.1 amd64 Files for PHP7.0 module development ii php7.0-fpm 7.0.28-0ubuntu0.16.04.1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary) ii php7.0-gd 7.0.28-0ubuntu0.16.04.1 amd64 GD module for PHP ii php7.0-imap 7.0.28-0ubuntu0.16.04.1 amd64 IMAP module for PHP ii php7.0-intl 7.0.28-0ubuntu0.16.04.1 amd64 Internationalisation module for PHP ii php7.0-json 7.0.28-0ubuntu0.16.04.1 amd64 JSON module for PHP ii php7.0-ldap 7.0.28-0ubuntu0.16.04.1 amd64 LDAP module for PHP ii php7.0-mbstring 7.0.28-0ubuntu0.16.04.1 amd64 MBSTRING module for PHP ii php7.0-mcrypt 7.0.28-0ubuntu0.16.04.1 amd64 libmcrypt module for PHP ii php7.0-mysql 7.0.28-0ubuntu0.16.04.1 amd64 MySQL module for PHP ii php7.0-opcache 7.0.28-0ubuntu0.16.04.1 amd64 Zend OpCache module for PHP ii php7.0-readline 7.0.28-0ubuntu0.16.04.1 amd64 readline module for PHP ii php7.0-sqlite3 7.0.28-0ubuntu0.16.04.1 amd64 SQLite3 module for PHP ii php7.0-xml 7.0.28-0ubuntu0.16.04.1 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP ii php7.0-zip 7.0.28-0ubuntu0.16.04.1 amd64 Zip module for PHP ii phpldapadmin 1.2.2-5.2ubuntu2.1 all web based interface for administering LDAP servers ii phpmyadmin 4:4.6.6-1+deb.cihar.com~xenial.2 all MySQL web administration tool ii pkg-php-tools 1.32ubuntu2 all various packaging tools and scripts for PHP packagesC |
Ce qui nous intéresse : les packages PHP7.0. Il s’agit de les mettre à jour en PHP7.2.
On installe le repository ondrej pour obtenir les packages PHP 7.2 si ce n’est déjà fait :
1 2 3 |
xavierbs@sd-12345:~$ sudo apt-get install python-software-properties xavierbs@sd-12345:~$ sudo add-apt-repository ppa:ondrej/nginx xavierbs@sd-12345:~$ sudo apt-get update |
On hésite pas à mettre à jour les packages :
1 |
xavierbs@sd-12345:~$ sudo apt-get upgrade |
Tester l’installation des packages, avec l’option –dry-run :
1 |
xavierbs@sd-12345:~$ sudo apt-get install --dry-run php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml |
En fonction de l’installation et des packages présents, on ajuste la commande.
1 |
xavierbs@sd-12345:~$ sudo apt-get install php7.2-common php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml php7.2-fpm php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2-opcache php7.2-readline php7.2-sqlite3 php7.2-zip |
L’installation charge également les packages relatifs à apache. Si l’on ne désire pas ces packages, on peut les enlever :
1 2 |
xavierbs@sd-12345:~$ sudo apt-get remove apache2* xavierbs@sd-12345:~$ sudo apt-get autoremove |
On met alors à jour la configuration NGinx en changeant le sock fastcgi_pass et l’on crée le fichier de configuration de php7.2-fpm.
Nginx conf :
1 2 3 4 5 6 7 8 9 10 |
... location ~ \.php$ { include fastcgi.conf; fastcgi_pass unix:/var/run/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_buffers 8 8k; fastcgi_buffer_size 16k; include fastcgi_params; } ... |
Et le fichier de configuration fpm du site dans le répertoire /etc/php/7.2/fpm/pool.d.
example.conf :
1 2 3 4 5 6 7 8 9 10 11 12 |
[example.com] user = www-data group = www-data listen = /var/run/php7.2-fpm.sock listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 chdir = / |
Il n’y a plus qu’à relancer ou lancer les services NGinx et php7.2-fpm :
1 2 |
xavierbs@sd-12345:~$ sudo systemctl restart nginx xavierbs@sd-12345:~$ sudo systemctl restart php7.2-fpm |
Et hop, PHP 7.2 est installé sur le site example.com.
sa ne marche pas chez moi. en fait voila ce que sa dit Impossible de trouver le paquet php7.2-common
E: Impossible de trouver de paquet correspondant à l’expression rationnelle « php7.2-common »
E: Impossible de trouver de paquet correspondant à l’expression rationnelle « php7.2-common »
E: Impossible de trouver le paquet php7.2-curl
Mettez à jour les repositories
sudo apt update
et réessayez. Si cela ne fonctionne pas, ajoutez le repositoryonderej/php
$ sudo add-apt-repository ppa:ondrej/php
puis
update
etinstall