[Alba-desarrollo] SVN Alba r4541 - prosistem/alba/trunk

commits en pressenter.com.ar commits en pressenter.com.ar
Lun Abr 9 22:51:55 CEST 2007


Author: hsanchez
Date: 2007-04-09 17:51:53 -0300 (Mon, 09 Apr 2007)
New Revision: 4541

Modified:
   prosistem/alba/trunk/index.php
Log:
Generando archivo de log para la instalacion, permite un debug de la instalacion en un cliente

Modified: prosistem/alba/trunk/index.php
===================================================================
--- prosistem/alba/trunk/index.php	2007-04-06 20:19:20 UTC (rev 4540)
+++ prosistem/alba/trunk/index.php	2007-04-09 20:51:53 UTC (rev 4541)
@@ -45,8 +45,8 @@
 
     define("INSTALL_COMPLETE_DIR",ALBA_PATH."log");
     define("INSTALL_COMPLETE_FILE",INSTALL_COMPLETE_DIR.DIRECTORY_SEPARATOR."instalacion_completa");
-
-
+    define("DEBUG_LOG",INSTALL_COMPLETE_DIR.DIRECTORY_SEPARATOR."install.log");
+    //define("DEBUG_LOG","install.log"); 
     define("ALBA_WEB",ALBA_PATH."web".DIRECTORY_SEPARATOR);
     define("CONFIG_PATH", ALBA_PATH."config".DIRECTORY_SEPARATOR);
 
@@ -81,15 +81,23 @@
 
 
     if(!file_exists(INSTALL_COMPLETE_FILE)) {
-
+        
+        $fp = fopen(DEBUG_LOG, "at" );
+        fputs( $fp,date( "d/m/Y H:m:s")." ---- INICIO DE VERIFICACIONES ----\n\n" );
+        
     if(OS_WINDOWS) {
         @unlink(ALBA_PATH.".htaccess");
         @unlink(INSTALL_DIR."dist/.htaccess");
+        fputs( $fp,date( "d/m/Y H:m:s")."   SO: Windows \n\n" );
     }
-
+    else
+        fputs( $fp,date( "d/m/Y H:m:s")."   SO: Linux \n\n" );
+        
     //muchas veces tarda demasiado por lo que es prudente ponerle un infinito tiempo de ejecucion
     set_time_limit(0);    
+    
 
+    
 
     $f_phpversion = function_exists ("phpversion");
     $f_apache_get_version = function_exists ("apache_get_version");
@@ -118,8 +126,8 @@
         $memory_limit = "No se pudo conocer la cantidad de memoria disponible en su PHP.";
         $bool_memory_no_chequeo = false;
     }
+    fputs( $fp,date( "d/m/Y H:m:s")."   memory_limit: $memory_limit\n\n" );
 
-
     $bool_cache = tienePermisoEscritura(ALBA_PATH."cache");
     $bool_log = tienePermisoEscritura(ALBA_PATH."log");
     $bool_upload = tienePermisoEscritura(ALBA_WEB."uploads");
@@ -131,8 +139,10 @@
         $msg_phpversion = "Su versión de PHP es ".phpversion();
     } else {
         $msg_phpversion = "No se pudo verificar la versión de PHP";
+        
     }
-
+    fputs( $fp,date( "d/m/Y H:m:s")."   phpversion: $msg_phpversion\n\n" );
+    
     if($f_apache_get_version) {
         preg_match('!Apache/(.*) !U', apache_get_version(), $v);
         $apache_installed_version = $v[1];
@@ -150,15 +160,17 @@
         $msg_apache_get_version = "No se pudo verificar la versión de APACHE";
         $msg_mod_rewrite = "( Al no poder verificar la versión de APACHE, tampoco pudo hacerlo para el mod_rewrite )";
     }
-
+    fputs( $fp,date( "d/m/Y H:m:s")."   apache_get_version: $msg_apache_get_version\n\n" );
+    fputs( $fp,date( "d/m/Y H:m:s")."   mod_rewrite: $msg_mod_rewrite\n\n" );
+    
     if($f_mysql_module) {
         $bool_mysql_module = true;        
         $msg_mysql_module = "Tiene instalado el modulo MYSQL en PHP";
-    } else {
+    } else 
         $msg_mysql_module = "No tiene instalado el modulo MYSQL en PHP";
-    } 
+    
+    fputs( $fp,date( "d/m/Y H:m:s")."   mysql_module: $msg_mysql_module\n\n" );
 
-
     if($f_get_magic_quotes_gpc) {
         $bool_get_magic_quotes_gpc = get_magic_quotes_gpc();
         if(!$bool_get_magic_quotes_gpc) {
@@ -170,53 +182,97 @@
     } else {
         $msg_get_magic_quotes_gpc = " No se pudo verificar si usted tiene (magic_quotes_gpc = off) en el php.ini";
     }   
-
+    fputs( $fp,date( "d/m/Y H:m:s")."   magic_quotes: $msg_get_magic_quotes_gpc\n\n" );
+    
     $hasErrors = false;
     $aError = array();
     $aDb = array( 'server' => '', 'user' => '', 'password' => '', 'name' => '', 'createdb' => '' ) ;
 
-    if(!file_exists(SQL_CREATE) OR !file_exists(SQL_INSERT_INICIAL) OR !file_exists(SQL_INSERT_EJEMPLO)) {
+    if(!file_exists(SQL_CREATE)) {
         $hasErrors = true;
-        $aError['sql_files'] = 'Algunos de los archivos para el SQL no puede abrirse';
+        $aError['sql_files'] = 'El archivo para el SQL no puede abrirse';
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_CREATE: ".$aError['sql_files']."\n\n" );
     }
-
+    else
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_CREATE: OK \n\n" );
+    
+    if(!file_exists(SQL_INSERT_INICIAL)){
+        $hasErrors = true;
+        $aError['sql_files'] = 'El archivo para el SQL no puede abrirse';
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_INSERT_INICIAL: ".$aError['sql_files']."\n\n" );
+    }
+    else
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_INSERT_INICIAL: OK \n\n" );
+    
+    if(!file_exists(SQL_INSERT_EJEMPLO)){
+        $hasErrors = true;
+        $aError['sql_files'] = 'El archivo para el SQL no puede abrirse';
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_INSERT_EJEMPLO: ".$aError['sql_files']."\n\n" );
+    }
+    else
+        fputs( $fp,date( "d/m/Y H:m:s")."   SQL_INSERT_EJEMPLO: OK \n\n" );
+   
+    fputs( $fp,date( "d/m/Y H:m:s")."  ---- FIN DE VERIFICACIONES ----\n\n" );
+    fputs( $fp,date( "d/m/Y H:m:s")."  ---- INICIO DB ----\n\n" );
     if ($_SERVER['REQUEST_METHOD'] == "POST")  {
+    
+        if(!isset($_POST['db']['createdb']))
+            $_POST['db']['createdb'] = false;
+                
         $db_connection = @mysql_connect( $_POST['db']['server'], $_POST['db']['user'], $_POST['db']['password']);
         if ($db_connection) {
             $mysql_server_version = mysql_get_server_info();
+            fputs( $fp,date( "d/m/Y H:m:s")."   mysql_server_version: ".$mysql_server_version ."\n\n" );
             if(compruebaVersion($mysql_server_version, MYSQL_REQUIRED_VERSION)) {
                 if($_POST['db']['createdb']) {
+                    fputs( $fp,date( "d/m/Y H:m:s")."   -- Create DB --\n\n" );
                     if(!@mysql_query('CREATE DATABASE '.$_POST['db']['name'].' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin')) {
                         $hasErrors = true;
                         $aError['newdb'] = 'No se pudo crear la base de datos ('.mysql_error().')';
-                        $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' =>    $_POST['db']['name'], 'createdb' =>  $_POST['db']['createdb']) ;
+                        fputs( $fp,date( "d/m/Y H:m:s")."   newdb: ".$aError['newdb']."\n\n" );
+                        $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' => $_POST['db']['name'], 'createdb' => $_POST['db']['createdb']) ;
                     } else {
-                        if(doInstall()) {
+                        fputs( $fp,date( "d/m/Y H:m:s")."  Se creo la base de datos OK--\n\n" );
+                        if(doInstall($fp)) {
+                            fputs( $fp,date( "d/m/Y H:m:s")."   Fin doInstall (create_db): OK \n\n" );
+                            fclose( $fp );
                             header("Location: ".REDIRECT_URL);
                         } else {
-                            @mysql_query('DROP DATABASE '.$_POST['db']['name']);
-                            $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos ('.mysql_error().')';
+                            fputs( $fp,date( "d/m/Y H:m:s")."   Fin doInstall (create_db): con Error \n\n" );
+                            if (!@mysql_query('DROP DATABASE '.$_POST['db']['name'])){
+                                $aError['insert_create'] = 'No se pudo eliminar la base de datos creada ('.mysql_error().')';
+                                fputs( $fp,date( "d/m/Y H:m:s")."   insert_create (create_db): ".$aError['insert_create']."\n\n" );
+                            }
+                            else {
+                                $aError['insert_create'] = 'Se elimino la base de datos creada ('.mysql_error().')';
+                                fputs( $fp,date( "d/m/Y H:m:s")."   insert_create (create_db): ".$aError['insert_create']."\n\n" );
+                            }
                             $hasErrors = true;
                         }
                     }
                 } else {
+                    fputs( $fp,date( "d/m/Y H:m:s")."   -- Select DB --\n\n" );
                     if(@mysql_select_db($_POST['db']['name'])) {
-                        if(doInstall()) {
+                        if(doInstall($fp)) {
+                            fputs( $fp,date( "d/m/Y H:m:s")."   Fin doInstall (select_db): OK \n\n" );
+                            fclose( $fp );
                             header("Location: ".REDIRECT_URL);
                         } else {
-                            $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos ('.mysql_error().')';
+                            $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos existente ('.mysql_error().')';
+                            fputs( $fp,date( "d/m/Y H:m:s")."   insert_create (select_db): ".$aError['insert_create']."\n\n" );
                             $hasErrors = true;
                         }
                     } else {
                         $hasErrors = true;
-                        $aError['currentdb'] = 'No se pudo crear la base de datos ('.mysql_error().')';
+                        $aError['currentdb'] = 'No se pudo usar la base de datos ('.mysql_error().')';
+                        fputs( $fp,date( "d/m/Y H:m:s")."   currentdb (select_db): ".$aError['currentdb']."\n\n" );
                         $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' =>    $_POST['db']['name'], 'createdb' =>  $_POST['db']['createdb']) ;
-
                     }
                 }
             } else {
                 $hasErrors = true;
                 $aError['mysql_version'] = 'Usted tiene una versión de MYSQL inferior a la'.MYSQL_REQUIRED_VERSION. '(Su versión actual es '.$mysql_server_version. ')';
+                fputs( $fp,date( "d/m/Y H:m:s")."   mysql_server_version: ".$aError['mysql_version']."\n\n" );
                 $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' => $_POST['db']['name'], 'createdb' =>  $_POST['db']['createdb'] );
             }
 
@@ -224,11 +280,12 @@
         } else {
             $hasErrors = true;
             $aError['connect'] = 'No pudo conectarse al Servidor de Base de datos ('.mysql_error().')';
+            fputs( $fp,date( "d/m/Y H:m:s")."   connect: ".$aError['connect']."\n\n" );
             $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' => $_POST['db']['name'], 'createdb' =>  $_POST['db']['createdb'] );
         }
 
     }
-
+    fclose( $fp );
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -332,7 +389,7 @@
 
 </table>
 
-<? if($bool_config AND $bool_upload AND $bool_tmp AND $bool_log AND $bool_cache AND $bool_memory_limit AND $bool_apache_get_version AND $bool_phpversion AND $bool_mysql_module AND $bool_mod_rewrite AND $bool_get_magic_quotes_gpc) { ?>
+<?php if($bool_config AND $bool_upload AND $bool_tmp AND $bool_log AND $bool_cache AND $bool_memory_limit AND $bool_apache_get_version AND $bool_phpversion AND $bool_mysql_module AND $bool_mod_rewrite AND $bool_get_magic_quotes_gpc) { ?>
 
 <?php if($hasErrors) { ?>
     <br><br>
@@ -484,46 +541,56 @@
     return $aSql;
 }
 
-function executeDump($file, $db) {
+function executeDump($file, $db,$fp) {
+    fputs( $fp,date( "d/m/Y H:m:s")."      Entrando ExecuteDump: $file - $db  \n\n" );    
     $aSql = dump2Array($file);
     $error = false;    
     if(count($aSql) > 0 AND file_exists($file)) {
         if(mysql_select_db($db)) {
+            fputs( $fp,date( "d/m/Y H:m:s")."         ejecutando BEGIN  \n\n" );    
             mysql_query("BEGIN");
             foreach($aSql as $sql_line) {
                 $res = mysql_query(trim($sql_line));
                 if(!$res) {
+                    fputs( $fp,date( "d/m/Y H:m:s")."         Fallo SQL: $sql_line \n\n" );
+                    fputs( $fp,date( "d/m/Y H:m:s")."         error:". mysql_error()." \n\n" );
                     $error = true;
                 }
             }
             if($error == true) {
-                echo "rollback";
+                fputs( $fp,date( "d/m/Y H:m:s")."         Se encontraron errores ejecutando  ROLLBACK  y saliendo \n\n" );    
                 mysql_query("ROLLBACK");
                 return false;
             } else {
+                fputs( $fp,date( "d/m/Y H:m:s")."         Sin errores ejecutando COMMIT y saliendo \n\n" );    
                 mysql_query("COMMIT");
                 return true;
             }
         }
+        else {
+            fputs( $fp,date( "d/m/Y H:m:s")."         Error al seleccionar la base: $db  \n\n" );    
+            return false;
+        }    
     } else {
+        fputs( $fp,date( "d/m/Y H:m:s")."         Devuele false no ejecuta nada  : $db  \n\n" );    
         return false;
     }
 
 }
 
-function doInstall() {
+function doInstall($fp) {
     global $_POST;
-
+    fputs( $fp,date( "d/m/Y H:m:s")."   Entrando doInstall()  \n\n" );
     //verifica que base de datos instalar si la del ejemplo o solamente la 
     //de los datos_desde_cero iniciales
     switch($_POST['db']['datos']) {
-        case 'ejemplo': $sql_insert = SQL_INSERT_INICIAL; break;
-        case 'minimos': 
+        case "ejemplo": $sql_insert = SQL_INSERT_INICIAL; break;
+        case "minimos": $sql_insert = SQL_INSERT_EJEMPLO; break;
         default: $sql_insert = SQL_INSERT_EJEMPLO;
     }
-
-    if(executeDump(SQL_CREATE, $_POST['db']['name'])) {
-        if(executeDump($sql_insert, $_POST['db']['name'])) {
+    fputs( $fp,date( "d/m/Y H:m:s")."      Utilizando SQL: $sql_insert  \n\n" );
+    if(executeDump(SQL_CREATE, $_POST['db']['name'],$fp)) {
+        if(executeDump($sql_insert, $_POST['db']['name'],$fp)) {
             $aReemplazo = array( 'USERDB' => $_POST['db']['user'], 'PASSDB' => $_POST['db']['password'], 'SERVER' => $_POST['db']['server'], 'DBNAME'=> $_POST['db']['name']);
             $contenido_archivo = reemplzarArchivo(DATABASE_CONFIG_DIST,$aReemplazo);
             file_put_contents(DATABASE_CONFIG, $contenido_archivo);
@@ -538,8 +605,8 @@
             _symlink(INSTALL_DIR."dist/phing.sandbox/", ALBA_PATH."lib/phing");
             _symlink(INSTALL_DIR."dist/".SYMFONY_DIR."/lib/", ALBA_PATH."lib/symfony");
             _symlink(INSTALL_DIR."alba/data/symfony/web/sf/", ALBA_WEB."sf");
+            fputs( $fp,date( "d/m/Y H:m:s")."      Creando Links  \n\n" );    
 
-
             $rewrite_path = (OS_WINDOWS)?CURRENT_WEB_DIR.SYMFONY_WINDOWS_WEB_DIR:CURRENT_WEB_DIR.SYMFONY_WEB_DIR;
             
             if(!OS_WINDOWS)
@@ -548,13 +615,14 @@
             $aReemplazo = Array('REWRITE_PATH' => $rewrite_path);
             $contenido_archivo = reemplzarArchivo(HTACCESS_DIST,$aReemplazo);
             file_put_contents(HTACCESS, $contenido_archivo);
-           
             touch(INSTALL_COMPLETE_FILE);
-
+            fputs( $fp,date( "d/m/Y H:m:s")."      Creando bandera INSTALL_COMPLETE_FILE  \n\n" );    
             return true;
         }
+        fputs( $fp,date( "d/m/Y H:m:s")."      Fallo ejecutando: $sql_insert  \n\n" );        
         return false;
     } else {
+        fputs( $fp,date( "d/m/Y H:m:s")."      Fallo ejecutando: SQL_CREATE  \n\n" );    
         return false;
     }
 




Más información sobre la lista de distribución Alba-desarrollo