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.
Commentaires.
#1 par cx42net
Du coup ca pourrait-être utile de faire un petit script sh pour automatiser le processus, vu tout ce qu'il y a à taper comme commandes ;)
Sinon, tu fera gaffe, mais dans ton répertoire utilisateur, tu dois avoir un fichier .mysql_history où toutes tes requêtes sql que tu entre sont enregistrée. C'est à dire notament les requêtes qui contiennent des mots de passe des tes utilisateurs quand tu leur donnent les droits sur leur table (GRANT ...).
le Vendredi 03 Avril 2009 à 14:39:55
#2 par Nyro
Oui pour le script sh... Je l'ai fait sur mon serveur, mais avec aussi d'autres choses que je ne dévoilerai pas ici.
Pour le .mysql_history, il n'y en a qu'un seul pour le root, que j'ai effectivement effacé après avoir mis en place le serveur complètement.
le Vendredi 03 Avril 2009 à 14:42:10
#3 par Loiseau2nuit
Un énorme merci pour tous ces tutos.
En dehors de quelques galères avec l'anti spam de Postfix, tout fonctionne super.
Tu me tires une sacré épine du pied avec toute ta méthode :-)
PS : pour le .sh d'automatisation du processus, je plussoie. Je pense m'y coller pour le mien également, je posterai ca sur mon blog avec un joli lien vers chez toi ;-)
PS2: dis-donc, ton captcha me fait faire des maths à une heure bien tardive je trouve :-D
le Lundi 22 Mars 2010 à 00:02:22
#4 par Loiseau2nuit
pour répondre à cx42net : les commandes avec les mdp en clair ca n'est pas top on est d'accord, cela dit, en appoint du mysql-server, pour ma part, j'ai posé un phpmyadmin, du coup, je dispose de l'interface pour créer mes futurs users, surtout une fois que j'ai vu grâce aux commandes comment se structuraient les enregistrements. Du coup, une fois effacé le .bash_history, plus de risque d'en rajouter derrière même par accident au prochains users.
Par contre, juste une chose, Nyro : dans tous tes tutos, tu sembles utiliser apt-get pour installer tes paquets.
Perso, après avoir lu sur le site officiel de Debian qu'avec Lenny, ils recommandaient plutôt de laisser tomber 'apt-get' au profit d'aptitude pour une meilleure gestion des dépendances, j'ai choisi de les écouter pour toutes les étapes de tes tutos et j'ai effectivement pu constater que la gestion était en effet plus aboutie que ce à quoi Ubuntu m'avait habitué avec apt-get.
Assez génial aussi la possibilité avec aptitude, de choisir parmi plusieurs solutions celle que tu préfères pour gérer un conflit de dépendances imprévu, chose qui n'était pas possible auparavant avec apt-get.
Je ne peux donc que te suggérer de remplacer tes commandes apt-get par leur équivalent en aptitude. Ubuntu-fr a d'ailleurs pondu une bonne doc pour expliquer tout ça bien mieux que moi : doc.ubuntu-fr.org/aptitud...
Bonne nuit ;)
le Lundi 22 Mars 2010 à 00:12:15
#5 par Loiseau2nuit
Voila, je savais bien que j'avais déjà lu ça quelque part !
pour executer une commande mysql sans passer le MDP dans le .bash_history
mysql -u root -p la_base la_commande
sans spécifier le mot de passe. une invit apparaitra alors pour le taper sans qu'il se mette en mode mouchard dans le .bash_history
(promis c'est mon dernier comm pour ce soir ;) )
le Lundi 22 Mars 2010 à 00:23:02
#6 par gordonslondon
Merci pour ce guide. Super !
le Vendredi 05 Novembre 2010 à 14:29:16
#7 par banque en ligne
En appoint du mysql-server, pour ma part, j'ai posé un phpmyadmin, du coup, je dispose de l'interface pour créer mes futurs users, surtout une fois que j'ai vu grâce aux commandes comment se structuraient les enregistrements
le Jeudi 02 Décembre 2010 à 21:40:11
#8 par cheap oakleys
When we talk about this view, i agree with your point, thanks for sharing.
le Samedi 26 Février 2011 à 13:55:05
Ajouter un commentaire.