: Tuto Par :
Passage sous PHP7

Ayant testé la version de php7 avec succès (non sans déboire tout de même :D ) il est temps de vous expliquer la démarche, au combien facile pour migrer de 5.x à 7.

Je part du principe que vous utilisez apache mais sous "nginx", c'est similaire, il suffit juste de changer l'emplacement du socket au moment de la configuration dans nginx.conf.

Je vous préviens l'installation de php7 va bien évidement casser le serveur en deux pendant quelques minute le temps que vous finissiez l'installe vous êtes prévenus.

De plaus certaines application peuvent de pas fonctionner notamment certains "CMS" ou "Framework"

  1. on vire php5
  2. on installe php7 en version FPM
  3. on explique a apache d'utiliser php7-fpm
  4. on test le tout
  5. Divers

Avant ça il faut avoir la possibilité d’installer PHP7 ! Je vous conseil fortement d'utiliser les dépôts de dotdeb

Si ce n'est pas déjà fait éditez vos sources :

nano /etc/apt/sources.list

et rajoutez à la fin :

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Mettez à jour le tout :

apt update && apt upgrade

1) Atomisation du vieux php

apt remove php5-*

Remplacez "remove" par purge si vous souhaitez effacer les fichiers de configuration mais si jamais vous souhaitez retourner sous php5.6 faudra vous les taper.

2) Installation de la suite php7

apt-get install php7.0 php7.0-fpm php7.0-gd php7.0-mysql php7.0-cli php7.0-common php7.0-curl php7.0-opcache php7.0-json

Et on configure php 7-fpm

nano /etc/php/7.0/fpm/php.ini

et on modifie

upload_max_filesize = 32M
post_max_size = 32M
date.timezone = Europe/Paris
session.save_path = "/tmp"

Pour ensuite configurer le pool pour apache.

nano /etc/php/7.0/fpm/pool.d/www.conf

Et vérifiez que les valeurs correspondent à ceci.

listen = /run/php/php7.0-fpm.sock
user = www-data
group = www-data

On en profite pour optimiser un minimum :

pm = dynamic
pm.max_children = 20 
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

3) Apache

On modifie la configuration de fascgi (que vous avez déjà activé n'est-ce pas !)

nano /etc/apache2/mods-available/fastcgi.conf

et mon modifie comme suis :

<IfModule mod_fastcgi.c>
     AddType application/x-httpd-fastphp .php
     Action application/x-httpd-fastphp /php-fcgi
     
    # la vielle config de PHP5 qu'on garde en commentaire au cas ou
    # Alias /php-fcgi /usr/lib/cgi-bin/php5-fcgi
    # FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -appConnTimeout 10 -idle-timeout 250 -socket /var/run/php5-fpm.sock -pass-header Authorization
     
    # PHP7
    Alias /php-fcgi /usr/lib/cgi-bin/php
    FastCgiExternalServer /usr/lib/cgi-bin/php -appConnTimeout 10 -idle-timeout 250 -socket /run/php/php7.0-fpm.sock -pass-header Authorization
     
    # si vous avez Apache 2.4+
     <Directory /usr/lib/cgi-bin>
      Require all granted
     </Directory>
</IfModule>

et on redemarre le bousin :

service apache2 restart
service php7.0-fpm restart

Vous pouvez toujours vérifier si vous avez tout bien installé.

php -version

4) faites des test

Vérifiez un peut toutes les différentes appli que vous utilisez, si elle sont incompatibles vous avez 99% de chance qu'elle plante salement avec un gros message bien méchant (un peut comme si un allemand vous insulte).

5) Divers

Applications compatibles :

J'ai testé les applis suivantes sans problème :

OpCacheGUI
symfony 2.8.1
FreshRSS
Owncloud 8.x

Normalement la liste (absolument pas exhaustive ) suivant est réputé compatible :

Drupal 8 +
Magento 2+
WordPress 4.3.1+
OctoberCMS
Flarum v0.1.0-beta.4 +
PyroCMS v3 beta2 +

Performances :

Pour mesurer l’efficacité de mon serveur j'utilise http://www.php-benchmark-script.com/

php 5.6 : 22.4 secondes
php 7 : 6.894 secondes

Score sans appel n'est-ce pas ? à savoir que si on utilise pas php-fpm mais la version apache2Handler je perd une seconde au bench

Sources :

https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/
https://github.com/PeeHaa/OpCacheGUI
http://www.php-benchmark-script.com/

Avatar de l'utilisateur Nodoka

Nodoka

PedoQueen des intrawebz 2.0, antéchristine de la connerie, j'aime les loli, les vocaloid, l’humour noir (car le blanc est raciste) et les Animés. Promis je te mangerais trollement bien avec amour. Ma devise : "If her age is on the clock, she's old enough for the cock".

Articles Aléatoires

Le htaccess Part Ouane

Le htaccess Part Ouane

Faire un joli HTACCESS, simplement et rapidement un site sous apache Voir +
Integration d'OpenGraph

Integration d'OpenGraph

Integrer rapidement a facilement opengraph en html pour facebook et twitter Voir +
Sélection d'anime du printemps 2016

Sélection d'anime du printemps 2016

Petite sélection personnelle et non exhaustive des animes du printemps 2016 Voir +

Dernieres Quotes DTC

<Moi> Très drôle aujourd'hui au taff !

<Poutix> Raconte

<Moi> Extrait de la conversation :

<Moi> Moi : « Je peux coder le site si tu veux, même si ça m'arrangerait que non »

<Moi> Patron : « Mais non t'as pas besoin, prend un fichier word et fais enregistrer sous, il te propose le format html ! »

<Moi> Moi : « Non mais ça marche pas comme ça, faut d'abord que je code en html, là ça change juste le format »

<Moi> Patron : « Si ça le propose c'est que ça marche, aller essaye »

<Moi> ...

<Moi> Moi : « Tu vois ça marche pas »

<Moi> Patron : « Bah si, ça l’ouvre dans google chrome »

<Moi> Moi : « Oui ça l’ouvre mais y a aucun code derrière »

<Moi> Patron : « Mais pourquoi tu veux du code ? »

<Moi> Moi : « Mais là ça marche juste que c’est du texte, tiens regarde je mets une image »

<Moi> Patron : « T’as fais quoi ? Y a plus rien qui marche ! »

<Moi> Moi : « Je te le dis depuis 1h, faut du code dedans »

<Moi> Intervention de l’autre stagiaire

<Moi> Autre : « En gros là ça change juste ton extension pas le contenu de ton fichier »

<Moi> Patron : « Je comprends rien. Mais bon, t’es parti pour tout coder. »

<Poutix> Du génie

<Ramos> Captain Obvious

#19340 - Voir les commentaires

Neremsa : Je meurs à petit feu.

Elric : De ?

Neremsa : De ce cours qui bouffe mon âme

Elric : ^^

Neremsa : Nan mais il (le prof) a reproduit le phénomène de la bulle temporelle

Neremsa : "ohputain ça fait 15 min qu'il parle"

Neremsa : *consultation de l'heure sur le pc : 5 min sont écoulée depuis le début du cours*

Elric : Ne regarde plus l'heure, à chaque fois que tu y penses le temps retourne au début ^^

Neremsa : Réfléchir aux implications théoriques, quantiques et philosophiques de ta phrase est plus passionnant que mon cours.

#19337 - Voir les commentaires

Mounts : bordel

Mounts : j'ai rêvé que je me créais un mot de passe

Mounts : un truc hyper secure et tout

Mounts : impossible à cracker et facile à retenir

Mounts : J'arrive à me dire dans le rêve "réveille-toi faut absolument le noter"

Mounts : Ce que je fais apparemment

Mounts : je me lève ce matin : m0unts

Mounts : ><

#19341 - Voir les commentaires

Tom : pas de conseils à prendre de cet eunuque ^^'

Pralinette : eunuque?

Sytarie : Un eunuque c'est quelqu'un à qui on a retiré le cou (la nuque plus précisément) chirurgicalement en fait.

Pralinette : ah x3

Pralinette : mais ca fait pas un peu mal?

#19342 - Voir les commentaires