2. Installation
2.1 Pré-requis
Avant d'installer DTC, apache doit être déja installé sur le système ainsi
que php4 (version cgi en ligne de commande (php4-cgi sous debian / php-cgi sous BSD)
et le module mod_php4 pour apache). mysql.
Pour que DTC ait un intérêt, installer bind(ou autre nameserver compatible), qmail et proftpd avec le module mod_sql
sans oublier de prévoir au moins un nom de domaine utilisable.
Nottez que sous BSD comme sous Debian, les dépendances installent éléments
manquants. Par contre, le mot de passe administrateur du serveur MySQL doit
etre configuré avant d'installer DTC.
2.2 Configuration des daemons avant installation
2.2.1 Mysql
Par défaut, la plupart des distributions installent mysql-server sans mot de passe administrateur, il faut donc
mettre un mot de passe avant l'installation de DTC :
Taper sous shell la ligne de commande suivante pour vous connecter à mysql :
mysql -uroot -Dmysql
Puis la requête SQL suivante :
UPDATE user SET Password=PASSWORD('VOTRE_MOT_DE_PASSE') WHERE User='root';
FLUSH PRIVILEGES;
2.2.2 Apache
Il faut maintenant donner un nom par défaut au serveur apache et le configurer pour utiliser nobody/nogroup
comme utilisateur, pour ce faire il suffit d'éditer le fichier httpd.conf en changeant les directives User, Group,
ServerName :
User nobody
Group nogroup
ServerName www.example.com (le ServerName doit être le même que dans /etc/hostname)
(le fichier httpd.conf se retrouve avec un chemin différent selon la distribution installée, par exemple sous debian :
/etc/apache/httpd.conf , sous redhat : /etc/httpd/conf/httpd.conf , si vous compilé apache vous même : /usr/local/apache/etc/httpd.conf , .. )
2.3 Installation avec la distribution debian
DTC ne fait pas encore partie de l'arborescence officielle des packages debian, En attendant il suffit de
rajouter la ligne suivante dans le fichier /etc/apt/sources.list :
deb ftp://gplhost.com/debian stable main
Ce repository contient les versions compilées de qmail-src et ucspi-tcp-src qui ne sont
fournies qu'en version source sur les repository officiels (pour des raisons de licences),
on trouvera aussi le programme d'authentification alternatif (via le fichier /etc/poppasswd)
pour qmail nommé checklocalpwd par Jedi (en package debian réalisé par l'auteur de DTC),
et mysqmail qui contient une version patché de qmail-pop3d pour logger le trafic pop
en MySQL, un logger et une authetification.
Une fois ce rajout effectué, l'installation se fait comme pour n'importe quel package debian:
apt-get install dtc
Une suite de questions vous sera posée pour permettre à DTC d'installer le 1er domaine
(c'est sur une zone de ce domaine que sera installé l'interface web de DTC) :
- le nom d'hote mysql.
- le login administrateur de mysql.
- le mot de passe administrateur de mysql.
- le nom de la base de données utilisée par DTC.
- le nom de domaine principal.
- la zone utilisée pour accéder à l'interface DTC.
- l'adresse ip principale de la machine.
- le chemin par défaut où seront stockés les données des domaines (mail,html) lors de la création d'un nouveau compte client.
- le couple login/mot de passe utilisé pour administrer le 1er domaine créé
Attention ! Il peut arrivé, si php4-cgi est installé après php4-mysql par
exemple, que le module ne soit pas activé dans php4-cgi. Veuillez alors
activer mysql.so manuellement dans /etc/php4/cgi/php.ini (de meme pour
les autres modules de php4 nécessaires). De manière générale, il est raisonable
de passer du temps pour vérifier que vos httpd.conf et php.ini sont bien
configuré et permettent une sécurité maximale (reegister_globales=0,
safe_mode=1 par exemple).
2.4 Installation avec la distribution redhat
La version actuelle du package RPM de DTC a été conçue pour les dépendances et les chemins d'une redhat 7.3,
mais puisqu'il s'agit de scripts php non compilés le package devrait fonctionner avec toutes les versions supérieures.
Le package RPM est disponible sur ftp.gplhost.com
L'installation se fait comme pour n'importe quel package rpm :
rpm -ivh dtc-VERSION_noarch.rpm
Puisque sous redhat, il n'est pas possible de poser des questions à l'utilisateur durant la phase d'installation, un
script de post-installation est disponible ( /usr/share/dtc/admin/dtc.rpm-install.sh ) qui vous posera les questions déja
énumérées dans le sous-chapitre "installation avec la distribution debian".
2.5 Installation avec une distribution BSD/GENTOO
Un port est en cours de développement permettant de résoudre les dépendances.
Pour le moment vous devez vous satisfaire du script d'installation livré avec
l'archive BSD. Veuillez notté que cette archive a été testé et qu'elle fonctionne,
c'est simplement qu'il y a beaucoup de choses a installer pour que DTC soit
opérationnel.
2.6 Installation manuelle
Dans un premier temps il faut télécharger l'archive .tar de DTC qui est disponible sur ftp.gplhost.com
Puis décompresser l'archive:
tar -xvzf dtc_VERSION_all.tar.gz
ensuite installer les fichiers décompressés:
mkdir -p /usr/share/dtc/etc/zones
mv dtc_VERSION_all/dtc /usr/share
chown -R root:root /usr/share/dtc
chown -R nobody:nogroup /usr/share/dtc/etc
enfin le lancement du script d'installation finale:
dtc_VERSION_all/install.sh
En plus des questions déja énumérées dans le sous-chapitre
"installation avec la distribution debian" il vous sera demandé le chemin des
fichiers de configuration suivants : httpd.conf, proftpd.conf, named.conf.
Véfifier après installation de qmail que votre fichier /etc/passwd soit de la forme suivante :
qmaild:x:64011:65534:qmail daemon,,,:/var/qmail:/bin/sh
qmaill:x:64015:65534:qmail log,,,:/var/qmail:/bin/sh
qmailp:x:64016:65534:qmail pw,,,:/var/qmail:/bin/sh
Si vous préféré installer tout 'a la main' sans le script d'installation,
voici comment il faut procéder (désolé, c'est en anglais...):
- First, install apache, bind, proftpd with mysql support, and qmail with either mysql support
or using the Jedi's checklocalpasswd program for authentification.
Already done ? You should either be very fast or have debian system installed !
- Setup the database the way the "create_table.sql" describe it. You can cut-paste
this file content in phpmyadmin if you like...
- Create some folders for dtc to store the generated files :
# Create /etc/dtc (conf file), /etc/dtc/data (generated file path)
# and /etc/dtc/data/zone (where named zone files will be stored)
# Folder where dtc will generate it's files for apache, qmail and bind :
mkdir -p /etc/dtc/data/zone
- Make this folder accessible by your web user (it should be either nobody or www-data
depending the way things are set up...).
chown -R nobody:nogroup /etc/dtc/data;
- DTC will generate the following files in the /etc/dtc/data folder. You have to either
replace package files by a symlink to those files, or include these in the package file.
Let's see them one by one. Note that you can change the path to all of them in the
config.inc.php.
DTC will generate the folowing files for you : named.zones - named_slave.zones - vhosts.prosites - rcpthosts - virtualdomains - assign - poppasswd
* named.zones or named_slave.zones
Include this file in your named.conf (located in /etc/bind under
debian and /etc/namedb under FreeBSD) file using the following syntax :
include "/etc/dtc/data/named.zones";
* vhosts.prosites
Include this in your /etc/apache/httpd.conf :
Include /etc/dtc/data/vhosts.prosites
* qmail files
You have to replace the qmail files by symlinks to those files :
rm /etc/qmail/rcpthosts; ln -s /etc/qmail/rcpthosts /etc/dtc/data/rcpthosts;
rm /etc/qmail/virtualdomains; ln -s /etc/qmail/virtualdomains /etc/dtc/data/virtualdomains;
rm /etc/qmail/users/assign; ln -s /etc/qmail/users/assign /etc/dtc/data/assign
If you use the Jedi's checklocalpasswd :
rm /etc/poppasswd; ln -s /etc/poppasswd /etc/dtc/data/poppasswd;
- You have to add the following directives in /etc/proftpd.conf to enable
sql control :
# Beware that one is deprecated in newer version of proftpd:
# UseReverseDNS off
IdentLookups off
# This is specific to mod_sql for proftpd
SQLAuthenticate on
SQLConnectInfo YOURDATABASENAME@localhost YOURSQLUSER YOURSQLPASS
SQLUserInfo ftp_access login password uid gid homedir shell
SQLAuthTypes Plaintext
you can also add the following if you need quota support :
Quotas on
DefaultQuota 50
QuotaType hard
QuotaCalc on
QuotaBlockName Mbites
QuotaBlockSize 1024000
User nobody
Group nogroup
SQLHomedirOnDemand on
You can also add some directives to have FTP accouting done, like the install
script does...
- Next, you have to put all the dtc php file somewhere in your apache tree so you can
browse, click, and enjoy dtc.
2.7 Post-Installation (protection via .htaccess)
Par défaut le fichier .htaccess suivant protège le repertoire (par défaut dans /usr/share/dtc/admin) de l'interface administrateur :
AuthName "A funny message prompted to user !"
AuthType Basic
AuthUserFile /var/www/.htpasswd
require valid-user
Vous devez créer le fichier .htpasswd en spécifiant l'utilisateur pouvant accéder à ce répertoire :
htpasswd -c /var/www/.htpasswd nom_utilisateur
(l'option -c permet de créer le fichier, si elle n'est pas spécifiée l'utilisateur sera ajouté au fichier).
A la suite de cette commande, il vous sera demandé d'entrer un mot de passe.
N'oubliez pas que la directive apache AllowOverride restreint l'utilisation des fichiers .htaccess, il y a
donc de fortes chances que vous deviez configurer le fichier httpd.conf pour autoriser l'utilisation de la
restriction d'accès, sans quoi ce répertoire ne sera pas protégé. (voir la documentation d'apache).
Pour que bind (named) fonctionne il faut que vous éditiez la partie 'forwarders' de
votre named.conf. N'oubliez pas de configurer /etc/resolv.conf comme il suit :
nameserver 127.0.0.1
Sans quoi votre serveur ne pourra pas résolver correctement.