Cette section regroupe un ensemble de notes, ou recettes auxquelles je peux me référer plus ou moins régulièrement, l'idée étant de les rendre publiques, pour le cas où elles pourraient servir à d'autres.
Docs de référence
HTML, CSS HTML Entities https://dev.w3.org/html5/html-author/charref Flexboxes https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Articles persos
Installer un serveur MineCraft, c'est plutôt simple quand on sait par où commencer, voilà donc une recette rapide pour installer un serveur suffisamment complet; qui dit complet implique de ne pas utiliser le package MineCraft vanille (celui de l'éditeur) mais un de ceux qui gèrent notamment les plugins, j'ai choisi pour ça Spigot. Je pars comme d'habitude d'une Debian nue, ici une Jessie (...
Un serveur FTP, on en a encore besoin assez couramment, que ce soit pour WordPress ou bien sitecopy. Nous allons donc voir les étapes nécessaires à l'installation d'un serveur PureFTPd, avec définition des comptes dans une base MySQL, pour ne pas avoir à les créer au niveau système. L'installtion du moteur proprement dit est triviale: Puis on crée une base MySQL (appelons-la "pureftpd"),...
En cette année 2016, PHP 7 a un peu de mal à se faire une place, et pour cause. Debian est clairement à la traine sur le sujet, et la plupart des tutos en ligne expliquent surtout comment installer un PHP 5.6 avec les dernières distributions mais la version 7 semble garder un statut de paria. Dans le même temps, l'Ubuntu Xenial (LTS) propose PHP 7 par défaut donc allons-y, je pense avoir is...
Pour réaliser un module Apache, le plus simple est de créer un module dynamique (DSO, pour Dynamic Shared Object), un poil moins efficace qu'un module statique mais pour la phase de mise au point c'est tout de même largement plus cool, et je dirais même pour la suite, plus facile à installer; tout ça reste au final une question de goût. Notre principal outil sera l'utilitaire Apxs (Apxs2 p...
Il reste encore des cas où l'on doit ouvrir des comptes FTP, que ce soit pour les besoins d'un WordPress ou bien de transferts automatiques entre serveurs, ce genre de choses. Voyons comment faire avec PureFTPd configuré pour exploiter une base de comptes sous MySQL. On va considérer que MySQL et PHPMyAdmin sont déjà installés (si vous n'utilisez pas PHPMyAdmin et préférez la ligne de com...
Supposons que j'aie monté un petit serveur http NojeJS qui tourne sur le port 8080, bien. Maintenant, j'aimerais pouvoir l'appeler via un sous-domaine de mon site sous Apache, par exemple 'test.riffzone.net'. Côté Apache, on a besoin de deux modules, 'proxy' et 'proxy_http'. On les installe comme suit: Dans mon fichier de configuration Apache des vhosts de mon site, je rajoute: Puis je dem...
J'ai déjà décrit le monitoring d'un service NodeJS avec Supervisor, c'est bien mais PM2 contrairement à Supervisor est spécialisé dans le pilotage de services NodeJS, et ça se voit. L'installation est on ne peut plus simple: On suppose à l'évidence que NodeJS et NPM ont déjà été installés. La première ligne installe PM2, la seconde installe les scripts nécessaires pour relancer ...
L'installation de NodeJS sur une Debian 8 (Jessie) est toujours en retard de trois extinctions de masse sur le site de l'outil, on va donc l'installer depuis les sources téléchargés depuis le site: Si la compilation échoue (typiquement vous n'avez pas assez de mémoire sur votre machine et cpp lâche l'affaire), téléchargez une version déjà compilée, ici la dernière versoin stable du m...
Apache intègre un petit module de monitoring qui permet de suivre les requêtes en cours, la charge du serveur et toute cette sorte de choses. Le module en question est implémenté comme un classique module Apache 'mod_status', qu'on trouvera matérialisé dans /etc/apache2/mods-available sous deux fichiers 'mod_status.load' et 'mod_status.conf'. On l'activera par la commande a2enmod mais il se...
Inutile de débattre de l'utilité ou non d'un tel composant, on peut ne jamais en avoir besoin tout comme s'apercevoir un jour que tiens, on a été blacklisté sur telle RBL et que nos mails sortants n'arrivent plus à destination. Voyons comment installer et utiliser l'outil "Linux Malware Detect" proposé par R-fx Networks. L'adresse du projet est: https://www.rfxn.com/projects/linux-malware-...
Une seule adresse, Rufus: https://rufus.akeo.ie J'en ai testé d'autres avant de tomber sur le bon, Rufus m'a spontanément signalé des fichiers qui manquaient pour rendre vraiment ma clé USB bootable, me proposant de les télécharger lui-même sans plus de formalités. Le truc est gratuit et même open-source, que du bon.
PhotoSwipe (http://photoswipe.com) permet de mettre en place assez facilement une galerie de photos. Pour paramétrer la liste d'images à utiliser, on génère typiquement une liste JSON de ce type: Nous voudrions tracker les images consultées, c'est-à-dire les enregistrer dans un fichier (ou une base de données) avec la date et l'heure de l'affichage en question. Pour cela, créons un class...
dans app/build.gradle, section android, on ajoute: productFlavors { store { packageName "com.pixtos.app" buildConfigField "boolean", "STORE_FLAVOR", "true" } download { packageName "com.pixtos.app" buildConfigField "boolean", "STORE_FLAVOR", "false" } } Si erreur "Gradle DSL method not found: 'packageName()'"...
NodeJS permet de construire des services web plus efficaces pour certains usages; le problème classique étant de faire fonctionner cette application javascript en mode serveur. Laissons de côté l'installation de NodeJS, vous trouverez tous les éléments sur le site nodejs.org suivant votre distribution. Prenons l'exemple d'un script app.js logé dans '/home/mynodeapp'. Notre serveur est par...
Apache, c'est super. Les services NodeJS aussi, ou bien en GoLang, tant qu'on y est. Mais tout ce petit monde ne peut pas naturellement cohabiter sur le port 80, à moins de passer par un proxy qui traduira des (sous-)domaines différents en autant de ports locaux (pas le port 80, réservé au proxy). C'est ce que nous allons faire ici avec HAProxy. Apache en 8080 pour tous les domaines par défau...
Pour des besoins particuliers, tel qu'un serveur de tracking, une architecture Apache/PHP/MySQL peut vite atteindre ses limites. Un serveur plus simple en Go peut suffire, retourner un pixel en enregistrant toutes les requêtes ne demande pas une sophistication extraordinaire. Nous partirons d'un serveur Debian nu, notamment sans Apache ou équivalent. Commençons par installer Go: Nous allons...
Les sauvegardes, c'est important. Je ne m'étendrai pas ici sur les différents systèmes existants, mais sur le cas particulier des sauvegardes de bases MySQL vers un répertoire local du serveur, lequel sera sauvegardé ainsi que les autres répertoires de fichiers plats. Le cahier des charges est le suivant: Exporter chaque nuit à heure fixe l'intégralité des bases du serveur vers un réper...
Installation du Java Development Kit Les outils de compilation nécessitent Java, à la fois le runtime et le JDK. Téléchargeons d'abord l'installeur du Java Development Kit (JDK) depuis la page suivante: http://www.oracle.com/technetwork/java/javase/downloads/index.html Au moment de l'écriture de cet article, la version courante est la "7.0_51", nous chargeons donc la "Java Platform (JDK) 7...
Téléchargement du framework Téléchargeons depuis www.wxwidgets.org la dernière version stable, la 3.0.0 au moment de l'écriture de cet article, depuis cette adresse: http://wxwidgets.org/downloads ("Source for Linux, OS X, etc" dans la section "Source Code") On décompresse le dossier que l'on place à la racine, sous le nom "wxWidgets". Installation du compilateur Chacun son école, wx...
Téléchargement du framework Téléchargeons depuis www.wxwidgets.org la dernière version stable, la 3.0.0 au moment de l'écriture de cet article, depuis cette adresse: http://wxwidgets.org/downloads ("Windows ZIP" ou "Windows 7Z" dans la section "Source Code") On décompresse le dossier que l'on place à la racine, sous le nom "wxWidgets". Installation du compilateur Chacun son école, wx...
Quel que soit votre hébergeur (éventuellement vous-même, avec un vieux PC reconverti), je supposerai par la suite que vous avez installé une distribution Debian nue, sans aucun logiciel autre que le système de base. Une partie des sections ci-dessous est optionnelle, suivant vos besoins. Accès SSH Si votre serveur est hébergé à l'extérieur (chez OVH, DigitalOcean, etc), vous devez dé...
La plupart des sites se contentent d'un domaine en www.monsite.com, d'autres (dont moi-même) multiplient les sous-domaines à tort et à travers; et trouvent que déclarer chaque sous-domaine dans la zone DNS puis dans les VHosts Apache c'est très fatiguant, et puis il faut attendre la propagation de la zone, bref c'est d'un ennui mortel. Heureusement, il y a les wildcards, aussi bien côté DN...
Notre serveur Debian peut crasher, et de manière irrécupérable. Shit happens. Si vous n'avez pas une arborescence d'une centaine de Gigas de petits fichiers à sauvegarder, alors l'utilitaire sitecopy est une solution plutôt pratique que j'utilise régulièrement. Son principal défaut est de maintenir l'état des fichiers sauvegardés dans un fichier xml, ce qui est de la dernière crétiner...
2014-02-13
Eliminer les accents d'une chaîne de caractères La chaîne en entrée doit être ici en UTF-8, voir la documentation de la fonction htmlentities pour d'autres encodages.
2014-02-13
On a parfois besoin d'une référence rapide concernant certaines commandes utiles, notamment en cas de panique. Disque système qui déborde, processus bloqués, les cas ne manquent pas. Identifier les plus gros fichiers d'un répertoire [DIRPATH] est le chemin du dossier racine, [SIZE] la taille minimale des fichiers Par exemple: Le premier exemple liste les fichiers sous /var/www de plus ...
Concernant mes notes sur l'installation et l'entretien d'un serveur, ma configuration de prédilection est clairement celle d'un serveur Debian nu, on trouve de très bons serveurs dédiés notamemnt chez DigitalOcean.com pour quelques dollars par mois, sans engagement de durée.
Disclaimer: Je n'apporte aucune garantie d'aucune sorte sur le bon fonctionnement ou l'adéquation à votre problème ou configuration, les informations données ici le sont en l'état et à titre essentiellement didactique, même si un feedback est toujours le bienvenu. En particulier, si l'utilisation du contenu de ces pages devait provoquer l'incendie de votre disque dur, de votre maison, un débarquement d'aliens ou le prochain conflit thermonucléaire global, je ne saurais en être tenu responsable, merci.