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

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.

Linux : résoudre l'erreur "failed to execute /lib/udev/socket:@/org/freedesktop/hal/udev_event" photo

Linux : joindre plusieurs fichiers avec cat

linux logo

Si vous avez besoin de joindre (ou concaténer) plusieurs fichiers qui ont été nommés en ordre alphabétique, comme par exemple file0001.dat, file0002.dat, file0003.dat…. file1000.dat, une commande s’impose sous Linux : cat.

Dans un terminal, vous pouvez juste lancer cat comme ceci pour rassembler tous vos fichiers en un seul :

cat file*.dat >all_files.datCode language: CSS (css)

C’est une commande système, il n’y a rien à installer et c’est plutôt pratique.

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

Installer wine sous Linux Mint Debian Edition

lmde J’ai réinstallé Linux Mint Debian Edition aka LMDE sur mon portable et j’en suis extrêmement satisfait, cela tourne très bien et c’est d’une stabilité remarquable.

Par contre, avec la nouvelle version (12.04), qui vient de sortir il y a quelques mois, il ne semble plus possible d’installer wine avec les dépôts par défaut.

Solution : ajouter un nouveau dépôt

Dans le terminal, en root, tapez :

echo 'deb http://boisson.homeip.net/debian/ squeeze wine' >> /etc/apt/sources.list

ensuite, on met à jour les dépôts :

apt-get update

et on installe wine :

apt-get install wine

Et hop, une version plutôt récente de wine (1.5.x) est installée.

Réinitialiser le mot de passe root de MySQL ou MariaDB sous Debian photo

MySQL : changer le mot de passe de l’utilisateur root

icon mysql

J’ai installé la mise à jour Ubuntu 12.04 Precise Pengolin il y a quelques semaines (et je n’aurais pas dû, ma machine laggue comme ce n’est pas permis) et au moment de lancer SAM Broadcaster, un message d’erreur apparaît comme quoi il ne peut se connecter à la base MySQL.

sudo service mysql restart

Résultat :

stop: Unknown instance: 
start: Job failed to startCode language: HTTP (http)

Autre message d’erreur :

/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'Code language: JavaScript (javascript)

Etrange, je n’avais rien modifié.

Voici donc en quelques étapes comment changer le mot de passe MySQL de l’utilisateur root lorsqu’on l’a oublié ou qu’il faut le changer sans connaitre l’ancien.

Toutes ces commandes sont à exécuter en tant qu’utilisateur root donc :

sudo -i

Je vous propose deux méthodes : la première méthode s’adresse aux barbus qui veulent mettre les mains dans le cambouis, la seconde à ceux qui veulent faire ça en 2 commandes.

Méthode 1 (mode cambouis)

Etape 1 : arrêt du service mysql

/etc/init.d/mysql stop

Résultat :

Stopping MySQL database server: mysqld.

Etape 2 : lancement du serveur MySQL sans mot de passe

mysqld_safe --skip-grant-tables &

Résultat :

[1] 5025
mysqld_safe Logging to syslog.
mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Code language: JavaScript (javascript)

Lire la suite

Linux : vider un fichier de son contenu avec la commande truncate photo

Linux : vider un fichier avec truncate

truncate

De temps en temps, il peut être utile de pouvoir effacer le contenu d’un fichier qui prend de l’embonpoint, comme un fichier de log par exemple.

Dans ce cas, vous pouvez lancer la commande truncate sous linux dans un terminal :

truncate -s 0 /home/skyminds/error.log

L’argument -s 0 signifie que l’on réduit sa taille (size) à zéro. Simple et efficace !

fireofx-aurora

Ubuntu : installer la dernière version de Firefox

Sur ma machine principale, j’utilise principalement Firefox parce que j’y ai mes habitudes : passwords, bookmarks, extensions. Or, je tourne sous 10.10 parce que j’aime bien Gnome et que je ne veux pas passer à Unity. Bref, je suis resté en 10.10 et en 10.10, on a le droit qu’à Firefox 12 !

fireofx aurora

Voici donc comment mettre Firefox à jour sur une “vieille” Ubuntu.

Etape 1 : vérification du fichier /etc/apt/sources.list

On commence par vérifier que le fichier /etc/apt/sources.list ne contient pas d’entrées obsolètes ni de sources externes pour l’installation de firefox (genre mozilla-daily-builds etc) :

sudo nano /etc/apt/sources.list

Etape 2 : ajout du dépôt firefox-aurora

Nous allons y ajouter le dépôt firefox-aurora :

deb http://ppa.launchpad.net/ubuntu-mozilla-daily/firefox-aurora/ubuntu/ lucid main 
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/firefox-aurora/ubuntu/ lucid main 

Lire la suite

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

Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire

Bash

L’autre jour, je voulais faire un peu de ménage dans les logs mod_security du serveur dont le répertoire commençait à prendre de l’ampleur.

Je me suis donc demandé comment supprimer tous les fichiers et sous-répertoires d’un répertoire.

Je pensais m’en sortir avec un simple rm /dossier mais en fait la commande est un peu plus complexe. Il faut chercher tout ce qui appartient à ce répertoire avec find puis supprimer ce qui se trouve à sa racine.

Voici un exemple :

# supprime tous les fichiers et sous-dossiers du répertoire /home/logs/
find /home/logs/ -mindepth 1 -deleteCode language: PHP (php)

Si vous voulez juste voir la liste des fichiers et répertoires qui vont être supprimés, lancez la commande sans l’argument -delete :

# affiche la liste de tous les fichiers et sous-dossiers du répertoire
find /home/logs/ -mindepth 1Code language: PHP (php)

Si vous souhaitez supprimer non seulement les fichiers et sous-répertoires mais aussi le répertoire mentionné, omettez l’argument -mindepth 1

# supprime tous les fichiers et sous-dossiers ET le répertoire /home/logs/
find /home/logs/ -deleteCode language: PHP (php)

Lire la suite

Transférer des fichiers d'un serveur à un autre avec rsync sous Linux photo 1

Rsync : résoudre l’erreur “is your shell clean?”

Lors de l’utilisation de la commande rsync, il est possible d’obtenir le message d’erreur suivant :

TERM environment variable not set.
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(173) [sender=3.0.7]Code language: CSS (css)
rsync logo

Il s’agit la plupart du temps du fichier /~.bashrc qui n’est pas propre puisqu’il renvoie des informations au terminal.

Cela peut être dû à une commande qui donne des informations sur la date ou le système ou toute autre commande qui se lance à la connexion.

Rsync ne s’attend pas à cela et bloque.

Lire la suite

Transférer des fichiers d'un serveur à un autre avec rsync photo

Transférer des fichiers d’un serveur à un autre avec rsync sous Linux

Il arrive très souvent que l’on ait besoin de transférer des fichiers rapidement, d’un serveur à un autre par exemple.

Bien sûr, on peut utiliser le FTP mais il y a beaucoup plus rapide et efficace : je vous présente rsync.[no_toc]

Synchronisation distante

rsync logo

rsync (remote synchronization ou “synchronisation distante” en français) est un logiciel libre de synchronisation de fichiers (disponible sous toutes les plateformes).

La synchronisation est unidirectionnelle, c’est-à-dire qu’elle copie les fichiers de la source en direction de la destination.

rsync est donc utilisé pour réaliser des sauvegardes incrémentales ou pour diffuser le contenu d’un répertoire de référence.

Je vous donne ici les deux commandes que j’utilise quotidiennement lors de ma gestion des serveurs.

Copier tous les fichiers d’un répertoire du serveur A dans le répertoire équivalent du serveur B

Premièrement, connectez-vous via SSH à votre serveur A. Voici la commande :

/* Copie tous les fichiers de /home/website/ vers serveur B. */
rsync --ignore-existing --progress /home/movies/*.* matt@serveurB.net:/home/movies/Code language: PHP (php)

Explications:

  • --ignore-existing signifie que si le fichier existe déjà, on ne le remplace pas.
  • --progress montre la vitesse du transfert et les noms des fichiers transférés.
  • matt@serveurB.net est le nom du login SSH (matt) associé à l’adresse du serveur B (IP ou nom de domaine).
  • /home/website/ : répertoire vers lequel copier les fichiers.

En lançant cette commande, je récupère sur le serveur B tous les fichiers qui se trouvent dans le répertoire /home/movies/ du serveur A. Je ne remplace pas les fichiers existants : étant donné que je ne synchronise qu’avec rsync, ce serait inutile.

Lire la suite

vpn-icon

Linux : configurer un VPN avec VPNTunnel

vpn icon

Pour tout un tas de raison, il est temps pour nous de prendre un petit VPN, histoire de d’ajouter une couche de sécurité supplémentaire.

Stéphane nous avait déjà montré comment créer un réseau privé virtuel (VPN) sous Debian Lenny mais je voulais un service externe qui ne sollicitait pas le serveur du site.

J’ai essayé VPNTunnel pour 5 euros pendant un mois et comme le service m’a bien plu, je vous donne le petit tutoriel qui permet de configurer tout cela en moins de 10 minutes, sous Ubuntu.

Installation d’OpenVPN et des fichiers de configuration de VPNTunnel

On installe OpenVPN et ses dépendances :

sudo apt-get install openvpn network-manager-openvpn-gnome resolvconfCode language: JavaScript (javascript)

puis on crée le répertoire /etc/openvpn/keys:

sudo mkdir /etc/openvpn/keys

Sur le site de VPN Tunnel, deux fichiers sont à télécharger : Linux-confs.tar.gz et cert.zip. Dézippez les deux fichiers.

Après avoir tapé :

sudo nautilus

Il vous reste à :

  1. copier tous les fichiers *.conf dans /etc/openvpn/
  2. copier tous les certificats *.cert dans /etc/openvpn/keys

A ce stade, nous sommes presque prêts : il ne nous reste plus qu’à ajouter ces différentes configurations VPN au gestionnaire de connexion de Gnome.

Lire la suite

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