web-dev-qa-db-fra.com

Puis-je migrer de PHP 5.3.10 vers PHP 5.6.0?

Je suis essentiellement un développeur PHP. J'utilise actuellement buntu Linux 12.04 LTS sur ma machine locale.

J'utilise la version PHP suivante pour développer mon projet PHP:

php -v //command run at terminal to know the `PHP` version installed

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul  7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Il y a quelques jours, une nouvelle version stable de la version PHP (PHP 5.6.0) a été publié par l'équipe de développement de PHP.

Ma question est, car j'utilise une version PHP sur ma machine locale qui est trop ancienne, ainsi que toutes les versions PHP inférieures à 5.4 sont officiellement non pris en charge ou annoncés en fin de vie, dois-je opter pour PHP 5.6.0?

Si votre réponse est oui, veuillez m'expliquer comment procéder? Le code que j'ai écrit dans mon projet fonctionnera-t-il correctement après cette migration? Quels changements dois-je faire?

Si votre réponse est non, veuillez m'expliquer en détail pourquoi?

Avant de poser cette question, j'ai parcouru la documentation Google et PHP. Là, j'ai trouvé des notes de migration pour les migrations de version suivantes:

   **5.3.x->5.4.x
   5.4.x->5.5.x
   5.5.x->5.6.x**

Impossible de migrer depuis PHP 5.3.10 à PHP 5.6.0.

Alors, quelqu'un peut-il m'aider à cet égard?

Si vous avez besoin de plus amples informations concernant mon problème, veuillez me le faire savoir.

12
PHPFan

TL; DR PHP 5.3.x recevra toujours des mises à niveau de sécurité par Ubuntu mais passera à 14.04.1 pour une version plus récente

Vous pouvez télécharger et construire/installer la source pour PHP 5.6 à partir du site Web, mais ne le faites pas, car cela signifie que vous risquez de perdre la stabilité de votre système parce que d'autres packages sur votre système ne seront pas conçu pour cette version et vous devrez la mettre à niveau manuellement chaque fois qu'une nouvelle version sortira, risquant de la stabilité si ces mises à niveau sont liées à la sécurité car vous ne les obtiendrez pas rapidement comme vous le feriez avec un gestionnaire de paquets.

Au lieu de cela, je vous suggère de mettre à niveau votre distribution vers Ubuntu 14.04.1, qui contient PHP 5.5.9; beaucoup plus récent que 5.3.10. Bien sûr, 5.3.x recevra toujours des mises à jour de sécurité jusqu'à Ubuntu 12.04 atteint EOL mais si vous voulez les dernières fonctionnalités, vous devez effectuer une mise à niveau dist. Vous pouvez le faire graphiquement dans le programme de mise à jour du logiciel Ubuntu ou exécuter apt-get dist-upgrade en tant que root (par exemple avec Sudo) dans le TTY si vous utilisez la version du serveur. Mise à jour: utilisez Sudo do-release-upgrade à la place.

Edit: Juste pour clarifier, apt-get est le gestionnaire de paquets. Si vous utilisez généralement des outils graphiques pour installer et mettre à jour des packages (Ubuntu Software Center, Synaptic, etc.), voici quelques commandes simples. # indique qu'il doit être exécuté en tant que root (par exemple Sudo apt-get install <package>), $ indique que vous n'avez pas besoin de Sudo. Remplacez les éléments par ceux que vous souhaitez utiliser (par exemple apt-get install chromium-browser)

#apt-get update met à jour les référentiels
#apt-get upgrade met à niveau le vers les nouveaux packages (exécutez d'abord ce qui précède!)
#apt-get upgrade <package> est comme ci-dessus, mais ne met à niveau qu'un seul package (pas utile sauf si vous avez une raison spécifique)
#apt-get install <package> installe un package
#apt-get remove <package> supprime un package
#apt-get autoremove supprime automatiquement les packages qui ont été installés par des dépendances et qui ne sont plus nécessaires
$apt-cache search <query> recherche la requête que vous avez donnée
$apt-cache show <package> affiche les informations d'un package
#yes "" | apt-get install <package> installe un package répondant à la réponse par défaut à tout (vous pouvez utiliser yes avec de nombreuses commandes)
#apt-get dist-upgrade met à jour tout (et supprime certains paquets) alors qu'il peut généralement être retenu.

8
DevilishDB

Mettre à niveau vers Ubuntu 14.04.1 afin d'obtenir PHP 5.5.9 en tant que package, et bénéficier des mises à niveau d'Ubuntu. Je n'irais pas de toute façon pour 5.6.0 dans un environnement de production.

De this PHP page vous obtenez des informations sur les migrations de 5.3 à 5.4 et 5.4 à 5.5.

Outre les changements et les nouvelles fonctionnalités mentionnés, les équipes PHP ont travaillé sur la gestion et l'optimisation de la mémoire entre 5.3 et 5.5.9. Ces améliorations à elles seules motivent la migration.

Des conseils pour la migration

  • APC: PHP intègre désormais OPCache en remplacement d'APC. Si vous avez utilisé des variables APC, certaines informations sur OPCache sont disponibles - dans mon cas, utilisez l'ancien APC via le nouveau module (changement de nom), php5-apcu (notez le 'u'), était la meilleure alternative.

  • Les modules ont été installés dans un répertoire différent. Si vous avez l'intention de conserver votre php.ini les extension_dir devra peut-être être ajusté

  • De plus, le /etc/php5 dir est plus exigeant en termes de structure: en dessous de ce dir se trouve mods-available (à la nginx ) qui contient la liste des modules dans les fichiers. Puis dans cli, fpm, Apache2... dirs est un conf.d dir qui a des liens symboliques vers ce principal mods-available modules ini fichiers; ajoutez seulement un lien si vous avez l'intention d'utiliser ce module pour cela PHP (par exemple mysqli peut ne pas être nécessaire pour cli).

  • JSON: le module php5-json doit être installé (apt-get install php5-json) afin d'obtenir les fonctions PHP JSON (json_encode, decode...)

  • notez qu'il semble y avoir un problème de liaison entre /etc/php5/MODE/php.ini (MODE étant cli, ...) vers un principal php.ini quelque part (par exemple dans fpm ) - lors des mises à jour d'Ubuntu, une erreur empêche l'installation - je viens de copier le php.ini car ils sont les mêmes pour tous les modes dans mon cas.

En outre, la migration s'est bien déroulée.

5
Ring Ø