403-error

Des images qui renvoient une erreur 403

Aujourd’hui, j’édite un ancien article et le prévisualise pour voir les changements : je m’aperçois alors que l’image de l’article ne s’affiche plus.

Ni une ni deux, je sors mon terminal et tente de récupérer l’image avec wget. Erreur 403. Je vérifie la configuration Apache et Varnish, rien à signaler (et surtout rien n’avait été modifié).

Je vérifie alors le fichier via FTP : il se trouve qu’il ne possédait pas les bons droits!

Evidemment, avec un chmod 600, cela ne risque pas de s’afficher… Les autres images, celles qui s’affichaient bien et renvoyaient un code 200, étaient bien chmodées en 644.

Solution : CHMOD

Il faut donc chmoder l’ensemble des fichiers du répertoires, 640 pour les images ce sera parfait :

find /home/public_html/wp-content/uploads -type f -exec chmod 640 {} \;

et pour les répertoires, 750 c’est correct :

find /home/public_html/wp-content/uploads -type d -exec chmod 750 {} \;

Notez la différence de syntaxe : on utilise f pour les fichiers (files) et d pour les répertoires (directory).

Linux Mint : installer une imprimante HP WiFi photo

Linux Mint : installer une imprimante HP WiFi

Cela fait des mois que j’ai laissé tomber l’installation de l’imprimante HP en WiFi chez mes parents sur mon portable qui tourne sous Linux Mint Debian Edition. La cause ? L’installation qui plante à chaque fois sans le moindre message d’erreur.

Dernièrement, j’ai eu l’occasion de recevoir mon pote Nico dans mon nouveau chez moi. Il voulait changer de distribution linux et je lui avais conseillé Linux Mint (“tu verras, c’est joli ! tout en aluminium brossé !”). Il l’a donc installé et est lui aussi tombé sur l’os de l’installation du driver HP.

Voici donc les étapes que j’ai suivies pour configurer cette imprimante sur ma LMDE.

Etape 1 : lancer hp-setup en tant que root

Il suffit de lancer l’utilitaire hp-setup dans un terminal en mode graphique et en root :

gksu hp-setup

Voici le premier écran :

hp-setup-device-discovery

On se connecte à l’imprimante en WiFi donc on sélectionne l’option Network/Ethernet/Wireless network.

Ensuite, dans les options avancées, il faut utiliser la méthode de découverte du réseau pour mDNS/Bonjour.

Lire la suite

Linux : résoudre l'erreur

Linux : résoudre l’erreur “failed to execute /lib/udev/socket:@/org/freedesktop/hal/udev_event”

linux-logo

Après une mise à jour de votre installation Linux, et après avoir rédémarré votre machine, il est possible que vous obteniez des dizaines de messages d’erreur au moment du boot du système.

Le problème : des messages venant de Hal

Concrètement, dans demsg, on obtient toute une série de messages comme ceux-ci :

 [   12.543288] udevd[2958]: failed to execute '/lib/udev/socket:@/org/freedesktop/hal/udev_event' 'socket:@/org/freedesktop/hal/udev_event': No such file or directory
[   12.548789] udevd[2962]: failed to execute '/lib/udev/socket:@/org/freedesktop/hal/udev_event' 'socket:@/org/freedesktop/hal/udev_event': No such file or directoryCode language: JavaScript (javascript)

Solution : désinstaller hal

Et bien sachez qu’il suffit de désinstaller Hal avec :

sudo apt-get remove halCode language: JavaScript (javascript)

hal était une bibliothèque permettant l’accélération matérielle sous les systèmes GNU/linux et qui servait aux applications à découvrir et utiliser les composants de la machine.

Depuis le kernel 2.65, cette fonctionnalité a été fusionnée avec udev qui gère maintenant tout cela.

Serveur dédié : mise en place de l'IPv6 photo 4

Serveur dédié : mise en place de l’IPv6

IPv6 (Internet Protocol version 6) est un protocole réseau sans connexion de la couche 3 du modèle OSI.

Grâce à des adresses de 128 bits au lieu de 32 bits, IPv6 dispose d’un espace d’adressage bien plus important qu’IPv4.

Cette quantité d’adresses considérable permet une plus grande flexibilité dans l’attribution des adresses et une meilleure agrégation des routes dans la table de routage d’Internet.

La traduction d’adresse, qui a été rendue populaire par le manque d’adresses IPv4, n’est plus nécessaire.

ipv6

Fin 2013, on estime le déploiement d’IPv6 à 2 %, et ce en dépit d’appels pressants à accélérer la migration, l’épuisement des adresses IPv4 publiques disponibles étant imminent.

Histoire d’assurer la pérennité de la connexion de notre serveur Kimsufi, voici comment mettre en place l’IPv6. Cela prend à peu près 15 minutes.

Etape 1 : récupérer l’adresse IPv6

Méthode graphique : identifiez-vous dans le Manager OVH et allez dans Serveur Dédié > Récapitulatif. Vous devriez obtenir quelques informations sur la connexion de votre Kimsufi, comme ceci :

ipv6-ovh

Méthode “terminal” : un autre moyen de trouver l’IPv6 est de lancer le terminal et taper la commande ifconfig :

ifconfig

Notez bien l’adresse IPv6 du serveur, nous allons nous en servir dans la prochaine étape.

Lire la suite

Linux Mint : mettre à jour le noyau linux avec le kernel liquorix photo

Linux Mint : changer la cible des dossiers par défaut

Linux Mint Debian Edition

Par défaut, Linux Mint crée des répertoires par défaut tels que /Bureau, /Téléchargements

Or, il arrive qu’on ait besoin de changer la cible de ces répertoires pour pointer vers un dossier qui se trouve sur une autre partition ou sur un lecteur réseau.

Pour changer la cible de ces répertoires par défaut, il suffit d’éditer le fichier user-dirs.dirs qui se trouve dans le répertoire caché /.config de l’utilisateur :

nano $HOME/.config/user-dirs.dirsCode language: PHP (php)

Voici le contenu du fichier :

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Bureau"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_TEMPLATES_DIR="$HOME/Modèles"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"Code language: PHP (php)

Il suffit d’éditer le chemin des raccourcis existants ou d’en ajouter des nouveaux.

BIND9 : supprimer le message

BIND9 : supprimer le message “success resolving after reducing the advertised EDNS UDP packet size to 512 octets” des logs

Encore un autre message de mes fichiers logs, trouvé dans /var/log/daemon.log:

named: success resolving DOMAIN after reducing the advertised EDNS UDP packet size to 512 octets
named: success resolving DOMAIN after disabling EDNSCode language: HTTP (http)

BIND envoie des requêtes EDNS, meme si DNSSEC n’est pas activé. Or il suffit qu’un équipement sur la route refuse les paquets UDP de plus de 512 octets pour que cela couine.

La solution est toute simple, il suffit d’éditer le fichier /etc/bind/named.conf.options :

nano /etc/bind/named.conf.options

et d’y ajouter :

logging {
category lame-servers {null; };
category edns-disabled { null; };
};Code language: JavaScript (javascript)

Et pour finir, on enregistre les modifications et on redémarre BIND :

/etc/init.d/bind9 restart

Et voilà, plus de messages de ce type dans les logs.

Ubuntu : résoudre l'erreur

Ubuntu : résoudre l’erreur “mount: unknown filesystem type exfat”

La semaine dernière, mon amie a branché son disque dur chez moi. Surprise : le disque n’était pas reconnu (et c’est bien la première fois que je vois cela sous Ubuntu) et nous avons eu droit à une fenêtre de dialogue avec l’erreur suivante :

Unable to mount XX GB Filesystem
Error mounting: mount: unknown filesystem type 'exfat'Code language: JavaScript (javascript)

Solution: installer les paquets pour Exfat

Si cela vous arrive, il suffit d’installer le support ExFat sous Ubuntu.

ExFAT appelé aussi (FAT 64), est un nouveau système de fichier développé par Microsoft, qui a pour vocation d’être utilisé sur des périphériques externes comme les clé USB, les cartes SD et les disques durs externes.

Sa particularité est de permettre de stocker des fichiers de plus de 4 Go. En revanche, c’est un format propriétaire et donc non-libre.

Exfat pour Ubuntu 13.10+

Exfat fait désormais partie des paquets de base d’Ubuntu depuis la version 13.10 donc on peut l’installer avec un simple:

apt install exfat-fuse exfat-utils

Exfat pour Ubuntu 13.04 et versions inférieures

Il suffit d’ajouter un nouveau dépôt et d’installer les paquets fuse-exfat et exfat-utils :

sudo apt-add-repository ppa:relan/exfat
sudo apt update
sudo apt install fuse-exfat exfat-utils

Et voilà, disque reconnu !

Postfix : résoudre l'erreur SASL

Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”

postfix-logo

En regardant le fichier log /var/log/mail.err, je me suis aperçu que WordPress ne m’envoyait plus les sauvegardes hebdomadaires de la base de données.

Voici les messages d’erreur des logs :

Aug  6 20:07:31 mail postfix/sendmail[6460]: fatal: www-data(33): message file too big
Aug 13 20:07:36 mail postfix/sendmail[2033]: fatal: www-data(33): message file too big
Aug 20 20:07:33 mail postfix/sendmail[30622]: fatal: www-data(33): message file too big
Aug 27 20:07:29 mail postfix/sendmail[16390]: fatal: www-data(33): message file too big

Après une rapide enquête, il se trouve que ma base de données fait plus de 8 Mo, ce qui dépasse la configuration par défaut de Postfix.

Augmenter la limite de poids des messages sous Postfix

Il nous faut donc relever la limite de poids des messages. Pour cela, il suffit d’éditer le fichier de configuration Postfix :

nano /etc/postfix/main.cf

et d’ajouter cette ligne à la fin du fichier :

message_size_limit = 51200000

Cela nous permet d’envoyer jusqu’à 50 Mo. Attention, il faut que la taille de message_size_limit soit inférieure à la taille de la boîte mail, virtual_mailbox_limit. Sur mon serveur, j’ai désactivé cette dernière :

virtual_mailbox_limit = 0

Il ne vous reste plus qu’à relancer Postfix :

/etc/init.d/postfix restart

Et voilà!

Serveur dédié : mise à jour vers Debian 7 Wheezy photo

Serveur dédié : mise à jour vers Debian 7 Wheezy

debian-wheezy

Hier soir, j’ai mis le serveur à jour : nous passons de Debian 6 (“Squeeze”) à Debian 7 (“Wheezy”) – vous l’aurez remarqué : chez Debian, les versions portent le nom de personnages de Toy Story :)

Histoire de garder une trace de ce que je fais, voici les étapes que j’ai suivies.

Contrairement aux versions précédentes, Debian recommande d’utiliser apt-get au lieu d’aptitude. Donc acte dans ce tutoriel.

Etape 1 : s’assurer que le système est à jour

On vérifie que notre Squeeze est à jour :

apt-get update && apt-get upgradeCode language: JavaScript (javascript)

Etape 2 : installer les nouveaux dépôts

Pour voir vos dépôts existants :

cat /etc/apt/sources.listCode language: PHP (php)

Résultat :

deb http://mirror.ovh.net/debian/ squeeze main contrib
deb-src http://mirror.ovh.net/debian/ squeeze main contrib

deb http://security.debian.org/ squeeze/updates main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib

# Webmin
deb http://download.webmin.com/download/repository/  sarge contrib

# varnish
deb http://repo.varnish-cache.org/debian/ squeeze varnish-3.0

# mod security
deb  squeeze-backports main 

# dotdeb updated LAMP servers
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze allCode language: PHP (php)

Il faut remplacer toutes les occurrences de squeeze en wheezy. On peut le faire avec cette commande :

sed -i 's/squeeze/wheezy/g' /etc/apt/sources.listCode language: PHP (php)

Evidemment, il y a un piège : le dépôt des backports a changé de nom et d’adresse. Il se trouve désormais ici :

deb http://ftp.debian.org/debian/ wheezy-backports mainCode language: JavaScript (javascript)

Après modification, voici donc notre sources.list :

deb http://mirror.ovh.net/debian/ wheezy main contrib
deb-src http://mirror.ovh.net/debian/ wheezy main contrib

deb http://security.debian.org/ wheezy/updates main contrib
deb-src http://security.debian.org/ wheezy/updates main contrib

# Webmin
deb http://download.webmin.com/download/repository/  sarge contrib

# varnish
deb http://repo.varnish-cache.org/debian/ wheezy varnish-3.0

# mod security
deb http://ftp.debian.org/debian/ wheezy-backports main

# dotdeb updated LAMP servers
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy allCode language: PHP (php)

Etape 3 : lancement de la mise à jour partielle

Mise à jour des fichiers :

apt-get updateCode language: JavaScript (javascript)

Aucune erreur. On continue avec la mise à jour minimale des paquets :

apt-get upgradeCode language: JavaScript (javascript)

Lire la suite

Serveur dédié : installation d'Apache, PHP, MySQL et Webmin photo

Serveur dédié : des paquets LAMP à jour sous Debian

Problème : des paquets vieillots

Lorsque votre serveur tourne sous Debian, les paquets sont éprouvés mais souvent datés. Ils tournent bien mais on ne peut pas vraiment bénéficier des versions les plus actuelles pour Apache, MySQL ou PHP par exemple.

La solution : ajouter un nouveau dépôt pour LAMP

La solution est tout simple, il suffit d’ajouter un nouveau dépôt, Dotdeb, qui permet de mettre à jour les paquets libmemcached, mysql, nginx, percona-toolkit, php5, php5-pecl, pinba-engine, redis, ruby-passenger, zabbix.

On édite donc notre liste :

nano /etc/apt/sources.listCode language: PHP (php)

et on ajoute les dépôts de Dotdeb, qui sont maintenus à jour par Guillaume Plessis :

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable allCode language: JavaScript (javascript)

et enfin, on ajoute la clé GPG :

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -Code language: JavaScript (javascript)

La mise à jour se fait comme d’habitude :

apt update && apt upgrade

Lire la suite

Serveur dédié : création d'une seedbox avec Transmission photo

Serveur dédié : création d’une seedbox avec Transmission

transmission-icon

Aujourd’hui, on apprend comment monter une seedbox sur un serveur dédié avec Transmission.

Une seedbox est un serveur privé dédié au téléchargement et à l’émission de fichiers, utilisant le protocole BitTorrent, connecté à des réseaux à très haut débit symétrique, souvent à 100 MBits/s et plus.

Les fichiers sont envoyés à la Seedbox par les autres utilisateurs du réseau BitTorrent, et de là ils peuvent être récupérés depuis un ordinateur personnel, à la vitesse maximale de sa connexion (ADSL, fibre optique, 3G…) et ceci par les protocoles FTP, HTTP, SFTP, rsync, SSH.

Etape 1 : installation de Transmission

Sur le serveur, dans le terminal, on installe Transmission :

apt-get install transmission-daemonCode language: JavaScript (javascript)

Le serveur se lance dès l’installation, on l’arrête :

/etc/init.d/transmission-daemon stop

Etape 2 : configurer Transmission

On édite sa configuration :

nano /etc/transmission-daemon/settings.json

Eléments à modifier selon votre configuration :

  • “download-dir”: “/home/files”,
  • “incomplete-dir”: “/home/files/tmp”,
  • “rpc-password”: “votre-mot-de-passe”,
  • “rpc-username”: “votre-login”,
  • “rpc-whitelist”: “254.254.254.254”,

Le mot de passe est hashé au redémarrage du serveur, vous pouvez le rentrer en clair.

Le serveur tourne par défaut sur le port 51413 et le webadmin sur le port 9091. Pensez à whitelister votre adresse IP.

Lire la suite

Bash : réparer les tables MySQL en cas de crash photo

Bash : réparer les tables MySQL en cas de crash

Bash Il arrive que parfois une table SQL soit complètement plantée, ce qui peut bloquer l’accès à la base de données et donc l’accès au site.

Pour éviter cela, j’ai écrit un petit script bash qui me permet de stopper le serveur MySQL, procéder à la réparation de toutes les tables de toutes les bases de données puis relancer le serveur MySQL, Apache et Varnish.

#!/bin/sh
# MySQL Auto-Repair
# Written by Matt - skyminds.net

# stop the MySQL server
/etc/init.d/mysql stop

# check for errors
myisamchk /var/lib/mysql/*/*.MYI

# ask permission to repair
read -p "Repair tables ? (y/n)" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
	# repair everything
	myisamchk -r /var/lib/mysql/*/*.MYI

	# restart servers
	/etc/init.d/mysql restart
	/etc/init.d/apache2 restart
	/etc/init.d/varnish restart
else
	/etc/init.d/mysql restart
fi

C’est le genre de petit fichier bash à garder au frais sur le serveur, facile à lancer en SSH depuis n’importe quel terminal en cas de besoin.