Alternc
latest
Alternc logiel libre pour l'hébergement
0.9.1_migrationldap.php
Go to the documentation of this file.
1
#!/usr/bin/php -q
2
<?php
3
4
// Script de migration des données LDAP vers les bases MYSQL de mx/imap
5
include(
"/var/alternc/bureau/class/local.php"
);
6
7
// On a chargé un fichier de local.php version antérieure, donc AVEC LDAP et SANS mysql_host (surement)
8
9
// Connect to the ldap server
10
11
if
(!($ds=ldap_connect($L_LDAP_HOST))) {
12
echo
"CANNOT CONNECT TO LDAP SERVER ! \n"
;
13
return
1;
14
}
15
16
if
(!(ldap_bind($ds,$L_LDAP_ROOT,$L_LDAP_ROOTPWD))) {
17
ldap_close($ds);
18
echo
"CANNOT BIND TO LDAP SERVER ! \n"
;
19
return
1;
20
}
21
22
// Connect to the mysql server
23
if
(!mysql_connect(
$L_MYSQL_HOST
,
$L_MYSQL_LOGIN
,
$L_MYSQL_PWD
)) {
24
echo
"CANNOT CONNECT TO MYSQL SERVER ! \n"
;
25
return
1;
26
}
27
if
(!mysql_select_db(
$L_MYSQL_DATABASE
)) {
28
echo
"CANNOT CONNECT TO MYSQL DATABASE ! \n"
;
29
return
1;
30
}
31
32
// Now enumerate the data for each base.
33
34
$sr
=ldap_search($ds,
"dc=domains,"
.$L_LDAP_POSTFIX,
"(type=mail)"
,array(
"mail"
,
"uid"
,
"account"
,
"pop"
));
35
$info
= ldap_get_entries($ds,
$sr
);
36
if
(
$info
[
"count"
]==0) {
37
echo
"INFO : Aucun mail dans la base DOMAINS \n"
;
38
}
39
40
echo
"Transferring "
.$info[
"count"
].
" Entries from domains "
;
41
for
(
$i
=0;
$i
<
$info
[
"count"
];
$i
++) {
42
mysql_query(
"INSERT INTO mail_domain (mail,alias,uid,pop) VALUES ('"
.addslashes(
$info
[
$i
][
"mail"
][0]).
"','"
.addslashes(
$info
[
$i
][
"account"
][0]).
"','"
.addslashes(
$info
[
$i
][
"uid"
][0]).
"','"
.addslashes(
$info
[
$i
][
"pop"
][0]).
"');"
);
43
if
((
$i
/10.0)==intval(
$i
/10)) { echo
"."
; flush(); }
44
}
45
echo
" done\n"
;
46
47
$sr
=ldap_search($ds,
"dc=aliases,"
.$L_LDAP_POSTFIX,
"(objectClass=alias)"
,array(
"mail"
,
"alias"
));
48
$info
= ldap_get_entries($ds,
$sr
);
49
if
(
$info
[
"count"
]==0) {
50
echo
"INFO : Aucun mail dans la base ALIASES \n"
;
51
}
52
53
echo
"Transferring "
.$info[
"count"
].
" Entries from aliases "
;
54
for
(
$i
=0;
$i
<
$info
[
"count"
];
$i
++) {
55
mysql_query(
"INSERT INTO mail_alias (mail,alias) VALUES ('"
.addslashes(
$info
[
$i
][
"mail"
][0]).
"','"
.addslashes(
$info
[
$i
][
"alias"
][0]).
"');"
);
56
if
((
$i
/10.0)==intval(
$i
/10)) { echo
"."
; flush(); }
57
}
58
echo
" done\n"
;
59
60
$sr
=ldap_search($ds,
"dc=users,"
.$L_LDAP_POSTFIX,
"(objectClass=posixAccount)"
,array(
"uid"
,
"uidNumber"
,
"homeDirectory"
,
"userPassword"
));
61
$info
= ldap_get_entries($ds,
$sr
);
62
if
(
$info
[
"count"
]==0) {
63
echo
"INFO : Aucun mail dans la base USERS \n"
;
64
}
65
66
echo
"Transferring "
.$info[
"count"
].
" Entries from users "
;
67
for
(
$i
=0;
$i
<
$info
[
"count"
];
$i
++) {
68
mysql_query(
"INSERT INTO mail_users (uid,alias,path,password) VALUES ('"
.addslashes(
$info
[
$i
][
"uidNumber"
][0]).
"','"
.addslashes(
$info
[
$i
][
"uid"
][0]).
"','"
.addslashes(
$info
[
$i
][
"homeDirectory"
][0]).
"','"
.addslashes(
$info
[
$i
][
"userPassword"
][0]).
"');"
);
69
if
((
$i
/10.0)==intval(
$i
/10)) { echo
"."
; flush(); }
70
}
71
echo
" done\n"
;
72
73
mysql_close();
74
ldap_close($ds);
75
76
77
?>
$sr
if(!($ds=ldap_connect($L_LDAP_HOST))) if(!(ldap_bind($ds, $L_LDAP_ROOT, $L_LDAP_ROOTPWD))) if(!mysql_connect($L_MYSQL_HOST, $L_MYSQL_LOGIN, $L_MYSQL_PWD)) if(!mysql_select_db($L_MYSQL_DATABASE)) $sr
Definition:
0.9.1_migrationldap.php:34
$info
$info
Definition:
0.9.1_migrationldap.php:35
$L_MYSQL_LOGIN
global $L_MYSQL_LOGIN
Definition:
bootstrap.php:26
$L_MYSQL_HOST
global $L_MYSQL_HOST
Definition:
bootstrap.php:22
$L_MYSQL_PWD
global $L_MYSQL_PWD
Definition:
bootstrap.php:26
$L_MYSQL_DATABASE
global $L_MYSQL_DATABASE
Definition:
bootstrap.php:26
$i
$i
Definition:
sql_getparam.php:55
install
upgrades
0.9.1_migrationldap.php
Generated on Sat Sep 16 2023 12:00:04 for Alternc by
1.9.1