Configuration d’un serveur dédié pour votre blog
Date: 24/11/2009 | Catégories: Blog,Open-source,Planet-libre,Systeme | Tags: Blog,libre,wordpress
Nous allons dans ce billet détaillé l'installation d'un serveur WordPress (moteur de blog) sur une machine Linux Ubuntu. Vous aurez ainsi une plate-forme de blogging libre !
Installation du système GNU/Linux
On commence par mettre à jour notre système:
sudo aptitude update
sudo aptitude safe-upgrade
Mise en place des règles de Firewall:
#!/bin/bash
########################
# Nicolargo - 28/10/2009
# Regle de Firewall
# Serveur hebergeant:
# - SSH
# - HTTP
########################
# Debut
# Chargement des modules externes pour le suivi des connexions FTP
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# On commence par effacer toutes les regles
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# On autorise les flux locaux
iptables -A INPUT -i lo -j ACCEPT
# On autorise les flux des connexions etablies
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#--------------------------
# Autorise les flux entrant
#--------------------------
# SSH serveur
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# Web serveur
iptables -A INPUT -p tcp --dport http -j ACCEPT
#--------------------------
# Autorise les flux sortant
#--------------------------
iptables -A OUTPUT -p tcp --dport domain -j ACCEPT
iptables -A OUTPUT -p udp --dport domain -j ACCEPT
iptables -A OUTPUT -p udp --dport ntp -j ACCEPT
iptables -A OUTPUT -p tcp --dport http -j ACCEPT
iptables -A OUTPUT -p tcp --dport https -j ACCEPT
#--------------------------
# On drop-and-logue le reste
#--------------------------
# En cas d'attaque de type Syn-Flood
iptables -N syn-flood
iptables -A syn-flood -m limit --limit 10/second --limit-burst 15 -j RETURN
iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
iptables -A syn-flood -j DROP
# UDP
iptables -A INPUT -p udp -j LOG --log-prefix "IPTABLES UDP-IN: "
iptables -A INPUT -p udp -j DROP
iptables -A OUTPUT -p udp -j LOG --log-prefix "IPTABLES UDP-OUT: "
iptables -A OUTPUT -p udp -j DROP
# TCP
iptables -A INPUT -p tcp -j LOG --log-prefix "IPTABLES TCP-IN: "
iptables -A INPUT -p tcp -j DROP
iptables -A OUTPUT -p tcp -j LOG --log-prefix "IPTABLES TCP-OUT: "
iptables -A OUTPUT -p tcp -j DROP
# Fin
Automatisation du lancement des règles au démarrage du serveur:
/etc/init.d/iptables.sh
chmod a+x /etc/init.d/iptables.sh
sudo update-rc.d iptables.sh defaults
Installation de LAMP
Simplement avec la commande suivante:
sudo install apache2 mysql-server php5 php5-mysql phpmyadmin
Configuration du serveur Apache
Test d'Apache en entrant l'adresse de votre serveur (http://@IPduserveur/) dans un navigateur Web: ''It works!"
On désactive se site par défaut avec les commandes suivantes:
sudo a2dissite default
/etc/init.d/apache2 reload
Nous allons maintenant configurer le serveur Apache pour gérer les adresses virtuelles. Il faut dans un premier temps déclarer dans votre DNS une nouvelle entrée qui fait pointer le nom de domaine vers l'adresse IP du serveur (blog.mondomaine.com A @IPduserveur).
Pour tester votre DNS (attention la mise à jour peut prendre un certain temps):
ping blog.mondomaine.com
PING blog.mondomaine.com () 56(84) bytes of data.
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=1 ttl=47 time=111 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=2 ttl=47 time=110 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=3 ttl=47 time=110 ms
...
On configure ensuite le serveur Apache pour cette adresse:
# cd /etc/apache2/sites-available
# sudo vi virtualhosts
On édite:
NameVirtualHost @IPduserveur
<VirtualHost @IPduserveur>
ServerName @IPduserveur
DocumentRoot /var/www/default
</VirtualHost>
<VirtualHost blog.mondomaine.com>
ServerName blog.mondomaine.com
DocumentRoot /var/www/blog
</VirtualHost>
On créer ensuite les arborescences correspondantes:
cd /var/www
sudo mkdir default
sudo mkdir blog
sudo chown -R www-data:www-data *
Puis on active le site:
sudo a2ensite virtualhosts
sudo /etc/init.d/apache2 reload
Configuration de MySQL
On accède au logiciel phpMyAdmin qui va nous permettre de configurer une base de donnée pour notre blog WordPress. Pour cela, il faut saisir l'URL suivante dans votre navigateur: http://blog.mondomaine.com/phpmyadmin/
Puis ensuite saisir le nom de la base de donnée (par exemple blog) et enfin cliquer sur Créer:
PS: il est possible (et conseillé) de créer un utilisateur dédié pour pour accéder à cette base de donnée. Le plus simple est de créer un utilisateur (avec comme nom "blog") puis de demander la création de la base de donnée correspondante. Les droits seront ainsi fixés automatiquement.
Installation de WordPress
La dernière version de WordPress 2.9 arrivera dans les bacs dans les prochains jours. Nous allons donc utiliser la version stable actuelle (WordPress 2.8.6) pour illustrer ce billet.
On commence par télécharger les sources:
wget http://wordpress.org/latest.zip
Puis on décompresse l'archive:
unzip latest.zip
Il faut ensuite déplacer le répertoire wordpress dans la bonne arborescence de votre serveur. Ainsi, si vous souhaitez accéder à votre blog par l'adresse http://blog.mondomaine.com/, il faut copier le contenu du répertoire de la manière suivante.
sudo cp -r ./wordpress/* /var/ww
Par contre si vous souhaitez que votre blog soit accessible par l'adresse http://blog.mondomaine.com/blog/, il faut saisir la commande:
sudo mv wordpress /var/www/blog
Il faut ensuite éditer le fichier wp-config.php:
cd /var/www cp wp-config-sample.php wp-config.php sudo chmod a+r wp-config.php vi wp-config.php
Puis éditer le fichier selon votre configuration:
define('DB_NAME', 'blog');
define('DB_USER', 'blog');
define('DB_PASSWORD', 'monmotdepasse');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
Enfin on finalise l'installation en allant à l'URL: http://blog.mondomaine.com/wp-admin/install.php
Pour résumer
Votre blog est maintenant accessible par l'adresse http://blog.mondomaine.com/
L'interface d'administration se trouve à l'adresse: http://blog.mondomaine.com/wp-admin/
Bon blog !