Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
200messagerie:030postfix3:010_cyradm [le 01/01/2017 à 17:20] – [Web-Cyradm] prof200messagerie:030postfix3:010_cyradm [le 02/01/2017 à 17:17] – [Configuration de web-cyradm] prof
Ligne 25: Ligne 25:
  
 L'une comme l'autre de ces versions sont largement hors d'âge, mais offrent au moins une base de travail utilisable. L'une comme l'autre de ces versions sont largement hors d'âge, mais offrent au moins une base de travail utilisable.
 +
 +Tout ce qui suit est fait en fonction de la version 0.5.4-rc1.
 ===== Création de la base ===== ===== Création de la base =====
 Nous retrouvons dans le répertoire ''scripts'' deux fichiers SQL qui vont (presque) nous permettre de créer la base de données MySQL. Nous retrouvons dans le répertoire ''scripts'' deux fichiers SQL qui vont (presque) nous permettre de créer la base de données MySQL.
Ligne 47: Ligne 49:
 Nous sommes restés très imaginatifs, la base et l'utilisateur s'appellent ''mail'', avec un mot de passe désormais classique : ''epikoi''. Nous sommes restés très imaginatifs, la base et l'utilisateur s'appellent ''mail'', avec un mot de passe désormais classique : ''epikoi''.
  
-''create_mysql.sql'' va construire les tables de la base et y mettre quelques informations vitales (rendrez-vous à la fin du script) :+''create_mysql.sql'' va construire les tables de la base et y mettre quelques informations vitales (rendrez-vous à la fin du script). Malheureusement, il est lui aussi hors d'âge et ne sera pas compris tel quel par les moteurs aussi bien MySQL que MariaDB de la Jessie. Aussi faudra-t-il lui appliquer le «patch» suivant : 
 <html><pre class="code"> <html><pre class="code">
-# phpMyAdmin MySQL-Dump +@@ -1,12 +1,12 @@ 
-# version 2.2.6 + # phpMyAdmin MySQL-Dump 
-# http://phpwizard.net/phpMyAdmin/ + # version 2.2.6 
-# http://www.phpmyadmin.net/ (download page) ++# patched for MariaDB 10.0.28 
-+ # http://phpwizard.net/phpMyAdmin/ 
-# Host: localhost + # http://www.phpmyadmin.net/ (download page) 
-# Generation Time: Nov 04, 2002 at 01:44 AM + # 
-# Server version: 3.23.52 + # Host: localhost 
-# PHP Version: 4.2.3 + # Generation Time: Nov 04, 2002 at 01:44 AM 
-# Database : `mail` +-# Server version: 3.23.52 
-# --------------------------------------------------------+-# PHP Version: 4.2.3 
 ++# Modified: Jan 01, 2017 at 04:36 PM UTC 
 + # Database : `mail` 
 + # -------------------------------------------------------- 
 +  
 +@@ -24,7 +24,7 @@ 
 +   sieve int(10) NOT NULL default '1', 
 +   smtpauth int(10) NOT NULL default '1', 
 +   UNIQUE KEY username (username) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -38,7 +38,7 @@ 
 +   SID varchar(255) NOT NULL default '', 
 +   home varchar(255) NOT NULL default '', 
 +   PRIMARY KEY  (username) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -51,7 +51,7 @@ 
 +   `maxdisplay` int(4) NOT NULL default '15', 
 +   `warnlevel` int(3) NOT NULL default '90', 
 +   PRIMARY KEY  (username) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -64,7 +64,7 @@ 
 +   username varchar(50) NOT NULL default '', 
 +   status int(11) NOT NULL default '1', 
 +   PRIMARY KEY  (alias) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -83,7 +83,7 @@ 
 +   folders varchar(255) NOT NULL default '', 
 +   PRIMARY KEY  (domain_name), 
 +   UNIQUE KEY prefix (prefix) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -93,7 +93,7 @@ 
 + CREATE TABLE domainadmin ( 
 +   domain_name varchar(255) NOT NULL default '', 
 +   adminuser varchar(255) NOT NULL default '' 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -104,10 +104,10 @@ 
 +   search_id varchar(255) NOT NULL default '', 
 +   search_sql text NOT NULL, 
 +   perpage int(11) NOT NULL default '0', 
 +-  timestamp timestamp(14) NOT NULL, 
 ++  timestamp timestamp(6) NOT NULL, 
 +   PRIMARY KEY  (search_id), 
 +   KEY search_id (search_id) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 + # -------------------------------------------------------- 
 +  
 + # 
 +@@ -120,7 +120,7 @@ 
 +   username varchar(50) NOT NULL default '', 
 +   status int(11) NOT NULL default '1', 
 +   KEY alias (alias) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 +  
 + CREATE TABLE log ( 
 +   id int(11) NOT NULL auto_increment, 
 +@@ -130,11 +130,11 @@ 
 +   time datetime NOT NULL default '2000-00-00 00:00:00', 
 +   pid varchar(255) NOT NULL default '', 
 +   PRIMARY KEY  (id) 
 +-) TYPE=MyISAM; 
 ++) ENGINE XtraDB; 
 +  
 +-INSERT INTO adminuser (username, password) VALUES ('admin', ENCRYPT('test')); 
 ++INSERT INTO adminuser (username, password) VALUES ('admin', ENCRYPT('epikoi')); 
 + INSERT INTO domainadmin (domain_name,adminuser) VALUES ('*','admin'); 
 +-INSERT INTO accountuser (username, password) VALUES ('cyrus', ENCRYPT('secret')); 
 ++INSERT INTO accountuser (username, password) VALUES ('cyrus', ENCRYPT('epikoi')); 
 + INSERT INTO `settings` ( `username` , `style` , `maxdisplay` , `warnlevel` ) VALUES ( 'admin', 'default', '15', '90'); 
 +  
 + ALTER TABLE `log` ADD INDEX `idx_log_user` ( `user` ); 
  
-# 
-# Table structure for table `accountuser` 
-# 
- 
-CREATE TABLE accountuser ( 
-  username varchar(255) binary NOT NULL default '', 
-  password varchar(50) binary NOT NULL default '', 
-  prefix varchar(50) NOT NULL default '', 
-  domain_name varchar(255) NOT NULL default '', 
-  imap int(10) NOT NULL default '1', 
-  pop int(10) NOT NULL default '1', 
-  sieve int(10) NOT NULL default '1', 
-  smtpauth int(10) NOT NULL default '1', 
-  UNIQUE KEY username (username) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `adminuser` 
-# 
- 
-CREATE TABLE adminuser ( 
-  username varchar(50) binary NOT NULL default '', 
-  password varchar(50) binary NOT NULL default '', 
-  type int(11) NOT NULL default '0', 
-  SID varchar(255) NOT NULL default '', 
-  home varchar(255) NOT NULL default '', 
-  PRIMARY KEY  (username) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `settings` 
-# 
- 
-CREATE TABLE settings ( 
-  `username` varchar(50) binary NOT NULL default '', 
-  `style` varchar(50) NOT NULL default 'default', 
-  `maxdisplay` int(4) NOT NULL default '15', 
-  `warnlevel` int(3) NOT NULL default '90', 
-  PRIMARY KEY  (username) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `alias` 
-# 
- 
-CREATE TABLE alias ( 
-  alias varchar(255) NOT NULL default '', 
-  dest longtext, 
-  username varchar(50) NOT NULL default '', 
-  status int(11) NOT NULL default '1', 
-  PRIMARY KEY  (alias) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `domain` 
-# 
- 
-CREATE TABLE domain ( 
-  domain_name varchar(255) NOT NULL default '', 
-  prefix varchar(50) NOT NULL default '', 
-  maxaccounts int(11) NOT NULL default '20', 
-  quota int(10) NOT NULL default '20000', 
-  domainquota int(10) NOT NULL default '0', 
- 
- 
- 
- 
- 
- 
- 
-  transport varchar(255) NOT NULL default 'cyrus', 
-  freenames enum('YES','NO') NOT NULL default 'NO', 
-  freeaddress enum('YES','NO') NOT NULL default 'NO', 
-  folders varchar(255) NOT NULL default '', 
-  PRIMARY KEY  (domain_name), 
-  UNIQUE KEY prefix (prefix) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `domainadmin` 
-# 
- 
-CREATE TABLE domainadmin ( 
-  domain_name varchar(255) NOT NULL default '', 
-  adminuser varchar(255) NOT NULL default '' 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `search` 
-# 
- 
-CREATE TABLE search ( 
-  search_id varchar(255) NOT NULL default '', 
-  search_sql text NOT NULL, 
-  perpage int(11) NOT NULL default '0', 
-  timestamp timestamp(14) NOT NULL, 
-  PRIMARY KEY  (search_id), 
-  KEY search_id (search_id) 
-) TYPE=MyISAM; 
-# -------------------------------------------------------- 
- 
-# 
-# Table structure for table `virtual` 
-# 
- 
-CREATE TABLE virtual ( 
-  alias varchar(255) NOT NULL default '', 
-  dest longtext, 
-  username varchar(50) NOT NULL default '', 
-  status int(11) NOT NULL default '1', 
-  KEY alias (alias) 
-) TYPE=MyISAM; 
- 
-CREATE TABLE log ( 
-  id int(11) NOT NULL auto_increment, 
-  msg text NOT NULL, 
-  user varchar(255) NOT NULL default '', 
-  host varchar(255) NOT NULL default '', 
-  time datetime NOT NULL default '2000-00-00 00:00:00', 
-  pid varchar(255) NOT NULL default '', 
-  PRIMARY KEY  (id) 
-) TYPE=MyISAM; 
- 
-<span class="hly">INSERT INTO adminuser (username, password) VALUES ('admin', ENCRYPT('epikoi')); 
-INSERT INTO domainadmin (domain_name,adminuser) VALUES ('*','admin'); 
-INSERT INTO accountuser (username, password) VALUES ('cyrus', ENCRYPT('epikoi')); 
-INSERT INTO `settings` ( `username` , `style` , `maxdisplay` , `warnlevel` ) VALUES ( 'admin', 'default', '15', '90');</span> 
- 
-ALTER TABLE `log` ADD INDEX `idx_log_user` ( `user` );  
 </pre></html> </pre></html>
 +Quelques corrections de langage d'une part, et une configuration personnalisée pour l'administrateur ''admin'' qui gérera le système.
  
-Dans ''adminuser'' nous plaçons ce qu'il faut pour pouvoir par la suite ouvrir une session sur web-cyradm. Le couple ''admin/epikoi'' n'a aucun rapport avec un quelconque utilisateur de la messagerie, c'est juste un « loggin » qui permet d'utiliser web-cyradm. +En ce qui concerne ''cyrus/epikoi'', ce loggin va permettre l'administration de cyrus. Il sera configuré de la même manière dans cyrus-imap et permettra d'utiliser l'outil ''cyradm''.
- +
-Dans ''accountuser'' nous créons ''cyrus/epikoi''. Ce loggin va permettre l'administration de cyrus. Il est en principe inconnu de tous, c'est une affaire entre web-cyradm et cyrus.+
  
-Bien entendu, ces loggins sont à personnaliser avant de créer la base.+Bien entendu, ces loggins sont à personnaliser à votre goût avant de créer la base.
  
 Il suffit maintenant de faire :  Il suffit maintenant de faire : 
Ligne 213: Ligne 175:
 web-cyradm pouvant utiliser aussi bien MySQL que PostgreSQL, le concepteur a utilisé une couche d'abstraction (hélas obsolète aujourd'hui), mais qui est pour l'instant encore disponible, il s'agit de Pear::DB. Un : web-cyradm pouvant utiliser aussi bien MySQL que PostgreSQL, le concepteur a utilisé une couche d'abstraction (hélas obsolète aujourd'hui), mais qui est pour l'instant encore disponible, il s'agit de Pear::DB. Un :
   aptitude install php-pear   aptitude install php-pear
 +  pear install PEAR
   pear install DB   pear install DB
 Résoudra le problème (avec le « warning » qui va bien), si vous avez bien entendu installé ce qu'il faut pour utiliser Pear. Résoudra le problème (avec le « warning » qui va bien), si vous avez bien entendu installé ce qu'il faut pour utiliser Pear.
Ligne 358: Ligne 321:
  
 </pre></html> </pre></html>
-Nous allons utiliser cyrus 2.et ses possibilités natives de gestion des domaines virtuels. Il existe en effet deux possibilités pour gérer ces domaines virtuels : +Nous allons utiliser cyrus 2.et ses possibilités natives de gestion des domaines virtuels. Il existe en effet deux possibilités pour gérer ces domaines virtuels : 
-  - demander à Cyrus (2.2) de le faire lui-même. Dans ce cas, un utilisateur aura comme nom d'utilisateur son adresse e-mail complète, à la manière de Qmail-Vpopmail ;+  - demander à Cyrus (2.4) de le faire lui-même. Dans ce cas, un utilisateur aura comme nom d'utilisateur son adresse e-mail complète, à la manière de Qmail-Vpopmail ;
   - faire « à l'ancienne » avec tous les comptes dans un seul domaine, et des alias qui iront pointer dessus. Dans ce cas, l'utilisateur qui aurait par exemple l'adresse ''%%machin@chose.tld%%'' n'aurait en fait qu'un alias, pointant sur une « vraie » boîte d'adresse, disons, ''%%chose.tld-machin@domaineunique.tld%%'' et son nom d'utilisateur serait dans ce cas ''chose.tld-machin''.   - faire « à l'ancienne » avec tous les comptes dans un seul domaine, et des alias qui iront pointer dessus. Dans ce cas, l'utilisateur qui aurait par exemple l'adresse ''%%machin@chose.tld%%'' n'aurait en fait qu'un alias, pointant sur une « vraie » boîte d'adresse, disons, ''%%chose.tld-machin@domaineunique.tld%%'' et son nom d'utilisateur serait dans ce cas ''chose.tld-machin''.