Publié le
Voilà, notre serveur est maintenant opérationnel en tout point.Encore faut-il ajouter des sites internet dessus, transférer les fichiers, faire pointer les DNS dessus, etc...
Voici donc la marche à suivre pour ajouter un nouveau site sur le site :
I : Ajouter un nouvel utilisateur avec la commande :
useradd -m -g www-data DOMUSERComme nous avons créer le dossier www dans /etc/skel, la création de l'utilisateur va directement crée le /home de ce dernier avec le dossier pour contenir les fichiers du futur site web.
II : Ajouter le virtualhost dans Apache
Même si les DNS pointent vers notre serveur, Il n'y a encore rien qui indique que le serveur doit répondre à cette requête ; pire encore, on ne sait pas quels fichiers desservir... C'est pourquoi on ajoute dans /etc/apache2/sites-available/domain.dtd :Puis on active le site et recharges la configuration d'apache :
ServerName domain.dtd
ServerAlias www.domain.dtd
DocumentRoot /home/DOMUSER/www/
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
ErrorLog /var/log/apache2/DOMUSER_error.log
CustomLog /var/log/apache2/DOMUSER_access.log combined
a2ensite domain.dtd
/etc/init.d/apache2 force-reload
III : Ajouter la base de données
Vous voudrez probablement utilisez une base de données avec votre site. Il suffit d'exécuter les commandes suivantes :mysql --user=root --password=PASSROOT --execute="CREATE DATABASE DOMUSER;"De cette façon, on crée la base de donnée MySQL DOMUSER et l'utilisateur du même nom, qui a des droits uniquement sur cette base de données.
mysql --user=root --password=PASSROOT --execute="GRANT ALL PRIVILEGES ON DOMUSER.* TO 'DOMUSER'@'localhost' IDENTIFIED BY 'PASSDOMUSER';"
mysql --user=root --password=PASSROOT --execute="FLUSH PRIVILEGES;"
IV : Paramétrer les DNS
Pour que tout fonctionne bien, les DNS du serveur doivent être paramétrer pour répondre aux requêtes DNS. Pour ce faire, nous allons simplement ajouter des lignes dans notre base de données serverconf crée plus tôt :mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO domain (name) VALUES ('domain.dtd');"La dernière ligne, avec *.domain.dtd, permet de mettre en place catch-all, ce qui veut dire que n'importe quel sous-domaine de domain.dtd sera pris en compte et envoyé vers le serveur. Ceci permet la mise en place beaucoup plus simple et plus rapide pour de nouveaux sous-domaines : il n'y a pas besoin de modifier les DNS !
# $IDDB = id du domaine dans la table domain
# $SERVERNAME = nom unique de votre serveur (ksNNNNN.kimsufi.com par exemple)
# $SECONDDNS = adresse unique du second DNS (ns6.gandi.net par exemple)
# SERVERIP = adresse IP de votre serveur
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO domainDNS (domain_id, master) VALUES ($IDDB, 'NATIVE');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, 'domain.dtd', 'SOA', '$SERVERNAME. postmaster.domain.dtd `date +%Y%m%d`01 21600 3600 604800 86400');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, 'domain.dtd', 'NS', '$SERVERNAME');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, 'domain.dtd', 'NS', '$SECONDDNS');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content, prio) VALUES ($IDDB, 'domain.dtd', 'MX', 'mail.domain.dtd', 25);"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, 'domain.dtd', 'A', '$SERVERIP');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, 'www.domain.dtd', 'A', '$SERVERIP');"
mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO record (domain_id, name, type, content) VALUES ($IDDB, '*.domain.dtd', 'A', '$SERVERIP');"
Et voilà, vous pouvez maintenant envoyer vos fichiers par ftp en utilisant par exemple l'adresse ftp.domain.dtd.
V : Ajouter des adresses email
Avec votre sites, vous voudrez sans doute créer des adresses emails. Tout se fait là aussi en ajoutant des lignes dans la base de données serverconf :mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO user (domain_id, user, password) VALUES ($IDDB, 'USER', MD5('PASS'));"On créé ici l'adresse USER@domain.dtd avec le mot de passe PASS.
VI : Ajouter des alias d'adresse email
Mais parfois, les utilisateurs préfèrent garder leurs adresses email avec un alias. Rien de plus simple :mysql --user=serverconfuser --password=serverconfpass --database=serverconf --execute="INSERT INTO alias (domain_id, source, destination) VALUES ($IDDB, 'USER', 'redir@email.com');"Vous devriez donc maintenant être capable les éléments de base de votre serveur. Si vous avez quelques questions, utilisez les commentaires !
Pour ma part, mon serveur tourne depuis plus d'un mois maintenant sans aucun problème particulier...
Retour au sommaire.