wordpress-permalinks-postname

WordPress : changer la structure des permaliens

wordpress_icon_blue Il y a quelques semaines, j’ai décidé de changer la structure des permaliens (ou permalinks) sous WordPress.

Je me suis rendu compte que finalement, il y avait très peu d’intérêt à garder la date de création de l’article dans l’URL étant donné qu’elle est présente dans chaque article, cela permet de raccourcir les URLs et mes articles sont plutôt timeless.

Cela se fait en 2 étapes, en 5 minutes top chrono.

Etape 1 : changer la structure des permaliens WordPress

C’est tout simple, il suffit de se rendre dans Settings > Permalinks et de sélectionner Post name:

wordpress permalinks postname

Depuis WordPress 3.3, choisir l’option /%postname%/ ne pose plus de problème de performance. C’était le cas auparavant et l’option n’était pas disponible.

Validez les changements.

Lire la suite

xmarks

Firefox : migrer de Xmarks à LastPass

xmarks

J’ai récemment installé Linux Mint Debian Edition sur mon laptop. L’OS est beau, stable, on trouve facilement ses marques lorsqu’on vient d’Ubuntu et il n’y a pas des mises à jour à faire tous les jours.

Sous Firefox, j’ai l’habitude de synchroniser mes marque-pages et mots de passe avec l’extension Xmarks.

Cela me permet d’avoir tout le temps mes favoris et de ne pas avoir à me souvenir de 43 743 différents mots de passe.

Le problème : impossible de rapatrier les mots de passe depuis le serveur Xmarks

Lorsque l’on installe une version récente d’Xmarks, on peut rapatrier les marque-pages mais l’option pour rapatrier les mots de passe n’est plus disponible.

Xmarks a été racheté par LastPass il y a 2 ans et ils ont commencer à vous pousser à migrer la gestion des mots de passe avec l’extension LastPass.

Je préfère n’installer qu’une seule extension (qui a fait ses preuves) plutôt que de devoir en réinstaller une autre.

La solution : rapatrier les mots de passe

En fait l’option de rapatriement des mots de passe est juste cachée dans Xmarks dorénavant : ceux qui l’utilisent depuis longtemps la voient toujours, les petits nouveaux (ou qui viennent de l’installer) ne la voient pas par défaut pour les décourager de l’utiliser.

Lire la suite

MySQL : résoudre l'erreur "Table is marked as crashed and last (automatic?) repair failed" photo

MySQL : résoudre l’erreur “Table is marked as crashed and last (automatic?) repair failed”

Hier soir, gros bug sur le site : plus moyen d’accéder aux pages du site ou de sauvegarder un article. Je lance un top, le serveur n’a pas l’air d’être surchargé du tout. Je relance Apache, Varnish et MySQL et là…

Stopping MySQL database server: mysqld failed!
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! ... failed!Code language: JavaScript (javascript)

Ah cette erreur-là, je l’ai déjà eue ! Je fais un peu de ménage et je relance MySQL :

/etc/init.d/mysql restart 
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
ERROR 144 (HY000) at line 1: Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

Et là, c’est le drame : le terminal est dans les choux comme attendant quelque chose et en lançant le site, il n’y a plus aucune information. Rien que le design, plus d’articles. Gloups.

mysql table crash

Je jette un coup d’oeil sur le serveur, j’ai mes sauvegardes des derniers jours mais pas de tout ce que j’ai écrit aujourd’hui. Je tente un REPAIR mais phpmyadmin refuse catégoriquement :

SQL show index from `wp_posts` failed : Table './skyminds/wp_posts' is marked as crashed and last (automatic?) repair failedCode language: JavaScript (javascript)

La solution : lancer myisamchk

La solution que j’ai utilisé consiste à lancer la commande myisamchk, qui est une commande de bas niveau qui va vérifier et réparer notre table.

On commence par arrêter le serveur MySQL :

/etc/init.d/mysql stop

et on lance myisamchk avec ces paramètres sur notre base de données qui se trouve sous /var/lib/mysql/:

myisamchk -r -v -f --sort_buffer_size=128M --key_buffer_size=128M /var/lib/mysql/skyminds/wp_posts.MYICode language: JavaScript (javascript)

Voilà ce que cela retourne :

- recovering (with sort) MyISAM-table '/var/lib/mysql/skyminds/wp_posts.MYI'
Data records: 0
- Fixing index 1
  - Searching for keys, allocating buffer for 295411 keys
  - Dumping 3420 keys
- Fixing index 2
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 3
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 4
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 5
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 6
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 7
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 8
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 9
  - Searching for keys, allocating buffer for 3421 keys
  - Dumping 3420 keys
- Fixing index 10
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 11
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
- Fixing index 12
  - Searching for keys, allocating buffer for 1177347 keys
  - Dumping 275199 keys
Data records: 3420Code language: JavaScript (javascript)

On relance MySQL :

/etc/init.d/mysql start

et cette fois, tout se passe bien :

Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Tout est revenu mais je me dis que je devrais peut-être passer à 2 sauvegardes par jour…

Linux : forcer Skype à détecter une webcam USB avec video4linux photo

Linux : forcer Skype à détecter une webcam USB avec video4linux

Le problème : une webcam USB non reconnue par Skype sous Ubuntu

J’ai de nouveau installé Skype sur ma machine après des années sans l’avoir utilisé et évidemment, ma webcam n’est pas reconnue sous Ubuntu. Après quelques bidouillages, on y arrive quand même.

Solution : créer un raccourci pour lancer Skype avec le mode de compatibilité video4linux

Il est nécessaire d’indiquer à Skype de précharger la compatibilité avec video4linux donc on installe ce dernier :

sudo apt-get install libv4l-0Code language: JavaScript (javascript)

Ensuite, si vous avez un système 32-bits, entrez ceci dans le terminal :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Si vous avez un système 64-bits :

cd ~
echo "#! /bin/sh" > skype-cam-fix
echo "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype" >> skype-cam-fix
chmod a+x skype-cam-fix
sudo mv skype-cam-fix /usr/local/bin Code language: PHP (php)

Lire la suite

Serveur dédié : configurer la limite mémoire pour PHP et Suhosin photo

Serveur dédié : configurer la limite mémoire pour PHP et Suhosin

suhosin_logo

Aujourd’hui, je vous livre la solution à un problème auquel vous avez peut-être été confronté lors de la configuration de votre serveur dédié – il s’agit d’une erreur que l’on peut trouver dans les fichiers logs d’Apache :

Dec 12 16:19:26 mail suhosin[22860]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker '82.83.84.85', file '/home/skyminds/public_html/wp-admin/admin.php', line 96)Code language: JavaScript (javascript)

Etape 1 : paramétrage de memory_limit dans php.ini

On édite notre fichier php.ini :

nano /etc/php5/apache2/php.ini

On recherche la variable memory_limit et on l’augmente à 256MB :

; Maximum amount of memory a script may consume (128MB)
; http://php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 256MCode language: JavaScript (javascript)

Note : vérifiez que vous éditez bien le bon fichier php.ini ! Je me suis aperçu après quelques essais que celui qui correspondait à mon installation était en fait /etc/php5/apache2filter/php.ini.

Lancez un phpinfo();pour être sûr du fichier à éditer.

Lire la suite

Un écran d'ordinateur avec un fond bleu et violet présentant le navigateur Opera.

Installer des scripts JavaScript utilisateur sous Opera

Il est possible d’ajouter des scripts JavaScript utilisateur (ou userscripts) sous Opera pour ajouter des fonctions supplémentaires au navigateur.

Cependant, ce code ne peut être lancé directement, il y a quelques réglages à effectuer.

Voici comment configurer Opera pour y lancer nos scripts JavaScript en quelques étapes.

Réglages du dossier des scripts JavaScript sous Opéra

Allez dans Tools –> Preferences (Outils –> Préférences) ou faîtes Ctrl + F12 au clavier.

Naviguez dans Advanced –> Content –> JavaScript Options (Avancé –> Contenu –> Options JavaScript).

Dans la nouvelle fenêtre, cliquez sur le bouton Choose et sélectionnez le dossier qui contient les fichiers JS.

Lire la suite

Linux : résoudre les erreurs communes de clé GPG dans APT photo 1

Linux : résoudre les erreurs communes de clé GPG dans APT

De temps en temps, il arrive qu’en faisant un apt update, on obtienne quelques erreurs de clés GPG, soit parce qu’elles ont changé, soit parce qu’elle n’ont pas été ajoutées en même temps que les dépôts auxquels elles sont associées.

Voici une petite compilation des situations que j’ai connu jusqu’à présent.

La clé publique n’est pas disponible : NO_PUBKEY

Le message d’erreur habituel, dont voici un exemple :

W: GPG error: http://ppa.launchpad.net maverick Release: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 632D16BB0C713DA6Code language: JavaScript (javascript)

Edit : voici une simple commande Shell qui permet de récupérer la clé et l’ajouter au trousseau directement, en une seule ligne de code:

sudo apt-get update 2>&1 | 
sed -ne 's?^.*NO_PUBKEY ??p' |
xargs -r -- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keysCode language: JavaScript (javascript)

Si vous souhaitez faire cela manuellement, voici la méthode manuelle :

Ce qui est important ici, c’est le code de la clé : 632D16BB0C713DA6. Nous avons besoin des 8 derniers caractères de cette clé pour taper notre commande. Ces 8 caractères sont 0C713DA6 donc dans le terminal, on entre :

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 0C713DA6Code language: JavaScript (javascript)

puis:

gpg -a --export 0C713DA6 | sudo apt-key add -Code language: JavaScript (javascript)

On relance enfin la mise à jour :

apt-get updateCode language: JavaScript (javascript)

La clé ayant été ajoutée, le message d’erreur disparaît.

Lire la suite

Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH photo 1

Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH

Aujourd’hui, nous abordons la sauvegarde des fichiers essentiels du serveur.

Backup Manager permet d’effectuer des sauvegardes quotidiennes du système : il crée des archives dans plusieurs formats de compression (tar, gzip, bzip2, lzma, dar, zip) et peut les exporter vers un serveur FTP.

Dans notre cas, nous allons l’installer et le configurer pour envoyer tout ce qui est important sur notre serveur sur le serveur FTP externe de sauvegarde fourni gratuitement par OVH (100 Go).

Etape 1 : installation de Backup Manager

C’est classique :

apt-get install backup-managerCode language: JavaScript (javascript)

A la fin de l’installation, un assistant se lance et vous permet de configurer des options par défaut. Ou vous pouvez configurer à la main, comme indiqué dans l’étape suivante.

Lire la suite

Auto Draft photo 1

Accélérer le démarrage et l’arrêt d’Ubuntu

Cela fait quelques années que mon système tourne sous Ubuntu et je n’ai jamais eu à réinstaller l’OS.

Et pourtant, on peut dire que je ne le ménage : j’installe des applications, teste tout ce que je trouve sous la main, désinstalle…

Avec le temps, j’ai remarqué qu’Ubuntu mettait de plus en plus de temps à démarrer donc je me suis penché sur l’optimisation du démarrage du système.

Désactiver les services inutiles

Mon PC principal est un desktop donc certains services ne sont pas vraiment utiles : laptop-mode (permet de gérer la fermeture de l’écran), les hotkeys (touches en bleu sur les portables) :

sudo update-rc.d -f laptop-mode remove
sudo update-rc.d -f hotkey-setup remove Code language: CSS (css)

Je n’ai ni lecteur de carte PCMCIA, ni Bluetooth :

sudo update-rc.d -f pcmcia remove
sudo update-rc.d -f pcmciautils remove 
sudo update-rc.d -f bluetooth remove
sudo update-rc.d -f bluez-utils removeCode language: CSS (css)

Si vous avez une connexion ADSL, les services pppd-dns et dns-clean ne vous serviront à rien.

Ces derniers permettent surtout de gérer les connexions de type dial-up (ancien modem RTC).

sudo update-rc.d -f dns-clean remove
sudo update-rc.d -f pppd-dns remove Code language: CSS (css)

Note : pour rétablir un service, tapez:

sudo update-rc.d [nom du service] defaultsCode language: CSS (css)

Lire la suite

Serveur dédié : mettre à jour le noyau Debian de la Kimsufi photo

Serveur dédié : mettre à jour le noyau Debian de la Kimsufi

linux kernel

Aujourd’hui, on met à jour le noyau linux de notre installation Debian sur notre Kimsufi.

Un noyau à jour, c’est toujours mieux pour bénéficier des derniers patchs/améliorations/correctifs de sécurité du noyau.

OVH compile ses propres noyaux, offrant différentes options. Nous choisirons le noyau avec GRS : grsecurity est un correctif de sécurité pour le noyau incluant PaX, un système de contrôle d’accès à base de rôles et différents moyen de renforcer la sécurité générale du noyau.

Téléchargement du dernier noyau linux chez OVH

Une fois loggés en SSH, on se place dans le répertoire /boot :

cd /boot

On regarde ensuite la liste des noyaux linux modifiés par OVH pour les Kimsufi : ftp://ftp.ovh.net/made-in-ovh/bzImage/.

On récupère 2 fichiers : le fichier bzImage et le fichier System.map associé. Pour mon serveur, je prends les versions -grs-ipv6-64 : certaines mesures de sécurité sont incluses dans le noyau made in OVH (-grs), avec support de l’ipv6 sur un système 64 bits.

Nous prenons donc la dernière version du noyau ici : ftp://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/:

wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/System.map-4.1.7-xxxx-grs-ipv6-64
wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/bzImage-4.1.7-xxxx-grs-ipv6-64
wget http://ftp.ovh.net/made-in-ovh/bzImage/latest-experimental/config-4.1.7-xxxx-grs-ipv6-64Code language: JavaScript (javascript)

Lire la suite

MySQL : résoudre le message "Warning: Using a password on the command line interface can be insecure." photo

Résoudre le non-redémarrage du serveur MySQL : le manque d’espace sur une partition disque

Il y a quelques temps, j’ai eu la surprise de constater que le site était down au niveau de la base de données, dont le service refusait catégoriquement de redémarrer. En regardant les logs du serveur, voici ce que j’ai découvert :

/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! failed!Code language: JavaScript (javascript)

La partition sur laquelle se trouvent les bases de données SQL était pleine ! Effectivement, un petit

df -h

m’a appris que la partition /dev/sda1 était pleine à 100% :

Sys. de fich.         Tail.       Occ.       Disp.       %Occ.       Monté sur
/dev/sda1            9,7G       9,3G          0        100%         /
tmpfs                  984M         0        984M          0%        /lib/init/rw
udev                   10M        2,7M       7,4M         27%       /dev
tmpfs                 984M          0        984M           0%       /dev/shm
/dev/sda2            452G       648M      429G          1%       /home

Lire la suite

Serveur dédié : analyse des performances du serveur photo

Serveur dédié : analyse des performances du serveur

Cela fait quelques mois que le nouveau serveur est en place et il est temps de faire un petit bilan au niveau des performances.

Charge processeur

Tout d’abord, bien que le serveur soit équipé des mêmes caractéristiques techniques (même CPU, même quantité de RAM), il s’avère qu’il est beaucoup plus réactif que l’ancien.

Le processeur n’est plus surchargé en permanence et lorsque l’on lance un top, la charge du processeur est le plus souvent entre 0.05 et 0.20, ce qui est idéal.

A titre de comparaison, l’ancien serveur avait une charge souvent supérieure à 2.

Analyse du temps de chargement des pages via Google Webmaster Tools

Il y a quelques semaines, je me suis connecté sur Google Webmaster Tools et lorsque j’ai atteint le graphique du temps de chargement des pages du site, j’ai eu l’agréable surprise de découvrir ceci :

serveur dedie response time 2011

Lire la suite