feub.net

Dev web | PHP | véganisme | blahblah

MySQL 5.6 occupe presque 500Mo de ressources

Depuis la version 5.6.17 de MySQL dans mon environnement de développement WAMP, les ressources occupées par le moteur de base de données flirtent avec les 500Mo.

Ressource avant

C’est plutôt ennuyeux. Il semble qu’il s’agisse de la valeur de la variable table_definition_cache qui est fixée par défaut à 1400, une valeur un peu trop importante pour mes besoins limités en développement local. La documentation informe que la valeur minimale est de 400, et que par défaut celle-ci est établie comme ceci : 400 + (table_open_cache / 2), plafonnée à la limite de 2000.

Cette variable n’est en principe pas présente dans le fichier de configuration de MySQL my.ini, il suffit de l’ajouter, puis de redémarrer MySQL, et le résultat est sans appel : environ 91Mo de ressources dans mon cas.

Ressource après

A noter que la documentation officielle informe que la valeur de table_definition_cache était établie à 400 jusqu’à MySQL 5.6.8

Publicité

Création et ajout d’un certificat gratuit StartSSL à Nginx

J’ai longtemps utilisé des certificats auto-signés pour mes connexions SSL/TLS, bien qu’un tel certificat assure le cryptage de la liaison, elle n’assure en aucun cas la validité de celui-ci. Lorsque c’est moi qui accède à un de mes sites, aucun problème (je peux encore me faire confiance je pense ^.^), mais quid des personnes tiers utilisant mes services? Elles ne peuvent se fier qu’à mes paroles. De plus un certificat auto-signé n’étant pas reconnu par les navigateurs, ceux-ci affichent cette page flashy indiquant les dangers d’accéder à un tel site.

D’un autre coté, un certificat délivré par une autorité compétente a un prix (plus ou moins variable). La solution intermédiaire est offerte par StartSSL, une société qui possède une offre gratuite de certificat SSL appelée Class 1 SSL. C’est un vrai certificat, certe basique et pour une utilisation personnelle, mais reconnu par les navigateurs, donc plus de page d’avertissement de ceux-ci avant de naviguer sur un site sécurisé. Celui-ci est gratuit, avec toutes vos informations d’identité, mais celles-ci ne sont pas vérifiées par StartSSL, donc c’est certainement un point délicat dans le cas d’un site d’e-commerce par exemple. Mais pour simplement sécuriser des pages d’administration, un back-office, c’est amplement suffisant.

Voici décrite ci-dessous la procédure de création et mise en place d’un certificat SSL pour Nginx.

Continuer la lecture

Permissions des fichiers et répertoires d’un serveur web

Cet article établit une base de travail au niveau des permissions de répertoires et fichiers lors de la mise en place d’un serveur web. En effet un serveur HTTP peut contenir plusieurs sites, les fichiers de ceux-ci peuvent être gérés par plusieurs utilisateurs, un utilisateur A ayant accès aux fichiers du site A, mais pas à ceux du site B, alors qu’un utilisateur C, aura accès aux fichiers des site A, B et C par exemple.

Ce qui suit ne s’adresse pas à un type de serveur particulier, mais suppose une machine GNU/Linux et un serveur Nginx ou Apache.

Les permissions

Normalement sous Linux, lorsqu’un fichier est créé, il hérite du groupe de l’utilisateur qui l’a créé. Dans le cas de fichiers et répertoires relatifs à un serveur web, il est préférable que lorsqu’un fichier est créé il hérite du groupe du répertoire parent (en général /var/www), pour faire ceci il faut activer le bit SGID (Set Group ID) du répertoire parent.
Pour se rafraichir un peu les neurones au niveau du concept de permissions sous Linux, voir ce billet.

D’un autre coté, pour travailler convenablement avec ses collaborateurs, il faut prendre soin de modifier le umask, le masque de création de fichier par l’utilisateur, qui est général placé à 022 par défaut, c’est-à-dire que lorsqu’un fichier est créé il aura comme permissions 755, ce fichier n’étant pas éditable par le groupe. Changer le umask en 002 va placer les permissions d’un nouveau fichier en 775.

Continuer la lecture

Mise à jour massive multi-tables MySQL utilisant une procédure stockée

Ce billet est un pur mémo, un quasi copier-coller. Et je n’ai pas trouver un autre titre, aussi générique et banal soit-il.

Pour l’un de mes projets principaux (un système de gestion de pièces de rechange/entrepôt), un gros changement m’a été demandé. Celui-ci, parmi d’autres choses, implique une modification du format du code barre des biens dans la base de données, et ce champ est une clé primaire, donc point délicat.

Le code barre était auto-généré en utilisant les premiers 6 caractères du code fournisseur – si existant – complétés par des zéros, puis un entier incrémenté, toujours complété par des zéros. Il existe donc différentes “typographies” de codes barres, avec et sans caractères alphabétiques : 0000002598 et DMP0000666 peuvent exister.
Maintenant ce code barre est plus simple, il s’agit juste d’un entier incrémenté.

Continuer la lecture

Utiliser Bootstrap pour remplacer la fenêtre de confirmation Javascript

Souvent dans une application lorsqu’on a une fonction qui va supprimer quelque chose, on demande confirmation par sécurité. Dans le développement web, cela se fai(sai)t par exemple avec confirm() de Javascript, déclenché par le clic sur un lien avec l’attribut onclick de la balise a. Ceci est bien old-school pour plusieurs raisons que je ne parlerai pas ici.

Confirmation dans Google Chrome
Confirmation dans Google Chrome

Ce court billet met en place une boîte de dialogue de confirmation utilisant Bootstrap, donc un peu plus jolie que la fenêtre système de confirmation.

Comme on le voit dans le code jQuery, cette action est déclenchée lors d’un clic sur un élément a possédant un attribut data-confirm qui par ailleurs servira de titre à la fenêtre modale. Voici un exemple de lien qui ouvre la modale :

Confirmation modale avec Bootstrap
Confirmation modale avec Bootstrap