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

commits en pressenter.com.ar commits en pressenter.com.ar
Mie Ene 10 16:59:09 CET 2007


Author: josx
Date: 2007-01-10 12:59:08 -0300 (Wed, 10 Jan 2007)
New Revision: 3988

Modified:
   prosistem/alba/trunk/index.php
Log:
Agregue al instalador un chequeo de version del server MYSQL, aparentemente antes de la version 4.1.0 no funciona el cambio de charset a UTF8 ( Ticket #76 )

Modified: prosistem/alba/trunk/index.php
===================================================================
--- prosistem/alba/trunk/index.php	2007-01-05 15:29:23 UTC (rev 3987)
+++ prosistem/alba/trunk/index.php	2007-01-10 15:59:08 UTC (rev 3988)
@@ -30,18 +30,17 @@
  * @license GPL
  */
 
-
+    
     define("APACHE_REQUIRED_VERSION","2.0.0");
     define("PHP_REQUIRED_VERSION","5.0.0");
     define("MEMORY_LIMIT_REQUIRED", "32");
+    define("MYSQL_REQUIRED_VERSION","4.1.0");
 
     define("INSTALL_DIR", getcwd()."/");
     
     chdir("alba/");    
     define("ALBA_PATH", getcwd()."/");
 
-    
-
     define("ALBA_WEB",ALBA_PATH."web/");
     define("CONFIG_PATH", ALBA_PATH."config/");
 
@@ -73,13 +72,17 @@
     $f_phpversion = function_exists ("phpversion");
     $f_apache_get_version = function_exists ("apache_get_version");
 //  $f_get_magic_quotes_gpc = function_exists ("get_magic_quotes_gpc");
+    $f_mysql_module = function_exists ("mysql_connect");
 
+  
     $msg_phpversion = "";
     $msg_apache_get_version = "";
+    $msg_mysql_module  = "";
 
+    $bool_mysql_module  = false;
     $bool_phpversion = false;
     $bool_apache_get_version = false;
-    $bool_gd = estaExtensionGD();
+    $bool_gd = estaExtension("gd");
     
     $memory_limit = ini_get('memory_limit');
     $bool_memory_limit = compruebaMemoriaMaxima($memory_limit);
@@ -90,7 +93,7 @@
     $bool_config = tienePermisoEscritura(ALBA_PATH."config");
 
     if($f_phpversion) {
-        $bool_phpversion = compruebaVersionPHP(phpversion());
+        $bool_phpversion = compruebaVersion(phpversion(),PHP_REQUIRED_VERSION);
         $msg_phpversion = "Su versión de PHP es ".phpversion();
     } else {
         $msg_phpversion = "No se pudo verificar la versión de PHP";
@@ -99,12 +102,20 @@
     if($f_apache_get_version) {
         preg_match('!Apache/(.*) !U', apache_get_version(), $v);
         $apache_installed_version = $v[1];
-        $bool_apache_get_version = compruebaVersionApache($apache_installed_version);
+        $bool_apache_get_version = compruebaVersion($apache_installed_version, APACHE_REQUIRED_VERSION);
         $msg_apache_get_version = "Su versión de APACHE es ".$apache_installed_version;
     } else {
         $msg_apache_get_version = "No se pudo verificar la versión de APACHE";
     }
 
+    if($f_mysql_module) {
+        $bool_mysql_module = true;        
+        $msg_mysql_module = "Tiene instalado el modulo MYSQL en PHP";
+    } else {
+        $msg_mysql_module = "No tiene instalado el modulo MYSQL en PHP";
+    }
+
+   
 // deberia saber si esta instalado mod_rewrite 
 
 // .htacces en el dir web 
@@ -128,36 +139,44 @@
     if ($_SERVER['REQUEST_METHOD'] == "POST")  {
         $db_connection = @mysql_connect( $_POST['db']['server'], $_POST['db']['user'], $_POST['db']['password']);
         if ($db_connection) {
-            if($_POST['db']['createdb']) {
-                if(!@mysql_query('CREATE DATABASE '.$_POST['db']['name'])) {
-                    $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']) ;
+            $mysql_server_version = mysql_get_server_info();
+            if(compruebaVersion($mysql_server_version, MYSQL_REQUIRED_VERSION)) {
+
+                if($_POST['db']['createdb']) {
+                    if(!@mysql_query('CREATE DATABASE '.$_POST['db']['name'])) {
+                        $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']) ;
+                    } else {
+                        if(doInstall()) {
+                            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';
+                            $hasErrors = true;
+                        }
+                    }
                 } else {
-                    if(doInstall()) {
-                        header("Location: ".REDIRECT_URL);
+                    if(@mysql_select_db($_POST['db']['name'])) {
+                        if(doInstall()) {
+                            header("Location: ".REDIRECT_URL);
+                        } else {
+                            $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos';
+                            $hasErrors = true;
+                        }
                     } else {
-                        @mysql_query('DROP DATABASE '.$_POST['db']['name']);
-                        $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos';
                         $hasErrors = true;
+                        $aError['currentdb'] = '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']) ;
+
                     }
                 }
             } else {
-                if(@mysql_select_db($_POST['db']['name'])) {
-                    if(doInstall()) {
-                        header("Location: ".REDIRECT_URL);
-                    } else {
-                        $aError['insert_create'] = 'No se pudo agregar los datos a la base de datos';
-                        $hasErrors = true;
-                    }
-                } else {
-                    $hasErrors = true;
-                    $aError['currentdb'] = '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']) ;
+                $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. ')';
+                $aDb = array( 'server' => $_POST['db']['server'] , 'user' => $_POST['db']['user'], 'password' => $_POST['db']['password'], 'name' => $_POST['db']['name'], 'createdb' =>  $_POST['db']['createdb'] );
+            }
 
-                }
-            }
-                // si hay algun error debo borrar todo lo creado
             mysql_close($db_connection);            
         } else {
             $hasErrors = true;
@@ -198,17 +217,29 @@
     </thead>
     <tr class="sf_admin_row_0" >
         <td>Versi&oacute;n de PHP >= 5.0.0</td>
-        <td><?=($bool_phpversion)?IMG_OK:IMG_NOT_OK?>(<?=$msg_phpversion?>)</td>
+        <td>
+            <?=($bool_phpversion)?IMG_OK:IMG_NOT_OK?>(<?=$msg_phpversion?>)
+        </td>
     </tr>
-    <tr class="sf_admin_row_1">
-        <td>Versi&oacute;on de APACHE >= 2.0</td>
-        <td><?=($bool_apache_get_version)?IMG_OK:IMG_NOT_OK?>(<?=$msg_apache_get_version?>)</td>
+
+    <tr class="sf_admin_row_1" >
+        <td>&#191; Esta instalado MYSQL en PHP ?</td>
+        <td>
+            <?=($bool_mysql_module)?IMG_OK:IMG_NOT_OK?>(<?=$msg_mysql_module?>)
+        </td>
     </tr>
+        
+
     <tr class="sf_admin_row_0">
         <td>&#191; Esta Instalado GD en PHP ?</td>
         <td><?=($bool_gd)?IMG_OK:IMG_NOT_OK." (Necesitas instalar GD  - http://www.php.net/manual/es/ref.image.php)";?></td>
     </tr>
     <tr class="sf_admin_row_1">
+        <td>Versi&oacute;on de APACHE >= 2.0</td>
+        <td><?=($bool_apache_get_version)?IMG_OK:IMG_NOT_OK?>(<?=$msg_apache_get_version?>)</td>
+    </tr>
+
+    <tr class="sf_admin_row_0">
         <td>En php.ini memory_limit >= 32</td>
         <td><?=($bool_memory_limit)?IMG_OK:IMG_NOT_OK;?>(<?=$memory_limit?>)</td>
     </tr>
@@ -240,7 +271,7 @@
     </tr>
 </table>
 
-<? if($bool_config AND $bool_upload AND $bool_log AND $bool_cache AND $bool_memory_limit AND $bool_apache_get_version AND $bool_phpversion AND $bool_gd) { ?>
+<? if($bool_config AND $bool_upload AND $bool_log AND $bool_cache AND $bool_memory_limit AND $bool_apache_get_version AND $bool_phpversion AND $bool_gd AND $bool_mysql_module) { ?>
 
 <?php if($hasErrors) { ?>
     <br><br>
@@ -295,13 +326,9 @@
 /**
 * Funciones del instalador
 */
-function compruebaVersionPHP($installed_version) {
-    return  (version_compare($installed_version, PHP_REQUIRED_VERSION, ">="));
-}
 
-
-function compruebaVersionApache($installed_version) {
-    return  (version_compare($installed_version, APACHE_REQUIRED_VERSION, ">="));
+function compruebaVersion($instalada, $requireda) {
+    return (version_compare($instalada, $requireda, ">="));
 }
 
 
@@ -311,10 +338,10 @@
 
 }
 
-function estaExtensionGD() {
+function estaExtension($ext) {
     $aExtension  = get_loaded_extensions();
     if(count($aExtension)>0) {
-        $res = array_search('gd', $aExtension);
+        $res = array_search($ext, $aExtension);
         if($res === false) {
             return false;
         } else {




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