Configurer OpCache dans Docker

Image utilisateur

Comme annoncé dans un précédant article, j'ai récemment migré mon site web vers une infrastructure Docker.

J'ai donc utilisé un conteneur PHP tout simple, mais plutôt que de partir d'un conteneur standard Ubuntu ou Debian et d'y installer PHP via les dépôts, j'ai préféré utiliser le conteneur officiel PHP proposé par Docker. Je l'ai préféré à une solution standard, car il propose plusieurs versions de PHP (5.4, 5.5 et 5.6) et qu'il est très facile d'y installer diverses extensions. 

Après une semaine, les résultats étaient plutôt positif, mais lors d'une vérification avec un simple phpinfo, je me suis rendu compte que par défaut, le cache opcode pourtant activé par défaut depuis php5.5 ne l'était pas. Bref, les performances étaient quand même pas génial, avec une moyenne de 15 requêtes traités par seconde.

Créer votre système d'accroche pour Gitlab

Image utilisateur

Dans le cadre d'un développement, un logiciel de versionning de code est souvent utilisé car il permet de garder les différentes versions du logiciel et de faciliter son déploiement sur des serveurs quand il s'agit de projet web.

Dans le cadre de mon travail, j'ai eu à mettre en place un système d'accroche ou hooks lié au logiciel Gitlab (logiciel open source proposant les mêmes fonctionnalités que github). Jusqu'à récemment, le logiciel de gestion de code utilisé était Subversion, mais les nouveaux projets étaient gérés avec Gitlab (et donc git). Jusqu'à présent, les commits se faisaient depuis l'ordinateur du développeur puis celui-ci allait faire les commandes de pull manuellement sur les différents serveurs (test, production, parfois plusieurs serveurs pour les systèmes en cluster).

Pour un projet, j'utilisais donc Gitlab, mais étant encore au stade de développement et ayant donc des modifications fréquentes, je ne me voyais pas me connecter plusieurs fois par jours sur le serveur afin de déployer les modifications manuellement. En partant d'un simple script PHP, qui s'occupait de faire les pull automatiquement, j'ai amélioré le système afin d'avoir une configuration beaucoup plus complexe des dépôts avec possibilité de lancer des scripts avant et après chaque mise à jour, une gestion très fine des branches à "accrocher", des rapports d'exécution par mail...

Tester votre serveur web avec Apache Benchmark

Il est souvent intéressant de savoir comment un serveur web se comporte face à un nombre important de connexion afin d'être sûr que votre serveur ne rendra pas l'âme si vous faites soudain face à un afflux de visiteurs.

Pour ce faire, il existe énormément d'outils différents pour faire des benchmarks de serveurs web. Certains sont très complexes et permettent de gérer différents scénarios avec une liste de requêtes à faire avec des paramètres. Ces outils tels JMeter, bien que très puissant ont l'inconvénient d'être long à configuré ce qui n'est pas toujours utile quand on veux juste tester la puissance brut d'une page (notamment si la page est censée faire un traitement lourd, il y aura alors moyen de rechercher des pistes d'améliorations).

Créer un serveur de développement avec Virtualbox

Après avoir vu plusieurs messages sur différents forums où des personnes avaient les plus grandes peines du monde à faire fonctionner des logiciels comme EasyPHP ou Wamp, je me suis rendu compte à quel point la solution que j'utilise depuis près d'un an est simple et paramétrable. Wamp est un bon logiciel qui fait ce qu'on lui demande (c'est le plus important), mais il se trouve vite impuissant quand on souhaite ajouter des extensions PHP qu'il ne supporte pas, ou que l'on modifie trop profondément la configuration de celui-ci. De plus, Wamp fonctionne sur un environnement Windows alors que la plupart (voir la totalité) des hébergeurs proposant PHP ne proposent que des serveurs sous Linux. C'est un gros problème surtout quand l'on connait les nombreuses différences entre les versions Windows et Linux de PHP. C'est pour cette raison que depuis quelques temps, j'ai fait le choix d'installer une machine virtuelle sous Ubuntu Server qui me sert de serveur de développement en remplacement de Wamp (ou Mamp sous Mac). On pourrait croire que cela rend plus compliquer le développement, mais la gestion réseaux de Virtualbox permet d'accéder à une machine virtuelle depuis l'ordinateur hôte. Ainsi la machine virtuelle s'efface complètement à tel point qu'on a tendance à oublier de la démarrer au début de la journée :) .

Je vais donc vous proposer aujourd'hui, un article qui vous guidera pas à pas pour créer un serveur de développement pour PHP/MySQL sous Ubuntu Server à l'aide de Virtualbox.