WordPress

Et bien nous y voici, ce chapitre va vous permettre de mettre en place un site web, sous WordPress, et hébergé à la maison.
 
Il y a quatre choses à mettre en place pour lancer son site web :
 

  1. Vérifier que le sous domaine www de mondomaine.fr pointe bien vers votre IP publique
  2. Installer le service Apache
  3. Installer MySql
  4. Installer WordPress

 
 

Bind



 
 
Nous allons vérifier ou créer le sous domaine www dans notre zone Bind.
 

# nano /var/named/samn0.fr.zone
$ttl 86400
samn0.fr. IN SOA ns.samn0.fr. postmaster.samn0.fr. (
2010100725
10800
3600
604800
38400 )

samn0.fr. IN NS ns.samn0.fr.
samn0.fr. IN NS hestia.zyxel.fr.
samn0.fr. IN MX 1 stmp.samn0.fr.
pop.samn0.fr. IN A 82.226.54.213
ns.samn0.fr. IN A 82.226.54.213
samn0.fr. IN A 82.226.54.213
www.samn0.fr. IN A 82.226.54.213
ftp.samn0.fr. IN A 82.226.54.213
smtp.samn0.fr. IN A 82.226.54.213

 
Nous pouvons vérifier que le sous domaine www pointe bien sur mon IP publique.
 
Si ce n’est pas le cas chez vous, vous devez créer la ligne comme suit :
 

www.mondomaine.fr. IN A MON.IP.PUBLI.QUE

 
N’oublier pas d’incrémenter votre numéro de série de l’enregistrement, afin de prévenir au DNS root que votre configuration a changé !
 
 

Apache



 
Définition :Apache est le serveur HTTP le plus connu du web, c’est un logiciel libre et fonctionne essentiellement sur les systèmes d’exploitation UNIX.
 

# yum install httpd

 
Nous allons démarrer le service :
 

# service httpd start

 
Et le lancement automatique au démarrage du système, pratique si le serveur reboot !
 

# chkconfig httpd on

 
Nous allons ouvrir le port 80 sur le routeur et sur le serveur :
 

# iptables -A INPUT -p tcp -i eth0 –dport 80 -j ACCEPT

 
Vérifions si le service répond bien :
 

 
Si vous obtenez cette page de test, c’est tout bon.
 
Avant de passer à la configuration, il savoir quelques notions sur Apache.
 
Tout d’abord, vous aurez 2 répertoires de conf /etc/httpd/conf et /etc/httpd/conf.d
 
La différence se situe :
 

  • /etc/httpd/conf : c’est la conf du service
  • /etc/httpd/conf.d : c’est la conf du site web

 
Néanmoins, vérifier 2 choses dans le fichier /etc/httpd/conf/httpd.conf à la ligne 134
 

Listen 80

 
Cela signifie que Apache écoute sur le port 80, en clair c’est ici que vous spécifiez le port d’écoute de votre site web.
 
Et puis à la ligne 207 :
 

Include /etc/httpd/conf.d/*.conf

 
Ici on spécifie à Apache que la conf du site, pas du service se trouvera dans le répertoire conf.d
 
C’est le moment de mettre notre touche personnelle en créant le fichier de conf du site web !
 

# nano /etc/httpd/conf.d/httpd_ok.conf
# ServerName
servername samn0

# Valeur PHP par defaut
php_admin_value memory_limit 128M
php_flag register_globals off
php_flag display_errors Off

# activation des hotes virtuels
NameVirtualHost www.samn0.fr:80

# Hote virtuel par defaut
{VirtualHost www.samn0.fr:80}
# Activation des sites utilisateurs : http://localhost/~nomutilisateur
UserDir public_html
{Directory /home/samn0/public_html}
# autoriser l’affichage des erreurs
php_flag display_errors On
AllowOverride all
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec{/Directory}

# Activation de l’adresse : http://localhost/server-status
{Location /server-status}
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.0.254{/Location}

# Activation de l’adresse : http://localhost/server-info
{Location /server-info}
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.0.254{/Location}

# home du site : URL = http://site1/
ServerName samn0

# Dossier contenant les pages
DocumentRoot /var/www/

# cette vieille application necessite cette horreur
php_flag register_globals on
AddDefaultCharset ISO-8859-1
{Directory /var/www/}
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
AllowOverride FileInfo AuthConfig Limit{/Directory}

 
Explication : { remplace < sinon ça rentre pas dans les balises ^^
 

  • Ligne 2 : Server name, mettez ici le hostname de votre serveur
  • Ligne 10 : mettez l’adresse de votre site web:80 (le port qu’écoute httpd)
  • Ligne 13 : Virtual host, c’est l’hôte virtuel soit le nom du site !
  • Ligne 17 : Ici il faut mettre le répertoire d’un des utilisateurs
  • Ligne 29 : Allow from autoriser les IP que vous désirez !
  • Ligne 41 : ServerName, je crois que cela se passe de commentaire ^^
  • Ligne 44 : Dossier contenant les pages de votre site. Moi je l’ai mis à la racine, d’où /var/www
  • Ligne 50 : Dans directory mettez le même répertoire déclaré ligne 44

 
CTRL O + CRTL X
 
 

MySql



 
 
Définition : MySql est un système de gestion de base de données qui sert à effectuer des opérations ordinaires telles que consulter, modifier, créer, copier, organiser…
 
Bref le moteur de votre site web, donc indispensable !
 

# yum install mysql.i686

 
Nous allons démarrer le service :
 

# service mysqld start

 
Et le lancement automatique au démarrage du système, pratique si le serveur reboot !
 

# chkconfig mysqld on

 
MySql n’utilise pas les comptes utilisateurs, il obéit à sa propre base interne. Par défaut, root (dans la base MySql) n’a pas de mot de passe.
 
Nous allons le créer.
 

# mysql_secure_installation

 
A partir de là, le système va vous poser quelques questions :
 

  • Change the root password ? Voulez-vous changer le mot de passe de root ?
  • Remove anonymous user ? Supprimer les comptes anonymes ?
  • Disallow root login remotely ? Désactiver les connexions à distance de l’utilisateur root ?
  • Remove test database and access to it ? Supprimer la base de test et les droits associés ?
  • Reload privilege tables now ? Recharger les privilèges pour prise en compte immédiate ?

 

# mysql –user root

 
Mettez le mot de passe que vous désirez !
 
Et là ô joie nous avons une base de données sécurisée !
 
Pour manager vos bases de données, vous avez 2 solutions :
 

  • Par Webmin, onglet Serveurs
  • Par phpMyAdmin

 
Ce dernier est très répandu chez les webmasters, intéressons-nous dessus.
 

# yum install phpmyadmin

 
Sécurisons le tout :
 

# nano /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin – Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

{Directory /usr/share/phpMyAdmin/}
Order Deny,Allow
Deny from All
Allow from 127.0.0.1 192.168.0.254
Allow from ::1
{/Directory}

{Directory /usr/share/phpMyAdmin/setup/}
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
{/Directory}

# These directories do not require access over HTTP – taken from the original
# phpMyAdmin upstream tarball
#
{Directory /usr/share/phpMyAdmin/libraries/}
Order Deny,Allow
Deny from All
Allow from None
{/Directory}

{Directory /usr/share/phpMyAdmin/setup/lib/}
Order Deny,Allow
Deny from All
Allow from None
{/Directory}

 

  • Ligne 14 : Allow from : Mettez ici vos IP qui autorisent l’administration de phpMyAdmin

 
CTRL + O puis CTRL + X
 
Pour que les modifications soient prises en compte, vous devez redémarrer Apache
 

# service httpd restart

 
Si vous vous êtes trompés, vous devriez arriver ici :
 

 
A l’inverse :
 

 
Voilà MySql est installé, il ne reste plus que le site en lui même. Qu’est-ce qu’on attend ?
 
 

WordPress



 
 
Pour l’installer on va se passer de Yum, pour une fois ! Non je déconne ^^
 

# yum install wordpress.noarch

 
A l’installation WordPress va créer 2 dossiers.
 

  1. /etc/wordpress qui contient le fichier de conf, là ou l’on va paramétrer notre base sql
  2. /usr/share/wordpress qui contient les fichiers nécessaires du site web.

 
Copions déjà tout le répertoire de /usr/share/wordpress dans le répertoire /var/www
 

# mv /usr/share/wordpress /var/www

 
Éditons le fichier wp-config.php qui se trouve dans le répertoire /etc/wordpress
 

# nano /etc/wordpress/wp-config.php
// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘putyourdbnamehere’);

/** MySQL database username */
define(‘DB_USER’, ‘usernamehere’);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘yourpasswordhere’);

/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);

/** Database Charset to use in creating database tables. */
define(‘DB_CHARSET’, ‘utf8′);

/** The Database Collate type. Don’t change this if in doubt. */
define(‘DB_COLLATE’,  »);

 

  1. Ligne 19 : Mettez le nom de votre base de données, à mettre entre les ‘
  2. Ligne 22 : Mettez l’utilisateur de votre base de données, à mettre entre les ‘
  3. Ligne 25 : Mettez le mot de passe de l’utilisateur de votre base de données, à mettre entre les ‘

 
CTRL + O puis CTRL + X
 
Il reste plus qu’à créer la base de données :
 

# mysql -u your-sql-username -pyour-sql-password
mysql> create database putyourdbnamehere;
Query OK, 1 row affected (0.01 sec)
mysql> quit
#

 
Nous allons créer un lien symbolique du fichier wp-config.php dans le répertoire du site web.
 

# ln /etc/wordpress/wp-config.php /var/www/wp-config.php
# chmod -R 775 /var/www

 
Cette dernière commande donne les droits pour les autres au répertoire /var/www. En clair vos visiteurs pourront voir le site internet !
 
Redémarrons les services pour que toutes les modifications soient prises en compte.
 

# service httpd restart
# service mysqld restart

 
Dans votre navigateur tapez : http://127.0.0.1
 
Vous devriez tombé sur ceci :
 

 
Waouh, choisissez votre login d’administration pour gérer votre site et un mot de passe.
 
Cliquer sur Install WordPress.
 
Plus tard, vous devriez tomber sur cette page.
 

 
Rentrez votre login d’administration de votre site, le password correspondant.
 

 
Et voilà nous y sommes, WordPress est installé proprement, sécurisé. Reste plus qu’à garnir votre site et à y ajouter des extensions…
 
Mais c’est un autre débat, prochain chapitre OpenVpn
 
A bientôt sur www.samn0.fr

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>