Mise en route du suivi.
[aidenligne_francais_universite.git] / ecrire / exec / install.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 define("_ECRIRE_INSTALL", "1");
16 define('_FILE_TMP', '_install');
17
18 // http://doc.spip.org/@exec_install_dist
19 function exec_install_dist()
20 {
21 $etape = _request('etape');
22 if (_FILE_CONNECT) {
23 echo minipres('AUTO', _T('avis_espace_interdit'));
24 exit;
25 } else {
26
27 // On va supprimer les eventuelles vieilles valeurs de meta,
28 // mais il faut relancer init_langues pour savoir quelles
29 // sont les langues disponibles pour l'installation
30 @unlink(_FILE_META);
31 unset($GLOBALS['meta']);
32 include_spip('inc/lang');
33 init_langues(); // pourquoi faut-il l'appeler encore une fois ?
34
35 include_spip('base/create');
36 include_spip('base/db_mysql');
37
38 $fonc = charger_fonction("etape_$etape", 'install');
39 $fonc();
40 }
41 }
42
43 //
44 // Verifier que l'hebergement est compatible SPIP ... ou l'inverse :-)
45 // (sert a l'etape 1 de l'installation)
46 // http://doc.spip.org/@tester_compatibilite_hebergement
47 function tester_compatibilite_hebergement() {
48 $err = array();
49
50 $p = phpversion();
51 if (ereg('^([0-9]+)\.([0-9]+)\.([0-9]+)', $p, $regs)) {
52 $php = array($regs[1], $regs[2], $regs[3]);
53 $m = '4.0.8';
54 $min = explode('.', $m);
55 if ($php[0]<$min[0]
56 OR ($php[0]==$min[0] AND $php[1]<$min[1])
57 OR ($php[0]==$min[0] AND $php[1]==$min[1] AND $php[2]<$min[2]))
58 $err[] = _T('install_php_version', array('version' => $p, 'minimum' => $m));
59 }
60
61 if (!function_exists('mysql_query'))
62 $err[] = _T('install_extension_php_obligatoire')
63 . " <a href='http://se.php.net/mysql'>MYSQL</a>";
64
65 if (!function_exists('preg_match_all'))
66 $err[] = _T('install_extension_php_obligatoire')
67 . " <a href='http://se.php.net/pcre'>PCRE</a>";
68
69 if ($a = @ini_get('mbstring.func_overload'))
70 $err[] = _T('install_extension_mbstring')
71 . "mbstring.func_overload=$a - <a href='http://se.php.net/mb_string'>mb_string</a>.<br /><small>";
72
73 if ($err) {
74 echo "<p class='verdana1 spip_large'><b>"._T('avis_attention').'</b></p><p>'._T('install_echec_annonce')."</p><ul>";
75 while (list(,$e) = each ($err))
76 echo "<li>$e</li>\n";
77
78 # a priori ici on pourrait die(), mais il faut laisser la possibilite
79 # de forcer malgre tout (pour tester, ou si bug de detection)
80 echo "</ul><hr />\n";
81 }
82 }
83
84
85 // Une fonction pour faciliter la recherche du login (superflu ?)
86 // http://doc.spip.org/@login_hebergeur
87 function login_hebergeur() {
88 global $HTTP_X_HOST, $REQUEST_URI, $SERVER_NAME, $HTTP_HOST;
89
90 $base_hebergeur = 'localhost'; # par defaut
91
92 // Lycos (ex-Multimachin)
93 if ($HTTP_X_HOST == 'membres.lycos.fr') {
94 ereg('^/([^/]*)', $REQUEST_URI, $regs);
95 $login_hebergeur = $regs[1];
96 }
97 // Altern
98 else if (ereg('altern\.com$', $SERVER_NAME)) {
99 ereg('([^.]*\.[^.]*)$', $HTTP_HOST, $regs);
100 $login_hebergeur = ereg_replace('[^a-zA-Z0-9]', '_', $regs[1]);
101 }
102 // Free
103 else if (ereg('(.*)\.free\.fr$', $SERVER_NAME, $regs)) {
104 $base_hebergeur = 'sql.free.fr';
105 $login_hebergeur = $regs[1];
106 }
107
108 return array($base_hebergeur, $login_hebergeur);
109 }
110
111 ?>