Nueva pregunta

Pregunta:

Fecha: 25-01-2017 15:38:03 (En Español)

Error en proyecto Alba (symfony): ¿Versión incorrecta de PHP?[Resuelta]

Buenas, éste es mi primer post aquí y estoy más acostumbrado a foros convencionales, por lo que si me equivoco en algo, avisen!

Primero que nada, gracias Fernando por invitarme :)

Mi problema:
Estoy intentando instalar el proyecto Alba. Es un sistema de gestión open source para escuelas construido en php y, por lo que veo symfony (no es que sepa de symfony, solo lo noté). Luego de descomprimir y demás, el paso en el que estoy trabado es:

sudo ./symfony propel:build-all-load 


Entiendo que es un paso específico pero bueno, básicamente entiendo que carga la db con ejemplos. Sin embargo obtengo el error que pueden ver en la imagen adjunta. Alguien puede ayudarme?

Etiquetas: Apache - Linux - PHP - Pregunta - Symfony Votos: 3 - Respuestas: 4 - Vistas: 10 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 26-01-2017 00:28:49 Hola Javier,
    Por lo que veo es un proyecto antiguo (la última actualización fue en 2012).

    Los mensajes de "deprecated" siempre aluden a una funcionalidad que en versiones recientes de PHP ya son obsoletas. De ahí podemos intuir que estás tratando de instalar código que corría en una versión antigüa de PHP en un servidor con una versión más reciente.

    Supongo que tendrás que revisar qué versión de Symfony, Propel y PHP estaban utilizando en ese entonces. Desafortunadamente la documentación sólo dice que utilizan PHP 5. En GitHub hay un comentario donde indican que se actualizó a Symfony 1.2

    Espero que esta info te guíe un poco.

    Está bueno para jugar e investigar pero te aconsejaría que no lo uses en un ambiente real. Un código así de viejo puede estar lleno de bugs y de hecho tiene muchas vulnerabilidades graves.

    Saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 26-01-2017 01:50:29 Hola Javier, ante todo bienvenido a la comunidad, concuerdo con los comentarios de Ernesto, symfony en las versiones 1.x.x esta obsoleto. Hoy symfony esta por la versión 3.2.2 y la forma de trabajar es completamente diferente a la rama 1.x.x, aquí podrás ver el roadmap de las distintas versiones: https://symfony.com/roadmap

    Versión 1.2: Unsupported version (the version to check must be 2.x or higher).

    Te recomiendo que estudies el aplicativo MOODLE, aquí el enlace al sitio oficial: https://moodle.org/?lang=es

    Al margen de lo dicho, si igual quieres montar el proyecto Alba, aquí te dejo el manual (el cual ya no se encuentra online) para verificar los prerequisitos de Symfony 1.2

    Prerequisitos Symfony 1.2
    Antes de instalar symfony, necesitas comprobar que tu equipo tiene todo instalado y configurado correctamente. Tóma un tiempo para leer este capítulo a conciencia y sigue todos los pasos necesarios para verificar tu configuración, ya que puede salvar tu día en el proceso.

    Software
    En primer lugar, necesitas comprobar que tu equipo tiene un entorno de trabajo favorable para el desarrollo web. Como mínimo, necesitas un servidor web (Apache, por ejemplo), un motor de base de datos (MySQL, PostgreSQL, SQLite, o cualquier motor de base de datos compatible con PDO), y PHP 5.2.4 o posterior.

    Interfaz de Linea de Comandos
    El framework Symfony viene con una herramienta de línea de comandos que automatiza una gran cantidad de trabajo por tí. Si eres usuario de sistemas operativos tipo Unix, te sentirás como en casa. Si ejecutas un sistema Windows, también funcionará bien, sólo tendrás que escribir algunos comandos en el prompt cmd.

    Los comandos del shell Unix puede ser usados en un entorno Windows. Si deseas usar herramientas como like tar, gzip, o grep en Windows puedes instalar Cygwin. La documentación oficial está un poco dispersa, por lo que una buena guía de instalación puede hallarse aquí. Los aventureros pueden también tratar con el Windows Services for Unix. de Microsoft.

    Configuración PHP
    Como las configuraciones de PHP pueden variar mucho de un SO a otro, o incluso entre las diferentes distribuciones de Linux, tienes que comprobar que tu configuración de PHP cumple los requisitos mínimos de symfony.

    En primer lugar, asegúrate de que tienes instalado PHP 5.2.4, como mínimo, mediante el uso de la función incorporada phpinfo() o ejecutando php -v en la línea de comandos. Ten en cuenta que en algunas configuraciones, puedes tener dos versiones de PHP instalado: una para la línea de comandos, y otro para la web.

    Descarga el script symfony para comprobar la configuración en la siguiente URL:
    http://sf-to.org/1.2/check.php

    Aquí te dejo el código por si el archivo check_configuration.php deja de estar disponible:
    <?php
    
    function is_cli()
    {
      return !isset($_SERVER['HTTP_HOST']);
    }
    
    /**
     * Checks a configuration.
     */
    function check($boolean, $message, $help = '', $fatal = false)
    {
      echo $boolean ? "  OK        " : sprintf("[[%s]] ", $fatal ? ' ERROR ' : 'WARNING');
      echo sprintf("$message%s\n", $boolean ? '' : ': FAILED');
    
      if (!$boolean)
      {
        echo "            *** $help ***\n";
        if ($fatal)
        {
          die("You must fix this problem before resuming the check.\n");
        }
      }
    }
    
    /**
     * Gets the php.ini path used by the current PHP interpretor.
     *
     * @return string the php.ini path
     */
    function get_ini_path()
    {
      if ($path = get_cfg_var('cfg_file_path'))
      {
        return $path;
      }
    
      return 'WARNING: not using a php.ini file';
    }
    
    if (!is_cli())
    {
      echo '<html><body><pre>';
    }
    
    echo "********************************\n";
    echo "*                              *\n";
    echo "*  symfony requirements check  *\n";
    echo "*                              *\n";
    echo "********************************\n\n";
    
    echo sprintf("php.ini used by PHP: %s\n\n", get_ini_path());
    
    if (is_cli())
    {
      echo "** WARNING **\n";
      echo "*  The PHP CLI can use a different php.ini file\n";
      echo "*  than the one used with your web server.\n";
      if ('\\' == DIRECTORY_SEPARATOR)
      {
        echo "*  (especially on the Windows platform)\n";
      }
      echo "*  If this is the case, please launch this\n";
      echo "*  utility from your web server.\n";
      echo "** WARNING **\n";
    }
    
    // mandatory
    echo "\n** Mandatory requirements **\n\n";
    check(version_compare(phpversion(), '5.2.4', '>='), 'PHP version is at least 5.2.4', 'Current version is '.phpversion(), true);
    
    // warnings
    echo "\n** Optional checks **\n\n";
    check(class_exists('PDO'), 'PDO is installed', 'Install PDO (mandatory for Propel and Doctrine)', false);
    if (class_exists('PDO'))
    {
      $drivers = PDO::getAvailableDrivers();
      check(count($drivers), 'PDO has some drivers installed: '.implode(', ', $drivers), 'Install PDO drivers (mandatory for Propel and Doctrine)');
    }
    check(class_exists('DomDocument'), 'PHP-XML module is installed', 'Install the php-xml module (required by Propel)', false);
    check(class_exists('XSLTProcessor'), 'XSL module is installed', 'Install the XSL module (recommended for Propel)', false);
    check(function_exists('token_get_all'), 'The token_get_all() function is available', 'Install token_get_all() function (highly recommended)', false);
    check(function_exists('mb_strlen'), 'The mb_strlen() function is available', 'Install mb_strlen() function', false);
    check(function_exists('iconv'), 'The iconv() function is available', 'Install iconv() function', false);
    check(function_exists('utf8_decode'), 'The utf8_decode() is available', 'Install utf8_decode() function', false);
    
    $accelerator = 
      (function_exists('apc_store') && ini_get('apc.enabled'))
      ||
      function_exists('eaccelerator_put') && ini_get('eaccelerator.enable')
      ||
      function_exists('xcache_set')
    ;
    check($accelerator, 'A PHP accelerator is installed', 'Install a PHP accelerator like APC (highly recommended)', false);
    
    check(!ini_get('short_open_tag'), 'php.ini has short_open_tag set to off', 'Set it to off in php.ini', false);
    check(!ini_get('magic_quotes_gpc'), 'php.ini has magic_quotes_gpc set to off', 'Set it to off in php.ini', false);
    check(!ini_get('register_globals'), 'php.ini has register_globals set to off', 'Set it to off in php.ini', false);
    check(!ini_get('session.auto_start'), 'php.ini has session.auto_start set to off', 'Set it to off in php.ini', false);
    
    check(version_compare(phpversion(), '5.2.9', '!='), 'PHP version is not 5.2.9', 'PHP 5.2.9 broke array_unique() and sfToolkit::arrayDeepMerge(). Use 5.2.10 instead [Ticket #6211]', false);
    
    if (!is_cli())
    {
      echo '</pre></body></html>';
    }
    
    


    Guarda el script en algun lugar del directorio web raíz.
    Lanza el script de comprobación de configuración en la línea de comandos:
    $ php check_configuration.php


    Si hay un problema con la configuración actual de PHP, la salida del comando te dará pistas sobre lo que hay para arreglar y cómo solucionarlo.

    También debes ejecutar el comprobador desde un navegador y solucionar los problemas que podrías descubrir. Esto se debe a que PHP puede tener un archivo de configuración php.ini distinto para estos dos entornos, con diferentes configuraciones.

    No olvides de eliminar el archivo de tu directorio web raíz después.

    Saludos y buen código!
      Votos: 3 - Link respuesta
     
  • Fecha: 26-01-2017 03:34:07 Hola! Gracias a ambos. Voy a ver si logro investigarlo más, no sé nada de php aún. Fer, proyecto alba es más bien una aplicación de gestión de escuela, pero no incluye aula virtual estilo moodle. Busco algo más bien para este propósito, gestión de alumnos, registro y gestión de escuela (bah de instituto más bien).

    Saludos!
      Votos: 1 - Link respuesta
     
  • Fecha: 26-01-2017 04:13:28 Hola Javier, Moodle lo he visto implementado con gestión de alumnos, registro, etc...., no soy usuario ni tengo conocimientos en Moodle como para orientarte, sino te daría mas información, pero creo que por ahí vas a llegar a un buen puerto (obviamente investigando un poco).

    Volviendo al Proyecto Alba, y más puntualmente al error que tienes en pantalla, este se debe a que a partir de la versión 5.5.0 el modificador /e está marcado como obsoleto. Instala una versión 5.2.x y prueba nuevamente.

    Aquí podras encontrar el historial de cambios de PHP sobre la función que te arroja el deprecated preg_replace: ver historial de cambios

    Transcribo:
    El modificador /e está obsoleto. Utilice preg_replace_callback() en su lugar. Véase la documentación de PREG_REPLACE_EVAL para obtener información adicional sobre riesgos de seguridad.

    Saludos y buen código!
      Votos: 2 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com