From bfc8e37196759fb0e66d8ac237ab8d1dbb7ccc5d Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville Date: Fri, 11 Feb 2005 15:30:51 +0000 Subject: [PATCH] =?UTF-8?q?Suppression=20de=20la=20cr=E9ation=20du=20r=E9p?= =?UTF-8?q?ertoire=20d'images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/install/etape1.php | 631 +++++++++++++++++++------------------- 1 file changed, 314 insertions(+), 317 deletions(-) diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php index ad1de83149b..6f9a60d33b0 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/etape1.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2005 Rodolphe Quiedeville * Copyright (C) 2004 Laurent Destailleur * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Sebastien Di Cintio @@ -24,9 +24,9 @@ */ /** - \file htdocs/install/etape1.php - \brief Génère le fichier conf.php avec les informations issues de l'étape précédente - \version $Revision$ + \file htdocs/install/etape1.php + \brief Génère le fichier conf.php avec les informations issues de l'étape précédente + \version $Revision$ */ include_once("./inc.php"); @@ -55,350 +55,347 @@ if ($_POST["action"] == "set") { umask(0); print '

Enregistrement des valeurs

'; - + print ''; $error=0; $fp = fopen("$conffile", "w"); - if($fp) + if($fp) + { + if (substr($main_dir, strlen($main_dir) -1) == "/") { - if (substr($main_dir, strlen($main_dir) -1) == "/") - { - $main_dir = substr($main_dir, 0, strlen($main_dir)-1); - } - - if (substr($_POST["main_url"], strlen($_POST["main_url"]) -1) == "/") - { - $_POST["main_url"] = substr($_POST["main_url"], 0, strlen($_POST["main_url"])-1); - } - - clearstatcache(); - - fwrite($fp, ''); - fclose($fp); - - if (file_exists("$conffile")) - { - include ("$conffile"); - print ""; - $error = 0; - } - else - { - $error = 1; - } + $main_dir = substr($main_dir, 0, strlen($main_dir)-1); } - - if($dolibarr_main_db_type == "mysql") + + if (substr($_POST["main_url"], strlen($_POST["main_url"]) -1) == "/") { - include_once("../lib/mysql.lib.php"); - $choix=1; + $_POST["main_url"] = substr($_POST["main_url"], 0, strlen($_POST["main_url"])-1); } - else + + clearstatcache(); + + fwrite($fp, ''); + fclose($fp); + + if (file_exists("$conffile")) { - include_once("../lib/pgsql.lib.php"); - $choix=2; + include ("$conffile"); + print ""; + $error = 0; } - - + else + { + $error = 1; + } + } + + if($dolibarr_main_db_type == "mysql") + { + include_once("../lib/mysql.lib.php"); + $choix=1; + } + else + { + include_once("../lib/pgsql.lib.php"); + $choix=2; + } + + /*************************************************************************** * * Creation des répertoires * ***************************************************************************/ - if ($error == 0) + if ($error == 0) + { + + // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre téléchargés en passant outre l'authentification + $dir[0] = "$main_data_dir/facture"; + $dir[1] = "$main_data_dir/users"; + $dir[2] = "$main_data_dir/propale"; + $dir[3] = "$main_data_dir/societe"; + $dir[4] = "$main_data_dir/ficheinter"; + $dir[5] = "$main_data_dir/produit"; + $dir[6] = "$main_data_dir/rapport"; + $dir[7] = "$main_data_dir/rsscache"; + $dir[8] = "$main_data_dir/logo"; + + + if (! is_dir($main_dir)) { - - // Les images générés dynamiquement sont dans main_dir car doivent etre accessibles par url - $dir[0] = "$main_dir/images"; - - // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre téléchargés en passant outre l'authentification - $dir[1] = "$main_data_dir/facture"; - $dir[2] = "$main_data_dir/propale"; - $dir[3] = "$main_data_dir/societe"; - $dir[4] = "$main_data_dir/ficheinter"; - $dir[5] = "$main_data_dir/produit"; - $dir[6] = "$main_data_dir/rapport"; - $dir[7] = "$main_data_dir/rsscache"; - $dir[8] = "$main_data_dir/logo"; - $dir[9] = "$main_data_dir/users"; - - - if (! is_dir($main_dir)) - { - print ""; - $error++; - } - else - { - dolibarr_syslog ("Le dossier '".$main_dir."' existe"); - - // Répertoire des documents - if (! is_dir($main_data_dir)) - { - @mkdir($main_data_dir, 0755); - } - - if (! is_dir($main_data_dir)) - { - print "'; - $error++; - } - else - { - // Boucle sur chaque répertoire de dir[] pour les créer s'ils nexistent pas - for ($i = 0 ; $i < sizeof($dir) ; $i++) - { - if (is_dir($dir[$i])) - { - dolibarr_syslog ("Le dossier '".$dir[$i]."' existe"); - } - else - { - if (! @mkdir($dir[$i], 0755)) - { - print ""; - $error++; - } - else - { - dolibarr_syslog ("Le dossier '".$dir[$i]."' a ete cree"); - } - } - } - } - } + print ""; + $error++; } - + else + { + dolibarr_syslog ("Le dossier '".$main_dir."' existe"); + + // Répertoire des documents + if (! is_dir($main_data_dir)) + { + @mkdir($main_data_dir, 0755); + } + + if (! is_dir($main_data_dir)) + { + print "'; + $error++; + } + else + { + // Boucle sur chaque répertoire de dir[] pour les créer s'ils nexistent pas + for ($i = 0 ; $i < sizeof($dir) ; $i++) + { + if (is_dir($dir[$i])) + { + dolibarr_syslog ("Le dossier '".$dir[$i]."' existe"); + } + else + { + if (! @mkdir($dir[$i], 0755)) + { + print ""; + $error++; + } + else + { + dolibarr_syslog ("Le dossier '".$dir[$i]."' a ete cree"); + } + } + } + } + } + } + /* * Base de données * */ - if ($error == 0) - { - include_once($dolibarr_main_document_root . "/conf/conf.class.php"); - - // TODO - // Il y a encore des pb ds la procédure d'install qui ne passe dans pas tous les cas - // (exemple, rien n'existe et on veut créer une base avec un compte admin != root) - // L'algorithme ne semble pas adapté à tous les cas, il devrait etre remplacé par le suivant: - // - // On essaie l'accès par le user admin dolibarr - // si accès serveur ok et accès base ok, tout est ok, on ne va pas plus loin, on a même pas utilisé le compte root. - // si accès serveur ok et accès base ko, warning 1 - // si accès serveur ko, warning 2 - // Si warning, on essai de se connecter au serveur via le super user root - // Si connexion serveur par root ok et accès base ko, on la créée - // Si création ok, on y accède - // Si création ko, erreur - // Si connexion serveur par root ok et si accès base ok, - // si compte admin existe deja et db_create_user positionné, on ajoute les droits, - // si compte admin existe deja et db_create_user non positionné, erreur compte admin incorrect "Le compte admin indiqué existe mais n'a pas les droits sur la base. Veuillez cocher pour les ajouter" - // si compte admin n'existe pas deja et db_create_user positionné, on crée le compte - // si compte admin n'existe pas deja et db_create_user non positionné, erreur compte admin inexistant "Veuillez cocher pour le créer" - + if ($error == 0) + { + include_once($dolibarr_main_document_root . "/conf/conf.class.php"); + + // TODO + // Il y a encore des pb ds la procédure d'install qui ne passe dans pas tous les cas + // (exemple, rien n'existe et on veut créer une base avec un compte admin != root) + // L'algorithme ne semble pas adapté à tous les cas, il devrait etre remplacé par le suivant: + // + // On essaie l'accès par le user admin dolibarr + // si accès serveur ok et accès base ok, tout est ok, on ne va pas plus loin, on a même pas utilisé le compte root. + // si accès serveur ok et accès base ko, warning 1 + // si accès serveur ko, warning 2 + // Si warning, on essai de se connecter au serveur via le super user root + // Si connexion serveur par root ok et accès base ko, on la créée + // Si création ok, on y accède + // Si création ko, erreur + // Si connexion serveur par root ok et si accès base ok, + // si compte admin existe deja et db_create_user positionné, on ajoute les droits, + // si compte admin existe deja et db_create_user non positionné, erreur compte admin incorrect "Le compte admin indiqué existe mais n'a pas les droits sur la base. Veuillez cocher pour les ajouter" + // si compte admin n'existe pas deja et db_create_user positionné, on crée le compte + // si compte admin n'existe pas deja et db_create_user non positionné, erreur compte admin inexistant "Veuillez cocher pour le créer" + // Si creation utilisateur admin demandée, on le crée - if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") - { - dolibarr_syslog ("Creation de l'utilisateur : ".$dolibarr_main_db_user); - - if($choix == 1) - { //choix 1=mysql - - $conf = new Conf(); - $conf->db->host = $dolibarr_main_db_host; - $conf->db->name = $dolibarr_main_db_name; - $conf->db->name = $dolibarr_main_db_type; - $conf->db->user = isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; - $conf->db->pass = isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; - - //print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->pass; - - $db = new DoliDb(); + if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") + { + dolibarr_syslog ("Creation de l'utilisateur : ".$dolibarr_main_db_user); - $sql = "INSERT INTO user "; - $sql .= "(Host,User,password,elect_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)"; - $sql .= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_user',password('$dolibarr_main_db_pass')"; - $sql .= ",'Y','Y','Y','Y','Y',Y','Y','Y');"; - - print $sql; - - $db->query($sql); - - $sql = "INSERT INTO db "; - $sql .= "(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)"; - $sql .= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_name','$dolibarr_main_db_user'"; - $sql .= ",'Y','Y','Y','Y','Y','Y','Y','Y');"; - - print $sql; - - if ($db->query($sql)) - { - dolibarr_syslog("flush privileges"); - $db->query("flush privileges"); + if($choix == 1) + { //choix 1=mysql - print ""; - } - else - { - if ($db->errno() == 1062) - { - dolibarr_syslog("Utilisateur deja existant"); - print ""; - } - else - { - dolibarr_syslog("impossible de creer l'utilisateur"); - print ""; - } - } - - $db->close(); - } - else - { //choix 2=postgresql - - $nom = $dolibarr_main_db_user; - $con=pg_connect("host=localhost dbname=dolibarr user=postgres"); - $query_str = "create user \"$nom\" with password '".$dolibarr_main_db_pass."';"; - //print $query_str; - $ret = pg_query($con,$query_str); - - if ($ret) - print ""; - else - print ""; - - } - + $conf = new Conf(); + $conf->db->host = $dolibarr_main_db_host; + $conf->db->name = $dolibarr_main_db_name; + $conf->db->name = $dolibarr_main_db_type; + $conf->db->user = isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; + $conf->db->pass = isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; + + //print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->pass; + + $db = new DoliDb(); + + $sql = "INSERT INTO user "; + $sql .= "(Host,User,password,elect_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)"; + $sql .= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_user',password('$dolibarr_main_db_pass')"; + $sql .= ",'Y','Y','Y','Y','Y',Y','Y','Y');"; + + print $sql; + + $db->query($sql); + + $sql = "INSERT INTO db "; + $sql .= "(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv)"; + $sql .= " VALUES ('$dolibarr_main_db_host','$dolibarr_main_db_name','$dolibarr_main_db_user'"; + $sql .= ",'Y','Y','Y','Y','Y','Y','Y','Y');"; + + print $sql; + + if ($db->query($sql)) + { + dolibarr_syslog("flush privileges"); + $db->query("flush privileges"); + + print ""; } - + else + { + if ($db->errno() == 1062) + { + dolibarr_syslog("Utilisateur deja existant"); + print ""; + } + else + { + dolibarr_syslog("impossible de creer l'utilisateur"); + print ""; + } + } + + $db->close(); + } + else + { //choix 2=postgresql + + $nom = $dolibarr_main_db_user; + $con=pg_connect("host=localhost dbname=dolibarr user=postgres"); + $query_str = "create user \"$nom\" with password '".$dolibarr_main_db_pass."';"; + //print $query_str; + $ret = pg_query($con,$query_str); + + if ($ret) + print ""; + else + print ""; + + } + + } + // Tentative accès serveur et base par le user admin dolibarr - $conf = new Conf(); - $conf->db->host = $dolibarr_main_db_host; - $conf->db->name = $dolibarr_main_db_name; - $conf->db->user = $dolibarr_main_db_user; - $conf->db->pass = $dolibarr_main_db_pass; - //print $conf->db->host.",".$conf->db->name.",".$conf->db->user.",".$conf->db->pass; - - $db = new DoliDb(); - $ok = 1; + $conf = new Conf(); + $conf->db->host = $dolibarr_main_db_host; + $conf->db->name = $dolibarr_main_db_name; + $conf->db->user = $dolibarr_main_db_user; + $conf->db->pass = $dolibarr_main_db_pass; + //print $conf->db->host.",".$conf->db->name.",".$conf->db->user.",".$conf->db->pass; - if ($db->connected == 1) - { - dolibarr_syslog("la connexion au serveur est reussie"); - print ""; - } - else - { - dolibarr_syslog("la connection au serveur est rate"); - print ""; - $ok = 0; - } - - if ($ok) - { - if($db->database_selected == 1) - { - // - // Connexion base existante - // - dolibarr_syslog("la connexion a la database est reussie"); - print ""; - $ok = 1 ; - } - else - { - // - // Création de la base - // - dolibarr_syslog("la connexion a la database est rate"); - print ""; - print ''; - - $conf = new Conf(); - $conf->db->host = $dolibarr_main_db_host; - $conf->db->name = $dolibarr_main_db_name; - $conf->db->user = isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; - $conf->db->pass = isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; - - $dbt = new DoliDb(); // Ne pas prendre $db comme nom de variable car dejà pris pour connexion précédente et bug mémoire sur php windows dans ce cas - - if ($ok) - { - if ($dbt->connected == 1) - { - dolibarr_syslog("la connexion au serveur avec l'utilisateur root reussi"); - print ""; - } - else - { - dolibarr_syslog("la connexion au serveur avec l'utilisateur root rate"); - print ""; - $ok = 0; - } - } - - if ($ok) - { - if($dbt->database_selected == 1) - { - } - else - { - print ""; - print ''; - //$ok = 0; - } - } - - if ($ok) - { - if ($dbt->create_db ($dolibarr_main_db_name)) - { - print ""; - } - else - { - print ""; - $ok = 0; - } - } - } - } + $db = new DoliDb(); + $ok = 1; + + if ($db->connected == 1) + { + dolibarr_syslog("la connexion au serveur est reussie"); + print ""; } + else + { + dolibarr_syslog("la connection au serveur est rate"); + print ""; + $ok = 0; + } + + if ($ok) + { + if($db->database_selected == 1) + { + // + // Connexion base existante + // + dolibarr_syslog("la connexion a la database est reussie"); + print ""; + $ok = 1 ; + } + else + { + // + // Création de la base + // + dolibarr_syslog("la connexion a la database est rate"); + print ""; + print ''; + + $conf = new Conf(); + $conf->db->host = $dolibarr_main_db_host; + $conf->db->name = $dolibarr_main_db_name; + $conf->db->user = isset($_POST["db_user_root"])?$_POST["db_user_root"]:""; + $conf->db->pass = isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:""; + + $dbt = new DoliDb(); // Ne pas prendre $db comme nom de variable car dejà pris pour connexion précédente et bug mémoire sur php windows dans ce cas + + if ($ok) + { + if ($dbt->connected == 1) + { + dolibarr_syslog("la connexion au serveur avec l'utilisateur root reussi"); + print ""; + } + else + { + dolibarr_syslog("la connexion au serveur avec l'utilisateur root rate"); + print ""; + $ok = 0; + } + } + + if ($ok) + { + if($dbt->database_selected == 1) + { + } + else + { + print ""; + print ''; + //$ok = 0; + } + } + + if ($ok) + { + if ($dbt->create_db ($dolibarr_main_db_name)) + { + print ""; + } + else + { + print ""; + $ok = 0; + } + } + } + } + } } ?>
Configuration enregistréeOK
Configuration enregistréeOK
Le dossier '".$main_dir."' n'existe pas !Erreur
Le dossier '$main_data_dir' n'existe pas ! "; - print "Vous devez créer ce dossier et permettre au serveur web d'écrire dans celui-ci"; - print 'Erreur
Impossible de créer : ".$dir[$i]."Erreur
Le dossier '".$main_dir."' n'existe pas !Erreur
Le dossier '$main_data_dir' n'existe pas ! "; + print "Vous devez créer ce dossier et permettre au serveur web d'écrire dans celui-ci"; + print 'Erreur
Impossible de créer : ".$dir[$i]."Erreur
Création de l'utilisateur : $dolibarr_main_db_userOK
Création de l'utilisateur : $dolibarr_main_db_userDeja existant
Création de l'utilisateur : $dolibarr_main_db_userERREUR ".$db->error()."
Création de l'utilisateur:\"$nom\"OK
Création de l'utilisateur:\"$nom\"ERREUR
Création de l'utilisateur : $dolibarr_main_db_userOK
Création de l'utilisateur : $dolibarr_main_db_userDeja existant
Création de l'utilisateur : $dolibarr_main_db_userERREUR ".$db->error()."
Création de l'utilisateur:\"$nom\"OK
Création de l'utilisateur:\"$nom\"ERREUR
Connexion au serveur : $dolibarr_main_db_hostOK
Connexion au serveur : $dolibarr_main_db_hostERREUR
Connexion à la base : $dolibarr_main_db_nameOK
Echec de connexion à la base : $dolibarr_main_db_nameWarning
Création de la base : '.$dolibarr_main_db_name.'
Connexion au serveur : $dolibarr_main_db_host avec l'utilisateur : ".$_POST["db_user_root"]."OK
Connexion au serveur : $dolibarr_main_db_host avec l'utilisateur : ".$_POST["db_user_root"]."ERREUR
Vérification des droits de créationERREUR
-- Droits insuffissant
Création de la base : $dolibarr_main_db_nameOK
Création de la base : $dolibarr_main_db_nameERREUR
Connexion au serveur : $dolibarr_main_db_hostOK
Connexion au serveur : $dolibarr_main_db_hostERREUR
Connexion à la base : $dolibarr_main_db_nameOK
Echec de connexion à la base : $dolibarr_main_db_nameWarning
Création de la base : '.$dolibarr_main_db_name.'
Connexion au serveur : $dolibarr_main_db_host avec l'utilisateur : ".$_POST["db_user_root"]."OK
Connexion au serveur : $dolibarr_main_db_host avec l'utilisateur : ".$_POST["db_user_root"]."ERREUR
Vérification des droits de créationERREUR
-- Droits insuffissant
Création de la base : $dolibarr_main_db_nameOK
Création de la base : $dolibarr_main_db_nameERREUR