ZwookMachine
Présentation
La ZwookMachine est un serveur LAMPPPZZ :
- Linux (ici Ubuntu)
- Apache (serveur HTTP et HTTPS)
- MySQL (serveur de bases de données de type SQL)
- PHP
- Perl
- Python
- Zope (le serveur d'applications sécurisé)
- Zwook (un CMS fonctionnant sous Zope)
Le but de cette page est de créer un LiveDVD installable.
Contrairement aux serveurs traditionnels, qui ne comprennent aucune interface graphique, la ZwookMachine proposera Gnome, et ce pour deux raisons :
- Une interface graphique est nécessaire pour créer un LiveDVD
- Le but est de créer un serveur facilement installable et paramétrable par un newbie
Installation d'Ubuntu
Version conseillée
Pour un serveur, il est habituellement conseillé d'utiliser une version LTS (Long Term Support) d'Ubuntu. La dernière LTS en date est Lucid Lynx, ou 10.04, sortie fin Avril 2010.
Rendez-vous sur la page des téléchargements. J'aime particulièrement la version francisée !
Partitionnement
C'est la partie la plus délicate de l'installation.
En supposant que le serveur web ne comporte qu'un seul disque, et que l'on ne voudra pas redimensionner un jour ses partitions, voici ce que je propose de créer, successivement:
- une nouvelle table de partitions
- une partition primaire /boot de 384 MB, de type ext3 ou ext4 (/dev/sda1) ;
- une partition étendue swap, de type swap (/dev/sda5), de taille 1,5 fois celle de la RAM (si vous avez 4 GB de RAM, mettez 6 GB) ;
- une partition étendue /, de type ext3 ou ext4 (/dev/sda6), de taille 4 à 5 GB ;
- une partition étendue /home, de type ext3 ou ext4 (/dev/sda7), de taille 4 à 5 GB ;
- une partition étendue /tmp, de type ext3 ou ext4 (/dev/sda8), de taille 4 à 6 GB (j'ai vu des serveurs planter parce que le /tmp devenait trop gros, notamment avec de gros sites Zope) ;
- une partition étendue /var, de type ext3 ou ext4 (/dev/sda8), occupant le reste du disque.
C'est en effet la partition /var qui va recueillir toutes les données du serveur : /var/www contiendra les pages html et php, les cripts cgi (et tout ce qui concerne Apache) ; /var/lib/mysql contiendra les bases de données MySQL ; /var/lib/zopex.y (où x.y est la version de Zope installée) contiendra les sites et bases de données Zope, etc.
Nom d'utilisateur et mot de passe, nom de machine
Nom d'utilisateur : adminzm
Mot de passe : à votre guise, mais retenez-le !
Nom de machine : je suggère www, ou www2 (si www.votredomaine.com existe déjà)
Installation derrière un proxy
Si vous ne devez passer par un proxy (serveur mandataire) pour accéder à l'internet, passez cette section.
En présence d'un proxy, vous devrez l'indiquer par l'intermédiaire du bouton [Avancé…] dans le panneau "Prêt à installer". N'oubliez pas de renseigner une éventuelle authentification, comme ceci : identifiant:mot_de_passe@ip
Fin de l'installation d'Ubuntu
Il vous sera demandé de retirer le DVD pour que le serveur ne risque pas de redémarrer sur une nouvelle procédure d'installation.
Premiers paramétrages et mise à jour
Résolution de l'écran
En général, la résolution de l'écran est aisément modifiable par le menu Système / Préférences / Écrans.
Cependant, si vous vous trouvez bloqué dans une résolution trop basse (800x600 par exemple), et que vous savez pertinemment que votre carte graphique et votre moniteur acceptent une résolution plus grande, essayez d'abord d'installer les pilotes propriétaires de ceux-ci (s'ils existent) dans Système / Administration / Pilotes de périphériques, puis tentez à nouveau de modifier la résolution de l'écran.
Si cela ne fonctionne toujours pas, tentez ceci :
- fermez votre session graphique (déconnectez-vous)
- quand l'écran de connexion s'affiche, faites un Ctrl-Alt-F1 pour ouvrir la console tty1 ; vous vous retrouvez devant un écran tout noir, qui effraie un peu le néophyte, mais ça mord pas !
- sur tty1, connectez-vous en adminzm
- une fois connecté, tapez :
- sudo service gdm stop ; cela va arrêter le serveur graphique (gdm est l'interface de connexion graphique)
- sudo X -configure ; cela va créer le fichier xorg.conf.new
- sudo cp xorg.conf.new xorg.conf ; on copie ce fichier dans xorg.conf
- sudo nano xorg.conf ; et on ouvre xorg.conf dans un petit éditeur de texte
- Dans la section Modules, commenter, en les faisant débuter par un #, les lignes contenant glx, dbe, et dri2
- Dans la section Monitor, rajoutez les lignes :
HorizSync 31-80 VertRefresh 56-76
- Dans la section Device, vérifiez que la ligne contenant Driver indique bien "vesa".
- Dans la section Screen, vérifiez que vous avez bien les lignes :
SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024" "1024x768" EndSubSection DefaultDepth 24
- Tapez Ctrl-X pour quitter l'éditeur de textes (confirmez par O, puis validez, pour que les modifications soient enregistrées)
- sudo cp xorg.conf /etc/X11/ ; place le fichier de configuration au bon endroit
- sudo service gdm start
- faites un Ctrl-F7 pour ouvrir la console graphique tty7 et connectez-vous
- La résolution de l'écran est normalement modifiable par le menu Système / Préférences / Écrans.
Si votre serveur est derrière un proxy
Vous devez renseigner un éventuel proxy à deux endroits (même si vous l'avez déjà fait durant l'installation !) :
- Menu Système / Préférences / Serveur mandataire (n'oubliez pas de cliquer sur le bouton [Détails] en cas d'authentification nécessaire). Appliquez à tout le système.
- Menu Système / Administration / Gestionnaire de paquets Synaptics, puis dans Synaptics : menu Configuration / Préférences, onglet Réseau.
Si vous n'arrivez pas à faire des mises à jour en ligne de commande (si la commande sudo apt-get update retourne une erreur 407), entrez la commande :
sudo gedit /etc/environment
et modifiez la ligne :
http_proxy="http://ip:port/"
en :
http_proxy="http://id:mdp@id:port/"
Recommencez à l'identique avec le fichier /etc/apt/apt.conf.
Ensuite, tapez :
source /etc/environment sudo apt-get update
Sources de logiciels
Les logiciels se trouvent dans des paquets téléchargeables dans des dépôts.
Soit dans Synaptics (menu Configuration / Dépôts), soit dans Système / Administration / Sources de logiciels :
- onglet Logiciels de Ubuntu : tout cocher sauf Code source et CD-Rom ; choisir Télécharger depuis serveur principal (plus réactif et davantage disponible, pour les mises à jour de sécurité, que le serveur national).
- onglet Mises à jour : cochez security, updates, éventuellement backports, mais surtout pas proposed ; demandez de vérifier les mises à jour tous les jours et d'installer les mises à jour de sécurité sans confirmation ; mise à niveau de la distribution : jamais.
Mise à jour des paquets
La mise à jour des paquets se fait soit par l'intermédiaire de Synaptics (en cliquant successivement sur Recharger, Tout mettre à jour, puis Appliquer), soit par le Gestionnaire de mises à jour (menu Système / Administration).
Prise en charge linguistique
Si vous n'avez pas utilisé, lors de l'installation, la version francisée d'Ubuntu, il vous faut effectuer les mises à jour des langues par : Système / Administration / prise en charge des langues.
Suppression de logiciels inutiles
Les jeux
On ne joue pas sur un serveur !
sudo apt-get remove --purge gnome-games-common gbrainy
ou bien dans Synaptics sélectionnez gnome-games-common et gbrainy pour suppression complète.
Compiz
Pas besoin de fenêtre bondissantes !
sudo apt-get remove --purge compiz-core compiz-wrapper mesa-utils
ou bien dans Synaptics sélectionnez ces paquets pour suppression complète.
Graphisme
Pas besoin de Gimp (graphisme), Xsane (scanneur), ni de pilotes d'imprimantes :
sudo apt-get remove --purge gimp gimp-data sane-utils xsane xsane-common min12xxw gimp-help-common
ou bien dans Synaptics sélectionnez ces paquets pour suppression complète.
OpenOffice
Pas besoin de suite bureautique, sauf si vous lisez de la documentation en .odt, ou .doc.
sudo apt-get remove --purge openoffice.org-common
ou bien dans Synaptics sélectionnez ce paquet pour suppression complète.
Paquets obsolètes
Certains paquets sont rendus obsolètes par une mise à jour avec une version plus élevée ; c'est souvent le cas de linux-headers-2.6.xx-yy. Supprimez-les avec :
sudo apt-get autoremove
Installation des logiciels nécessaires
Nous avons besoin d'installer les logiciels cités dans la présentation.
Nous pouvons les installer en un clic (cela prend du temps). (Si firefox vous demande avec quoi ouvrir ce lien, validez le choix par défaut qui est apturl.)
Ou bien les installer en ligne de commande :
sudo apt-get update sudo apt-get install apache2 apache2-doc mysql-server php5 libapache2-mod-php5 php5-mysql php5-auth-pam libapache2-mod-auth-pam perl php-pear proftpd-basic phpmyadmin openssl php5-gd freetype2-demos libfreetype6 libjpeg-progs libjpeg62 libpng12-0 libgdbm3 zlib1g zlib1g-dev expat sablotron php5-cli proftpd-doc libgd-tools libcompress-zlib-perl libxml2-dev mingw32-binutils webalizer php-fpdf ncurses-bin libapache2-mod-perl2 libapache2-mod-perl2-doc freetds-dev gettext php5-mcrypt php5-mhash php5-sqlite dovecot-postfix php5-xcache dokuwiki txt2tags zopeedit python-ldap python-zodb openssh-server nautilus-gksu nautilus-open-terminal vim debconf-utils ssh filezilla
Ou bien les installer un par un : apache2, apache2-doc, mysql-server, php5, libapache2-mod-php5, php5-mysql, php5-auth-pam, libapache2-mod-auth-pam, perl, php-pear, proftpd-basic, phpmyadmin, openssl, php5-gd, freetype2-demos, libfreetype6, libjpeg-progs, libjpeg62, libpng12-0, libgdbm3, zlib1g, zlib1g-dev, expat, sablotron, php5-cli, proftpd-doc, libgd-tools, libcompress-zlib-perl, libxml2-dev, mingw32-binutils, webalizer, php-fpdf, ncurses-bin, libapache2-mod-perl2, libapache2-mod-perl2-doc, freetds-dev, gettext, php5-mcrypt, php5-mhash, php5-sqlite, dovecot-postfix, php5-xcache, dokuwiki, txt2tags, zopeedit, python-ldap, python-zodb, openssh-server, nautilus-gksu, nautilus-open-terminal, vim, debconf-utils, ssh, filezilla
Paquet | Renseignement demandé | Conseil |
---|---|---|
proftpd | Lancement de proftpd | inetd si l'usage du ftp est très ponctuel, standalone s'il est intensif |
mysql-server | Mot de passe du root (administrateur) de MySQL | Évitez les accents |
phpmyadmin | Quel serveur HTTP faut-il configurer | Apache2 |
phpmyadmin | Utiliser dbconfig-common ? | Oui |
phpmyadmin | Mot de passe de l'administrateur de MySQL | Le même que précédemment |
dovecot-postfix | Configuration-type du courrier de messagerie | Internet avec un "smarthost" |
dovecot-postfix | Nom de courrier | Indiquez votre nom de domaine, ou le FQDN de votre ZwookMachine |
dovecot-postfix | Relais SMTP | Indiquez l'adresse du serveur SMTP de votre FAI (smtp.fai.com) ou de votre réseau |
dokuwiki | Emplacement du dokuwiki | Indiquez le chemin à partir de la racine du site, par exemple /wiki |
dokuwiki | Supprimer les pages à la suppression du paquet | Ne pas cocher, au risque de perdre des données |
Installation de Remastersys
C'est avec remastersys que nous allons créer le DVD-live.
Pour Ubuntu Karmic (version 2.0.13-1 et supérieures), entrez dans un terminal, l'une après l'autre, les commandes :
echo "deb http://www.geekconnection.org/remastersys/repository karmic/" | sudo tee -a /etc/apt/sources.list.d/remastersys.list sudo apt-get update sudo apt-get install remastersys ubiquity-frontend-gtk
Ou bien téléchargez directement la version 2.0.15 : http://www.geekconnection.org/remastersys/repository/karmic/remastersys_2.0.15-1_all.deb et installez-la d'un double-clic.
Installation de Zope 2.9.12 (Ubuntu Lucid 10.04.2)
Zope 2.9.12 est nécessaire pour faire tourner certains sites Zwook. Mais il faut auparavant compiler et installer Python 2.4.6, qui n'est plus dans les dépôts de Lucid.
Installation de Python 2.4.6
Paquets nécessaires à la compilation
sudo apt-get install build-essential libreadline-dev zlib1g-dev libjpeg62-dev subversion libpq-dev lib32z1-dev
Préparation et installation
Pour Python 2.4.6 :
cd mkdir install cd install wget http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz tar xzf Python-2.4.6.tgz cd Python-2.4.6 make clean ./configure --prefix=/usr/lib/python2.4 make sudo make install
Pour l'utilitaire easy_install :
cd ~/install wget http://peak.telecommunity.com/dist/ez_setup.py sudo /usr/lib/python2.4/bin/python ez_setup.py
Pour l'utilitaire virtualenv :
sudo /usr/lib/python2.4/bin/easy_install virtualenv
Pour la bibliothèque PIL (Python Imaging Library) :
sudo /usr/lib/python2.4/bin/easy_install PIL
Pour les module python-ldap et sasl :
sudo apt-get install libsasl2-dev libssl-dev libldap2-dev sudo /usr/lib/python2.4/bin/easy_install python-ldap sasl
Zope 2.9.12
cd ~/install wget http://www.zope.org/Products/Zope/2.9.12/Zope-2.9.12-final.tgz tar xzf Zope-2.9.12-final.tgz cd Zope-2.9.12-final make clean ./configure --prefix=/usr/lib/zope2.9 --with-python=/usr/lib/python2.4/bin/python make sudo make install
Création de l'instance ZwookEdu de Zope
Pour créer l'instance zwookedu dans /var/lib/zope2.9/instances
, avec pour utilisateur principal admin, qui aura pour mot de passe adminzope :
sudo /usr/lib/zope2.9/bin/mkzopeinstance.py --dir=/var/lib/zope2.9/instances/zwookedu --user=admin:adminzope
Vérification :
ls /var/lib/zope2.9/instances/zwookedu/
bin etc Extensions import inituser lib log Products README.txt var
Rendre adminzm propriétaire des instances de Zope 2.9
Rendre adminzm propriétaire du dossier /var/lib/zope2.9
, et root propriétaire des scripts inituser
(s'ils existent) :
sudo chown -R $USER:$USER /var/lib/zope2.9 sudo chown root:root /var/lib/zope2.9/instances/*/inituser 2> /dev/null
Éditer le fichier de configuration de l'instance :
gedit /var/lib/zope2.9/instances/zwookedu/etc/zope.conf
Vers la ligne 150, insérer :
effective-user adminzm
Ainsi, l'instance zwookedu fonctionnera sous le nom d'adminzm.
Nous reviendrons plus tard sur ce fichier de configuration.
Démarrage de l'instance zwookedu et test
Démarrage de l'instance zwookedu :
/var/lib/zope2.9/instances/zwookedu/bin/zopectl start
Test : Ouvrir Firefox sur http://localhost:8080
La page d'accueil de Zope apparait.
Cliquez ensuite sur le lien Zope Management Interface, une fenêtre d'authentification apparait. Utilisateur : admin et mot de passe adminzope, comme défini précédemment.
Liens symboliques simplificateurs
Si zwookedu est votre seule instance de Zope 2.9, créer les liens suivants :
sudo ln -s /var/lib/zope2.9/instances/zwookedu/bin/zopectl /usr/bin/zopectl2.9 sudo ln -s /var/lib/zope2.9/instances/zwookedu/bin/runzope /usr/bin/runzope2.9 sudo mkdir /etc/zope2.9 sudo ln -s /var/lib/zope2.9/instances/zwookedu/etc/zope.conf /etc/zope2.9
Ainsi, il vous sera plus facile de faire un zopectl2.9 restart
au lieu d'un /var/lib/zope2.9/instances/zwookedu/bin/zopectl restart
, et d'éditer le fichier /etc/zope2.9/zope.conf
plutôt que le fichier /var/lib/zope2.9/instances/zwookedu/etc/zope.conf
Daemonisation de l'instance zwookedu
Pour faire en sorte que l'instance zwookedu de Zope se lance au démarrage du serveur, nous allons la daemoniser.
Les liens symboliques dont il est question ci-dessus ont été créés.
On crée le script /etc/init.d/zope2.9
sudo gedit /etc/init.d/zope2.9
qui contient ceci (Attention à la ligne 27 : OWNER=adminzm ; à modifier éventuellement pour l'adapter à votre cas) :
#! /bin/sh ### BEGIN INIT INFO # Provides: zope2.9 # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Lance l'instance Zope 2.9 # Description: Lance l'instance Zope 2.9 contrôlée par le lien # symbolique /usr/bin/zopectl2.9 ### END INIT INFO # Author: Claude Clerc <claude.clerc@ac-aix-marseille.fr> # # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Zope 2.9.12" NAME=zopectl2.9 DAEMON=/usr/bin/$NAME #DAEMON_ARGS="--options args" DAEMON_ARGS="" PIDFILE=/var/run/zope2.9.pid SCRIPTNAME=/etc/init.d/zope2.9 OWNER=adminzm # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { su $OWNER $DAEMON start || exit 1 su $OWNER $DAEMON status | sed s/^.*pid=// > $PIDFILE exit 0 } # # Function that stops the daemon/service # do_stop() { rm -f $PIDFILE su $OWNER $DAEMON stop || exit 1 exit 0 } do_restart() { rm -f $PIDFILE su $OWNER $DAEMON restart || exit 1 su $OWNER $DAEMON status | sed s/^.*pid=// > $PIDFILE exit 0 } read_status() { su $OWNER $DAEMON status exit 0 } case "$1" in start) do_start ;; stop) do_stop ;; status) read_status ;; restart|force-reload) do_restart ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac :
Rendons-le exécutable :
sudo chmod +x /etc/init.d/zope2.9
Installons les raccourcis-service :
sudo update-rc.d zope2.9 defaults 90 10
Ainsi le service zope2.9 démarrera en position 90, avant Apache2 (qui démarre en position 91), et s'arrêtera en position 10, après Apache2 (qui s'arrête en position 9).
Paramétrage de l'instance
Éditer le fichier /var/lib/zope2.9/instances/zwookedu/etc/zope.conf, ou plus simplement /etc/zope2.9/zope.conf :
gedit /etc/zope2.9/zope.conf
Vérifier les "directives" suivantes, en les adaptant à vos besoins :
<environment> TZ Europe/Paris # TimeZone (fuseau horaire) ; liste : ls /usr/share/zoneinfo TMPDIR /tmp # Dossier des données temporaires (doit contenir plusieurs GiO) </environment> debug-mode off effective-user adminzm # Zope tourne avec les droits de l'utilisateur adminzm. zserver-threads 30 # Le nombre de threads de votre serveur Zope ; dépend de la quantité de RAM. python-check-interval 2000 http-realm Espace privé # Domaine apparaissant, en cas d'authentification, dans la boîte de dialogue. maximum-number-of-session-objects 5000 suppress-all-site-roots off <eventlog> level info <logfile> path $INSTANCE/log/event.log level info </logfile> </eventlog> <logger access> level WARN <logfile> path $INSTANCE/log/Z2.log format %(message)s </logfile> </logger> <warnfilter> action ignore category exceptions.DeprecationWarning </warnfilter> <http-server> # valid keys are "address" and "force-connection-close" address 9080 # force-connection-close on </http-server> <ftp-server> # valid key is "address" address 9021 </ftp-server> <zodb_db main> # Main FileStorage database <filestorage> path $INSTANCE/var/Data.fs </filestorage> mount-point / </zodb_db> <zodb_db temporary> # Temporary storage database (for sessions) <temporarystorage> name temporary storage for sessioning </temporarystorage> mount-point /temp_folder container-class Products.TemporaryFolder.TemporaryContainer </zodb_db> # zoperunner section (tells zopectl where runzope is) <zoperunner> program $INSTANCE/bin/runzope </zoperunner>
Penser à redémarrer Zope après toute modification de sa configuration :
sudo service zope2.9 restart
Zwook/ZwookEdu
ZwookEdu est un CMS (Content Management System ou système de gestion de contenu) Libre, pensé pour favoriser les échanges ente professeurs et élèves, développé par des enseignants Suisses et Français à partir du CMS Zwook.
Sites : zwook.org (site communautaire), zwook.ch (site de développement), zwookedu.ch (site pédagogique)
Installation de ZwookEdu
Téléchargement du ZwooksManager
Le ZwooksManager permet de créer ou de mettre à jour des sites web Zwook.
Télécharger la dernière version sur http://sourceforge.net/projects/zwook/files/.
Installation du ZwooksManager
Déplacer le fichier que vous venez de télécharger dans le dossier Product de l'instance zwookedu que vous avez créée.
cd /var/lib/zope2.9/instances/zwookedu/Products/ mv ~/Téléchargements/ZwooksManagerAAAAMMJJ.tgz .
(AAAAMMJJ est une date ; ne pas oublier le point, qui désigne le répertoire actuel, à la fin de la dernière commande.)
Décompresser ce fichier :
tar xzf ZwooksManager20100516.tgz
Un ls -l
permet de constater qu'un dossier ZwooksManager a été créé.
Pour faire un peu de ménage, supprimer le tarball :
rm ZwooksManagerAAAAMMJJ.tgz
Copier les extensions nécessaires au bon endroit :
mkdir ../Extensions cp ZwooksManager/NeedExtensions/* ../Extensions/
Copier les products nécessaires dans le dossier actuel :
cp -a ZwooksManager/NeedProducts/* .
Redémarrer zope2.9 :
sudo service zope2.9 restart
Ouvrir la page manage_main de Zope : http://localhost:9080/manage_main
En haut à droite de cette page, une liste déroulante commence par Accelerated HTTP Cache Manager. Le dérouler pour sélectionner ZwooksManager (en bas de la liste).
Un objet nommé ZwooksManager (doté d'une icone rouge) apparait. Cliquer dessus, puis sur l'onglet View.
Créer un site de type ZwookEdu
Tout en bas de la page intitulée Zwooks Manager, dans la partie Installer un Zwook, indiquer le nom du nouveau Zwook : internet ; choisir la version 1.3.1 de zwook et cliquer sur le bouton Install.
Au bout de quelques dizaines de secondes, apparait ceci :
container ok
copy du zexp dans import
import du zexp
copy ok
cleaning ok
Cliquez ici pour voir…
Cliquer sur le lien ; le site apparait. Se connecter en administrateur avec login et mot de passe : admin/admin.
DNS
L'utilisation d'un service DNS (Domain Name Server) est nécessaire pour l'utilisation d'hôtes virtuels dans Apache2.
Paquets à installer
sudo apt-get install bind9 bind9-doc bind9utils
Configuration du DNS
Les fichiers de configuration sont dans /etc/bind
.
Nous allons configurer un serveur DNS hybride, qui d'une part sera maître pour le ou les pseudo-noms de domaine correspondants aux FQDN des sites hébergés, et d'autre part servira de cache pour les autres noms de domaine.
Fichier named.conf.options
Ce DNS va consulter d'autres serveurs DNS locaux ou distants (par exemple ceux du FAI) pour les noms de domaines qu'il ne gère pas.
Remplacez le fichier /etc/bind/named.conf.options
par le modèle ci-dessous, en substituant à %%NAMESERVER%% et %%NAMESERVER2%% les IP des DNS à consulter. (Un petit cat /etc/resolv.conf
peut vous être utile pour connaître ces IP.)
options { directory "/var/cache/bind"; // S'il y a un firewall entre ce poste et les serveurs de noms // que vous désirez consulter, vous pouvez avoir besoin de décommenter // l'instruction query-source ci-après. Les précedentes versions de BIND // envoyaient toujours leurs requêtes à travers le port 53, mais BIND // version 8.1 et suivantes utilisent un port non-privilégié par défaut. query-source address * port 53; // Si votre FAI propose une ou plusieurs addresses IP de // serveurs de noms, vous voudrez probablement les utiliser comme // forwarders, c'est-à-dire leur transmettre les requêtes pour les noms // de domaines extérieurs. Attention au point-virgule après chaque IP. forwarders { %%NAMESERVER%%; %%NAMESERVER2%%; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };
Fichier db.zm
Ce fichier définit les domaines gérés par la ZwookMachine.
Dans le modèle ci-dessous, %%EPOCH%% devra être remplacé par le résultat de :
date +%s
%%FQDN_POINT%% devra être remplacé par le nom de domaine pleinement qualifié (Full Qualified Domain Name) de votre machine, celui-ci terminé par un point ; par exemple : www2.lyc-detest.ac-aix-marseille.fr.
%%HOSTIP%% devra être remplacé par l'IP de votre ZwookMachine.
Voici le modèle de fichier /etc/bind/db.zm
:
; BIND data file for rfc1918 zone ; $TTL 86400 @ IN SOA %%FQDN_POINT%% adminzm.%%FQDN_POINT%% ( %%EPOCH%% ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS %%FQDN_POINT%% @ IN A %%HOSTIP%%
Fichier db.zm.inv
Remplacer les variables comme indiqué ci-dessus.
%%HOSTIP_4%% devra être remplacé par le dernier nombre de l'IP de votre ZwookMachine.
Voici le modèle de fichier /etc/bind/db.zm.inv
:
; BIND data file for rfc1918 zone ; $TTL 86400 @ IN SOA %%FQDN_POINT%% adminzm.%%FQDN_POINT%% ( %%EPOCH%% ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS %%FQDN_POINT%% %%HOSTIP_4%% PTR %%FQDN_POINT%%
Fichier named.conf.local
C'est le fichier à renseigner pour que les fichier db.zm
et db.zm.inv
soient pris en compte.
%%HOSTIP_3%%.%%HOSTIP_2%%.%%HOSTIP_1%% est l'écriture inversée des 3 premiers nombres de l'IP de la ZwookMachine. Par exemple, si l'IP est 172.19.34.10, alors vous devrez remplacer ceci par 34.19.172.
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "%%FQDN%%" { type master; file "/etc/bind/db.zm"; forwarders{}; }; zone "%%HOSTIP_3%%.%%HOSTIP_2%%.%%HOSTIP_1%%.in-addr.arpa" { type master; file "/etc/bind/db.zm.inv"; forwarders{}; };
Redémarrage du service bind
sudo service bind9 restart
Utiliser ce service DNS
Éditer le fichier /etc/resolv.conf
afin qu'il ne contienne que la ligne nameserver suivante :
nameserver 127.0.0.1
(Commentez les autres lignes en les faisant commencer par un #.)
Tests
Peut-on pinguer le nom de domaine ?
ping www2.lyc-detest.ac-aix-marseille.fr
Test du fichier de configuration db.zm
:
named-checkzone www2.lyc-detest.ac-aix-marseille.fr /etc/bind/db.zm
Test du fichier de configuration db.zm.inv
:
named-checkzone www2.lyc-detest.ac-aix-marseille.fr /etc/bind/db.zm.inv
(S'il vous est répondu que cette zone has no address records (A or AAAA), c'est normal.)
Test de la résolution directe :
host www2.lyc-detest.ac-aix-marseille.fr
ou, plus complet :
dig www2.lyc-detest.ac-aix-marseille.fr AXFR
Test de la résolution inverse :
host 192.168.0.13
ou, plus complet :
dig 0.168.192.in-addr.arpa AXFR
Apache2.2
Php5
Une erreur m'a bloqué longtemps, m'empêchant d'utiliser des solutions Php/MySQL : les modules idoines de Php5 ne se chargent pas ; une erreur "PHP Startup: Unable to load dynamic library" apparaît dans /var/log/apache2/error.log
.
La solution :
cd /usr/lib/php5 sudo ln -s 20090626+lfs modules
Ensuite, éditer le fichier /etc/php5/apache2/php.ini
; modifier la ligne :
extension_dir = "/usr/lib/php5/*/"
en :
extension_dir = "/usr/lib/php5/modules/"