Comment installer un serveur Ubuntu avec la prise en charge d'ASP.NET, d'abord en virtuel, puis à distance
Le but est d'obtenir un hébergement Web sous Linux qui accepte la programmation ASP.NET, et de programmer son site Web sous Windows. Plus précisément:
|
Cet article a été mis à jour le 2013-06-24, avec ces versions:
|
Cela constituera la méthode la plus économique de créer un site Web et de le faire héberger.
D'une part, nous n'utiliserons que des logiciels gratuits, d'autre part nous louerons un serveur dédié sous Linux, ce qui est plus standard, plus économique et bien plus facile à trouver qu'un serveur sous Windows.
- Cet article est destiné aux utilisateurs maitrisant la programmation en général sous Windows mais qui connaissent mal Linux ou les serveurs Web Linux. Il est également destiné à faciliter l'utilisation d'ASP.NET sous Linux.
C'est pourquoi je ne vais pas entrer dans les détails triviaux comme les étapes de l'installation de chaque logiciel sous Windows. On va aller droit à l'essentiel, c'est à dire comment parvenir à nos fins sans perdre de temps.
Par contre j'ajoute des explications plus détaillées, sous forme de ces blocs de remarque.
SOMMAIRE:
Présentation
Ainsi, on pourra créer un site web sous Windows, le tester localement sous Linux virtuel, avant de l'envoyer sur un serveur distant sous Linux.
L'intérêt est donc:
- De pouvoir tester la configuration d'un serveur Linux, avant d'en louer un.
C'est rassurant. - D'éviter de perdre de l'argent pour la location durant notre apprentissage.
Après tout, on ne sait pas combien de temps il nous faudra pour adapter notre site web à un environnement Mono sous Linux. - De mettre en ligne un site web testé et immédiatement fonctionnel.
Ce qui permet, entre autres, de mettre à jour un site existant sans interruption de service.
Une machine virtuelle pour les essais
Installation du logiciel de virtualisation VirtualBox [ Windows ]
- Téléchargez VirtualBox et installez-le.
Nous allons utiliser Oracle VirtualBox, qui est gratuit pour un usage personnel ou pour évaluation.
Vous le trouverez ici:http://www.virtualbox.org/
- Conseil essentiel: installez-le dans son répertoire par défaut, sinon vous aurez des problèmes du type "VERR_FILE_NOT_FOUND", ou plus en détails:
"VBOX_E_IPRT_ERROR (0x80BB0005)". Je vous signale qu'il s'agit en fait d'un problème de noms de chemin mal interprétés dans "%USERPROFILE%\.VirtualBox\VirtualBox.xml
". C'est un problème récurrent dans ce logiciel, quelles que soient les versions.
Téléchargement et installation d'Ubuntu Server [ Linux ]
- Téléchargez la version Ubuntu Server Edition.
Rendez-vous sur la page d'accueil d'Ubuntu:
http://www.ubuntu.com/download/server
- Pourquoi la version Server et pas la Desktop ?
Certes, la Desktop aurait pour avantage de posséder une interface graphique qui faciliterait énormément la configuration de notre serveur.
Mais d'un autre côté, le but est de nous placer dans des conditions aussi proches que possible de celles d'un serveur distant.
Hors, dans un serveur distant, on essaie de placer le minimum de choses dans la machine, de façon à minimiser les failles de sécurité et à consommer le moins de ressources possibles.
- Commencez à installer Ubuntu dans VirtualBox
Lancez VirtualBox, et créez un nouveau projet, en choisissant bien sûr le type Linux / Ubuntu dans la liste.
Nommez-le ubuntu_serveur.
Une fois le projet prêt, faites un clic droit dessus puis modifiez sa configuration (Settings).
Comme cdrom, sélectionnez l'image d'Ubuntu que vous avez téléchargé tout à l'heure.
- Partitionnement: qu'est-ce que LVM ? Voir l'explication ici.
C'est une nouvelle façon de gérer les volumes, pas par partition standard mais par un système plus souple qui permet notamment le redimensionnement et le déplacement des volumes sur le disque.
Il existe aussi une option pour créer des volumes cryptés. Pour notre ordinateur virtuel, ça ne semble pas utile.
Pour ma part, je me contenterai d'une partition LVM proposée par défaut: "Assisté - Utiliser un disque entier avec LVM".
- Choisissez les logiciels principaux à installer
|
Votre choix devrait ressembler à ceci:
aptitude et/ou apt-get ?
Il semble que ces deux outils, qui gèrent les logiciels installés dans des paquets, ne soient pas très compatibles entre eux, notamment parce qu'ils ne gèrent pas de la même façon la mémorisation des paquets installés. Donc vous devriez faire un choix dès le départ, et vous y tenir définitivement. Heureusement, aptitude a une syntaxe équivalente à apt-get, dans son mode en ligne de commande. Par exemple, lorsque vous lisez dans un article "apt-get install xxx", vous pouvez à la place taper "aptitude install xxx". Pourquoi utiliser aptitude plutôt que apt-get ? De l'avis général, aptitude gère mieux l'interdépendance entre les paquets. De plus, il propose en plus (de la ligne de commande) une interface en plein écran. À noter que la documentation officielle d'Ubuntu utilise aptitude, qui semble être le gestionnaire de paquet soutenu par Ubuntu dans la version 12.04. Une documentation courte est diponible. |
- Attention, avant de continuer, assurez-vous que votre système hôte (Windows) est bien connecté à Internet, car l'installateur va tenter de télécharger les paquets sélectionnés. Si l'installateur vous indique qu'il n'a pas réussi à se connecter à Internet, vérifiez d'abord l'icône de connexion en bas de de la fenêtre, normalement elle devrait indiquer "Carte 1 NAT : câble connecté".
De toute façon, en cas d'erreur l'installateur vous ramène à la liste des étapes de l'installation, vous pourrez alors choisir la commande "Détecter le matériel réseau", ce qui permettra de revenir ensuite automatiquement au choix précèdent des modules.
Ensuite créez un nom de domaine, pour notre exemple ce sera "serveur.lan".
Si à l'installation vous n'avez pas coché "LAMP - Serveur Linux: Apache, MySQL et PHP", vous pouvez vous rattraper une fois la ligne de commande accessible, en n'installant qu'Apache et MySQL:
sudo aptitude install apache2 apache2-doc mysql-server
- Attendez la fin de l'installation de Linux, et redémarrez-le
- Mettez à jour Ubuntu
Une fois Linux installé et l'ordinateur virtuel redémarré, on le met à jour avec trois commandes:
- Mettre à jour la liste des paquets dans aptitude (synchroniser):
sudo aptitude update
- Mettre à jour tous les paquets actuellement installés:
sudo aptitude full-upgrade
Si l'écran devient noir, ce n'est pas que Linux a planté, c'est qu'il s'est mis en veille ! :)
Corriger l'avertissement "Could not reliably determine.." [ Linux ]
Pour corriger cela, nous allong éditer son fichier (texte) de configuration:sudo vi /etc/apache2/httpd.confdu moins, avec l'éditeur de textes vi.
Si vous désirez utiliser jed comme éditeur, installez-le comme indiqué plus bas en remarque, et tapez:
sudo jed /etc/apache2/httpd.conf
Dans ce texte de configuration, vous allez ajouter la ligne:
ServerName localhostEt je dis bien "ServerName", pas le nom de votre domaine. Entrez ce texte tel quel.
Quelques infos supplémentaires
- Pour éditer des textes dans Linux.
Il vaut mieux travailler avec un éditeur que l'on apprécie, plutôt que de s'arracher les cheveux, déjà que bien souvent on utilise l'éditeur pour résoudre des problèmes.
Si comme moi vous ne vous faites pas à vi (ou vim, ou Emacs), alors vous trouverez des éditeurs plus familiers aux Windowsiens.
- "pico" est un éditeur simple comportant quelques menus et un navigateur de fichier pour leur ouverture. Il est installé par défaut, dans Ubuntu Server.
- "jed" est un éditeur à priori plus évolué, dans la veine du bon vieux "Edit" qu'on avait sous Dos, donc avec des menus déroulant, des fenêtres, etc. Toutefois il n'a pas d'explorateur de fichiers, et ses raccourcis-clavier ne sont pas au format Windows.
Pour l'installer, il faut entrer cette commande:
sudo aptitude install jed
Pourtant, pour l'instant je n'ai pas trouvé d'éditeur (en mode console) qui soit aussi simple et ergonomique qu'Edit, c'est à dire avec un menu déroulant, des raccourcis-clavier standard (Ctrl-C, Ctrl-V..), la navigation dans les fichiers, la sélection de texte avec la touche Majuscule, le déplacement mot-à-mot avec la touche Contrôle, la souris, etc..
- Sudo
Petite explication pour les non Linuxiens: sudo sert à lancer des commandes en mode administrateur.
C'est l'équivalent de "Éxécuter en tant qu'administrateur" sous Windows Vista, 7 ou 8.
- Dans le même ordre d'idées, on a également besoin d'un explorateur de fichiers digne de ce nom.
"mc", alias Midnight Commander est bon. Pour l'installer:
sudo aptitude install mc
- Un bon point: dans PuTTY, la souris fonctionne.
- À noter que pour désinstaller un logiciel, c'est simple aussi:
Pour mc, par exemple:
sudo aptituderemove mc
Connexion d'Ubuntu avec l'hôte (Windows) par FTP sécurisé [ Windows ]
Maintenant, on va configurer les deux systèmes pour accéder au serveur à partir de Windows, de la même façon que l'on accédera plus tard au serveur Linux distant.Redirection de ports
- Redirigez les ports
Pour l'instant, notre serveur étant dans une machine virtuelle, on ne peut pas utiliser ses ports normaux, par exemple le port HTTP (80).
On doit faire une traduction (translation) de ports, par exemple un port vu par Ubuntu comme 80 sera vu par Windows comme 8888.
- Arrêtez votre machine virtuelle en fermant Linux (menus Machine / Fermer par ACPI),
- Éditez les paramètres de votre machine virtuelle, dans la partie Réseau.
Ouvrez la sous-partie "Avancé", et cliquez sur le bouton Redirection de ports. - Entrez ces lignes:
Nom |
Protocole |
IP hôte |
Port hôte |
IP invité |
Port invité |
---|---|---|---|---|---|
Apache |
TCP |
8888 |
80 |
||
SSH |
TCP |
2222 |
22 |
||
SSL |
TCP |
8443 |
443 |
- Relancez votre machine virtuelle pour démarrer Ubuntu.
FTP sécurisé: WinSCP [ Windows ]
- Installez et configurez un client FTP sécurisé
Si vous n'en avez pas déjà un, installez dans Windows un logiciel de FTP sécurisé, par exemple WinSCP.
Lancez-le et créez une session.Comment "Nom d'hôte", utilisez l'adresse IP de VirtualBox et le numéro de port SSH traduit par le NAT, soit non 22, mais 2222.
- Pour connaître l'adresse IP (v4) utilisée par VirtualBox, vous pouvez ouvrir une console de commande dans Windows et taper ceci:
ipconfig /all|more
Vous verrez dans le texte une partie de ce genre:
Carte Ethernet VirtualBox Host-Only Network :
Suffixe DNS propre à la connexion. . . :
Description. . . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
Adresse physique . . . . . . . . . . . : XX-XX......
DHCP activé. . . . . . . . . . . . . . : Non
Configuration automatique activée. . . : Oui
Adresse IPv6 de liaison locale. . : xx:xxxx:xxxx....(préféré)
Adresse IPv4. . . . . . . . . . . : 192.168.56.1(préféré)
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . :
IAID DHCPv6 . . . . . . . . . . . : xxxxxxxxx
DUID de client DHCPv6. . . . . . . . : xx-xx-xx-xx-xx
Serveurs DNS. . . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS sur Tcpip. . . . . . . . . . . : Activé
Dans cet exemple, l'adresse est donc 192.168.56.1
Par ailleurs, vos identifiants sont ceux de votre compte utilisateur dans Ubuntu.
Normalement, une fois la session ouverte, vous devriez vous retrouver dans l'explorateur de fichiers de WinSCP, et voir les fichiers d'Ubuntu dans la partie de droite.
Bravo ! Maintenant on a la possibilité de transférer des fichiers d'un système à l'autre.
Et ça nous a permis de vérifier que la connexion fonctionnait.
Shell sécurisé: SSH par PuTTY [ Windows ]
- Ouvrez une console PuTTY par SSH
Maintenant, utilisez PuTTY (menus / " ", dans WinSCP), pour obtenir une console de commande distante sécurisée SSH.
Vous remarquerez que vous pouvez lancer PuTTY à partir de WinSCP, dans une session déjà ouverte (Ctrl-P comme raccourci-clavier). C'est très pratique.
- Si l'écran de PuTTY affiche des caractères bizarres à la place des lettres accentuées ou des dessins de tour de zones, configurez PuTTY:
- Cliquez sur son icône de fenêtre à gauche, puis sur . Dans la partie , vous pourrez choisir UTF-8.
- Puis redémarrez PuTTY ou le logiciel en marche dans son écran.
Allez-y, ouvrez une session WinSCP, puis lancez-y PuTTY, et entrez cette commande dans PuTTY:
ls /
C'est un simple affichage des fichiers à la racine du système de fichiers.
Votre fenêtre devrait ressembler à ceci:
Voila, ainsi nous avons un shell accédant à notre serveur virtuel.
Pour sortir proprement du shell, tapez cette commande:
exit
Serveur de pages: Apache [ Windows ]
- Testez le serveur HTML
Votre serveur Apache étant installé, nous allons le tester.
Dans mon cas, j'entre donc comme adresse Internet:
http://192.168.56.1:8888/
- Si votre navigateur vous dit qu'il n'atteint pas l'adresse, alors cherchez l'erreur:
- Peut-être le navigateur passe-t-il par un proxy.
Dans ce cas, il faut désactiver le proxy pour cette adresse IP. Voir le manuel du navigateur.
- Ubuntu doit être en marche, dans VirtualBox.
Peu importe qu'une session utilisateur soit ouverte ou non, il suffit qu'Ubuntu soit démarré.
- Peut-être le navigateur passe-t-il par un proxy.
- Vous pouvez trouver le fichier html de cette page dans Ubuntu, à cet emplacement:
/var/www
Ajout d'ASP.NET au serveur HTML Apache [ Linux ]
- Installez les paquets d'ASP.NET à Ubuntu
Bien que ça ne soit pas indispensable à priori (mais j'ai déjà eu des blocages sinon), nous allons d'abord arrêter le serveur Apache, pour la durée de nos ajouts:
sudo /etc/init.d/apache2 stop
- La console PuTTY a un gros avantage sur la fenêtre de VirtualBox: vous pouvez coller du texte en provenance de Windows.
Un clic droit sur la fenêtre de PuTTY sert de commande Coller.
- Si vous rencontrez l'erreur "Could not reliably determine.." lors de l'arrêt d'Apache, suivez la procédure vue précédemment.
- Pour plus d'informations sur le démarrage et l'arrêt d'Apache, voir la notice du logiciel, mais avec une autre commande:
http://vr-zone.com/manual/fr/stopping.html
Maintenant on installe les paquets nécessaires, dans Linux:
sudo aptitude install mono-common libapache2-mod-mono mono-apache-server2
C'est tellement plus sûr, et suffisamment simple de taper plusieurs commandes: sudo aptitude install mono-common sudo aptitude install libapache2-mod-mono sudo aptitude install mono-apache-server2 |
Si vous programmez en Visual Basic .Net, ajoutez le module VBNC:
sudo aptitude install mono-vbnc
On a maintenant Mono et son module ASP.NET 2 pour Apache installés.
- Configurez ASP.NET / Mono
À ce moment, on a le choix entre le mode automatique, qui autorise l'exécution de tout programme ASP.NET dans le serveur, ou bien le mode manuel qui oblige à configurer chaque page contenant du code.
Ici, on va utiliser le mode automatique.
sudo a2enmod mod_mono_auto
On configure le module en mode ASP.NET version 2 (sinon on aura des problèmes):
sudo jed /etc/apache2/mods-available/mod_mono.confSi nécessaire, on modifie la ligne de configuration en ajoutant "2" en deux endroits, comme ceci:
Include /etc/mono-server2/mono-server2-hosts.conf
Enfin, on termine en relançant Apache:
sudo /etc/init.d/apache2 start
Pour plus de sûreté, allez dans Windows et testez à nouveau le serveur à partir du navigateur internet:
http://192.168.56.1:8888/
Il devrait continuer à nous envoyer son petit texte: "It works !".
Test d'une page ASP.NET [ Linux et Windows ]
- Rédigez une page ASP.NET de test
Nous allons créer une page web dynamique toute simple dans un seul fichier texte:
sudo jed /var/www/test.aspx
- Pour permettre le copier/coller entre Windows et Linux, qui n'est pas géré par VirtualBox en mode console, vous pouvez
- utiliser SSH dans Windows, avec PuTTY (un clic-droit avec la souris pour coller du texte), ou bien
- éditer directement le contenu du disque-dur du serveur avec WinSCP (qui comporte un éditeur de texte intégré, mais attention aux permissions Linux).
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>ASP Test Page</title> </head> <body> <form id="form1" runat="server"> <asp:label id="lbl1" runat="server">ASP Test Page</asp:label> </form> </body> </html> |
Puis allez dans Windows et ouvrez le navigateur web, avec cette adresse:
http://192.168.56.1:8888/test.aspx
Vous devriez voir un texte et un bouton dont un clic recharge la page.
Correction de l'erreur "Server Error in '/' Application" [ Linux ]
- Si nécessaire, faites cette correction
Si dans le test précèdent vous avez eu cette erreur, faites cette vérification:
Allez dans Linux émulé (ou dans une console Putty), et entrez:cd /usr/bin ls gmcs*Cela liste les fichiers dont le nom commence par gmcs.
Si vous avez un fichier gmcs2, et pas de gmcs, alors vous pouvez créer un lien symbolique au nom de gmcs:
sudo ln -s /usr/bin/gmcs2 /usr/bin/gmcs
Essayez ensuite de recharger votre page aspx dans le navigateur Windows. Il est inutile de redémarrer Apache.
Téléchargement, installation et programmation sous Visual Studio Express 2012 pour le Web [ Windows ]
- Installez Visual Studio Express 2012 pour le Web
Puisque cet article part du principe que vous avez des connaissances en programmation sous Windows, je me contente ici de vous fournir quelques adresses, au cas où vous n'auriez pas déjà installé les logiciels de programmation qui nous seront utiles.
Si vous n'avez pas Visual Studio en version Professionnelle (donc complète), vous pouvez utiliser Visual Studio Express pour le Web 2012, qui est gratuit et qui permet de programmer en C# des sites ASP.NET. À noter que cet IDE est complet, comprenant notamment un débogueur, un éditeur graphique de sites web, et un serveur local avec une base de données.
Voici un lien direct vers Visual Studio Express 2012 pour le Web:https://www.microsoft.com/visualstudio/fra/downloads#d-express-web
Ou bien vous pouvez choisir les modules qui vous intéressent:
http://www.microsoft.com/express/Downloads/
Voici un lien direct vers Microsoft Visual Studio 2010 Express:
http://download.microsoft.com/download/f/8/9/f897c029-6a6e-4370-86c8-4bd9273cddcf/VS2010ExpressFRA.iso
C'est un paquet complet contenant plusieurs produits.
Si vous désirez travailler avec une ancienne version, ou en .Net 2, vous trouverez Microsoft Visual Studio 2008 Express avec SP1 ici:
http://www.microsoft.com/downloads/details.aspx?FamilyID=3254C868-BCB9-412C-95C6-D100C872EC60&displaylang=fr
http://www.microsoft.com/express/
Utilisation du serveur de bases de données PostgreSQL [ Windows ] Optionnel
- Installez PostgreSQL dans Windows
Étant donné que sous Linux nous ne pourrons pas utiliser le serveur de bases de données de Microsoft, autant créer dès sous Windows un site qui fonctionne avec un serveur de bases de données multiplateformes: PostgreSQL.
- PostgreSQL ? MySQL ? Firebird ? Ingres ? Autre ?
À vous de voir.
Ce qui nous importe ici, c'est:
1. Que le serveur de BDD soit multiplateforme.
2. Qu'il soit compatible à la fois avec Visual Studio et avec MonoDevelop/Mono.
http://www.postgresql.org/download/windows/
Test du site Web dans la machine virtuelle Linux
- À vous de programmer !
Vous avez maintenant:
- Un environnement de programmation dans Windows pour créer des sites Web ASP.NET.
- Un serveur Ubuntu virtuel pour tester la compatibilité de votre site dans un environnement Mono/Linux.
Comme l'objet de cet article est simplement mettre en place ces deux éléments, je vous laisse le soin de réaliser vos sites Web et de les tester sous ces deux systèmes.
Une fois prêt, passez à l'étape suivante: mettre en place un serveur physique distant.
Utiliser un vrai serveur distant pour héberger notre site Web
Je vais détailler la création d'un serveur Web, car ça n'est pas toujours simple au départ, notamment la partie concernant le nom de domaine.
Location d'un serveur dédié Linux distant
- Choisissez un hébergeur et un type de serveur
À moins de vouloir héberger votre site avec un serveur dans vos locaux, vous allez devoir louer les services d'un hébergeur Web.
|
Pour ce qui nous occupe dans cet article, nous sommes quasiment forcés de choisir un serveur dédié, car on ne trouve pas sur le marché de collocation acceptant l'ASP.NET. Du moins je n'en vois jamais (en 2009).De toute façon, un serveur dédié compense son prix un peu plus élevé par la richesse de ses possibilités.
Et puis, il existe aujourd'hui (2013) des serveurs dédiés pas chers, à partir de 10 € HT/mois. Ils peuvent être suffisants au moins pour faire des essais, voire pour mettre en place un site Web à petite fréquentation.
Pour plus de puissance, les prix sont plutôt de l'ordre de 100 à 300 €/mois.
Configuration du serveur
- Louez un serveur dédié avec Ubuntu Server installé
La situation est un peu différente de notre serveur virtuel, car les hébergeurs de sites proposent des distributions Linux comportant des modifications. Pour des raisons de sécurité et de facilité d'emploi, on trouvera toujours une configuration particulière et des outils de gestion à distance qui dépendent des habitudes de votre hébergeur.
Ici, nous allons considérer que vous avez loué un serveur, et demandé l'installation de Ubuntu Server dessus.
- Pourquoi Ubuntu server et pas un autre Unix ?
Une chose me plait: c'est une distribution spécialisée pour les serveurs, ce qui améliore la sécurité et la légèreté du système.
Ceci dit, vous êtes libres de choisir un autre Unix, la procédure devrait s'appliquer.
Mise à jour et installation
- Mettez à jour votre serveur
Commencez par accèder à votre serveur distant par SSH, avec WinSCP et/ou PuTTY, grâce aux informations fournies par votre hébergeur de serveur (adresse IP de votre serveur, nom de compte root, mot de passe de ce compte).
Puis mettez à jour votre Linux:
- Mettre à jour la liste des paquets dans aptitude (synchroniser):
sudo aptitude update
- Mettre à jour tous les paquets actuellement installés:
sudo aptitude full-upgrade
- Ajoutez les logiciels nécessaires
Puis vérifiez que nos logiciels indispensables sont installés:
aptitude install apache2 apache2-doc mysql-serverou module par module:
aptitude install apache2 aptitude install apache2-doc aptitude install mysql-server
- Remarquez qu'avec le compte root, il est inutile d'ajouter sudo devant la commande, car on a déjà tous les droits.
Suivez la procédure du chapitre concernant le serveur virtuel pour installer l'ASP.NET pour Mono.
aptitude install jed mc
On en profite pour ordonner un petit redémarrage de la machine, histoire de faciliter sa mise à jour:
shutdown -r now exit
Configuration d'un site Web avec nom de domaine
- Webmin, par un navigateur Web.
- WinSCP pour accéder aux fichiers.
- PuTTY comme console distance.
Avec Webmin
- Installez Webmin
Webmin est une sorte de serveur Web qui vous permettra de configurer votre serveur à distance au travers de pages Web.
En pratique, ça vous donne une interface graphique pour configurer tout ce qui concerne votre serveur. C'est bien plus pratique qu'avec une console.
Petit problème avec Webmin sous Ubuntu, ce paquet n'est plus soutenu par cette distribution, ce qui fait que son installation est plus compliquée que prévu.
- On édite le fichier:
sudo jed /etc/apt/sources.list
- On ajoute à la fin du texte:
deb http://download.webmin.com/download/repository sarge contrib
- Puis on ferme Jed.
- On ajoute la clé validant cette source:
wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc apt-get update aptitude update
- On installe Webmin:
aptitude install webmin
- Connectez-vous à Webmin [Windows]
Webmin étant maintenant à l'écoute des appels d'internet, vous pouvez ouvrir un navigateur web dans votre ordinateur local et entrer cette adresse:
https://l_adresse_IP_de_votre_serveur_distant:10000/
Votre navigateur va se plaindre que la connexion n'est pas certifiée, mais passez outre puisque vous avez confiance en votre propre serveur ! ;)
D'autre part, vous devez accepter les cookies et les javascripts de ce site.
Dans le menu à gauche, la partie Webmin contient un sous-menu qui vous permettra de l'afficher en français.
Le contenu
- Configurez puis copiez les fichiers de votre site Web vers le serveur, avec WinSCP.
- Voici un exemple pour la notation qui suit:
- adresse_ip_de_mon_serveur => 100.200.300.400
- mon_nom_de_domaine_com => mysite_com
- mon_nom_de_domaine.com => mysite.com
- dns_de_mon_herbergeur.com => dns.myhosting.com
- adresse_ip_de_mon_serveur => 100.200.300.400
- Je vous suggère de copier tout le texte qui suit dans un éditeur de texte (comme OpenOffice) et remplacer tous les noms génériques ici mentionnés par les vrais noms de votre serveur, et ainsi obtenir une notice avec les bons noms.
Sur votre serveur, par exemple avec WinSCP, créez un répertoire:
/var/www/mon_nom_de_domaine_com
Avec WinSCP, copier les fichiers de votre site Web vers le répertoire que vous avez créé (/var/www/mon_nom_de_domaine_com).
Dans Webmin [Windows], ouvrez la partie
À droite, choisissez l'onglet .
Entrer les informations de votre site Web et de son nom de domaine.
Revenir à la racine de la partie serveur Apache, et cliquer sur Appliquer les changements.
/etc/apache2/sites-available/mon_nom_de_domaine_com.conf
Et y mettre ceci:
<VirtualHost *:80> ServerAdmin webadmin@mon_nom_de_domaine.com ServerName mon_nom_de_domaine.com ServerAlias *.mon_nom_de_domaine.com DocumentRoot /var/www/mon_nom_de_domaine_com/ <Directory /var/www/mon_nom_de_domaine_com> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
Configurer le nom de domaine avec Bind, sous Webmin
- Configurez votre nom de domaine avec Bind
- Attention:
Dans Bind, lorsque vous entrez un nom (et non une adresse IP), comme "mon_serveur.mon_hebergeur.com",
il faut impérativement ajouter un point à la fin du nom.
Ça permet à Bind de différencier les noms des adresses.
1) Ouvrez Webmin.
- Choisissez l’onglet "Serveurs"
- Cliquez sur "Serveur de Noms de Domaine Bind"
2) Créez une nouvelle zone primaire.
- Cliquez sur "Créer une zone primaire"
- Dans "Nom de domaine / réseau" entrez : "mon_nom_de_domaine.com"
- Dans "Serveur primaire" entrez : "adresse_ip_de_mon_serveur"
- Dans "Adresse électronique" entrez : votre email pour contact admin de dns
Attention au SPAM. - Cliquez sur créer.
3) Bloc "Adresse".
Ce sont des renvois à partir de sous-domaines.
- Cliquez sur "Adresse" :
- Dans "Nom" entrez : "www"
- Dans "Adresse" entrez : "adresse_ip_de_mon_serveur"
- Cliquez sur créer
- Recommencez l’opération x fois en entrant dans nom :
- "ftp" (si vous en avez besoin),
- "mail",
- "pop",
- "smtp", etc...
- et une fois en laissant "nom" vide.
- Une fois fini cliquez sur "Retourner à Type d’enregistrement".
- Cliquez sur "Serveur de nom"
- Dans "Nom de zone" : laissez vide
- Dans "Serveur de nom" entrez le dns primaire : "adresse_ip_de_mon_serveur" -> Si c'est un nom, il faut mettre un point à la fin !
- Cliquez sur Créer
- Puis encore, dans "Nom de zone" : laissez vide.
- Dans "Serveur de nom" entrez le dns secondaire : "dns_de_mon_herbergeur.com." (en fait le serveur de noms de votre hébergeur de serveur) -> un point à la fin !
Une fois fini cliquez sur "Retourner à aux Types des enregistrements"
5) Bloc "Serveur de courrier".
- Cliquez sur "serveur de messagerie" :
- Dans "Nom " : laissez vide
- Dans "Serveur de courrier" entrez "mail.mon_nom_de_domaine.com." Ne pas oublier de mettre le "." à la fin.
NB : à condition d’avoir crée le sous domaine mail plus haut bien entendu.
- Dans "Priorité" entrez : "10"
- Cliquez sur créer
- Une fois fini cliquez sur "Retourner à Type d’enregistrement"
6) Bind doit être à l'écoute de toute demande sur le port 53
Allez dans Serveurs / Bind / Adresses et topologie
- Adresses: any
- Sauvegarder
Redémarrez Bind :
- En haut à droite, Appliquer La Configuration.
- En haut à droite, Arrêter Bind.
- En haut à droite, Démarrer Bind.
- On peut aussi redémarrer Bind dans PuTTY:
/etc/init.d/bind9 restart
- Ajoutez votre nom de domaine l'adresse IP de votre serveur au serveur DNS de votre hébergeur de serveur
Cette procédure est spécifique à chaque hébergeur.
En général il s'agit d'aller dans son panneau de configuration Web du serveur, sur le site Web de l'hébergeur, et de modifier la section DNS,
et d'y ajouter l'adresse IP de notre serveur en tant que serveur DNS.
- Vérifiez les réglages de Bind
On peut vérifier les réglages de Bind de bien des façons :
0) Vérification du DNS par des sites Web:
- http://www.intodns.com
- http://www.dnsqueries.com/en (plusieurs services intéressants).
- http://www.zonecheck.fr/demo/
1) Avec les utilitaires de Bind (dans PuTTY):
-
named-checkconf /etc/bind/named.conf
-
named-checkzone mon_nom_de_domaine.com /var/lib/bind/mon_nom_de_domaine.com.hosts
1.1) on regarde les logiciels surveillant les ports ouverts sur le serveur:
sudo netstat -pateun | grep named
Si pour le port 53 le processus "named" écoute que "127.0.0.1", alors ce n'est pas bon car il n'écoute qu'en local.
Dans ce cas, revoir la procédure d'écoute de tout sur le port 53.
1.2) on liste les ports en activités:
-
nmap -p53 localhost
-
nmap -v localhost
- Configurer le renvoi du nom de domaine
Maintenant qu'on est certain de votre serveur DNS est bien configuré, allez dans le panneau de configuration de votre fournisseur de nom de domaine, et configurez le renvoi de ce nom de domaine vers votre serveur DNS et votre serveur Web.
Le détail de cette procédure dépend de chaque fournisseur.
En principe on ajoute deux DNS: notre serveur et le DNS de notre hébergeur.
- Attention:
La diffusion dans Internet du changement de redirection de votre nom de domaine prend du temps, parfois plusieurs jours.
Inutile donc de s'acharner à entrer votre nom de domaine dans votre navigateur Web, ça ne fonctionnera pas tout de suite.
Pour vérifier que cette diffusion a atteint votre fournisseur Internet, vous pouvez lancer une analyse du chemin de redirection [dans Windows]:
ipconfig /flushdns
tracert nom_de_domaine.com
- Faire quelques tests supplémentaires
Dans une console de commandes Windows, on entre les commandes:
nslookup
set debug
server 188.165.45.220
mon_nom_de_domaine.com
lookup mon_nom_de_domaine.com
Test de notre site Web
Bien sûr le meilleur test est d'entrer notre nom de domaine dans un navigateur Internet.Sécuriser le serveur
Configurer le pare-feu, avec netfilter.Il faudra que je pense à compléter cette section.. ;)
Sources externes - Plus d'informations
Un article très détaillé pour installer Ubuntu Server dans une machine virtuelle
Comme cet article est divisé en plusieurs pages éparpillées dans un blog, voici les liens directs:- Installer un serveur Linux dans une machine virtuelle
- Choix logiciels
- Installation de la distribution
- Première connexion à la machine
- Installation du serveur web Lighttpd
- Le serveur DNS, installation et configuration
- Installation du serveur de base de données Postgresql
- Installer et configurer le serveur proxy
- Installer et configurer le serveur mail
Par contre, l'auteur utilise le logiciel serveur Lighttpd au lieu du classique Apache.
À noter qu'il existe une procédure pour installer Mono dans Lighttp, voir ici:
http://www.mono-project.com/FastCGI_Lighttpd
Autres articles
Installation d'Ubuntu dans VirtualBox (en anglais):http://welltemperedstudio.wordpress.com/2009/01/24/378/
Installation et configuration du module Mono pour Apache, dans Ubuntu (en anglais):
https://help.ubuntu.com/community/ModMono?action=fullsearch&context=180&value=linkto%3A%22ModMono%22
Installation de Webmin sous Ubuntu serveur 12.04:
http://memo-linux.com/installation-de-webmin-sous-ubuntu-serveur-12-04/
http://doc.ubuntu-fr.org/webmin