Instalar Symfony2 en un ambiente compartido

    Este artículo forma parte de la serie Symfony2

    Symfony2 es una plataforma de trabajo orientada a componentes desacoplados y reutilizables creados con el objetivo de acelerar el desarrollo de aplicaciones web.

    Symfony2 ha sido reescrito desde cero basado en el principio “Separation of concerns” y con una fuerte base en la especificación HTTP implementando patrones de diseños como: Inyección de Dependencias (Dependency Inyection), Observer, Brigde, otros; está muy bien integrado al ORM Doctrine posee una activa comunidad y una buena documentación. No obstante en su sitio oficial no se hace referencia a: Como instalar Symfony2 de modo que pueda usarse en varios proyectos a la vez o sea en un ambiente compartido, por tanto esté artículo esta enfocado en esa dirección

    Nota: Este procedimiento ha sido probado en un Servidor CentOS 5.7

    Instalar componentes

    #
    # Copyleft LibreByte
    # Licence: GPL
    # Flossblog en Github
    # https://github.com/yoander/sysadmin/blob/master/shscript/sf2-bundles
    #
    #!/usr/bin/env bash
    if (($1 == 'update'))
    then
        pear update -c symfony2
        pear update -c doctrine
        pear update -c twig
        exit
    fi
    
    #Symfony 2
    pear channel-discover pear.symfony.com
    COMPONENTS="BrowserKit ClassLoader Config Console CssSelector DependencyInjection DoctrineBridge DomCrawler Finder Form Locale MonologBridge Process Routing Security Serializer Templating Translation TwigBridge Validator Yaml"
    for component in $COMPONENTS
    do
        pear install symfony2/$component
    done
    
    # Doctrine ORM
    pear channel-discover pear.doctrine-project.org
    pear install doctrine/DoctrineORM
    
    #Twig
    pear channel-discover pear.twig-project.org
    pear install twig/Twig
    

    Instalar Bundles

    #
    # Copyleft LibreByte
    # Licence: GPL
    # Flossblog en Github
    # https://github.com/yoander/tools.git
    #
    #!/usr/bin/env bash
    VERSION=$1
    [[ '' == $VERSION ]] && { echo "Debe especifícar la versión de Symfony2"; exit; }
    
    wget  http://symfony.com/download?v=Symfony_Standard_Vendors_$VERSION.tgz -P /tmp
    
    tar xzvf /tmp/Symfony_Standard_Vendors_$VERSION.tgz -C /tmp
    
    # Suppose you use sudo
    sudo rsync -avz --no-p --no-o --no-g /tmp/Symfony/vendor/symfony/src/Symfony/{Bundle,Bridge} /usr/share/pear/Symfony/
    
    sudo rsync -avz --no-p --no-o --no-g /tmp/Symfony/vendor/bundles/Symfony/Bundle /usr/share/pear/Symfony/
    
    sudo rsync -avz --no-p --no-o --no-g /tmp/Symfony/vendor/bundles/{JMS,Sensio} /usr/share/php/
    
    sudo rsync -avz --no-p --no-o --no-g /tmp/Symfony/vendor/monolog/src/Monolog /usr/share/php/
    
    sudo rsync -avz --no-p --no-o --no-g /tmp/Symfony/vendor/assetic/src/Assetic /usr/share/php/
    

    Desplegar al servidor Web

    $ sudo rsync -avz --no-p --no-o --no-g --exclude="vendor" /tmp/Symfony /var/www/
    

    Abrimos el app/autoload.php y agregamos lo siguiente

    $os = php_uname('s');
    $fallback = '';
    if ('Windows NT' === $os || 'WINNT' === $os) {
       $fallback = explode(';', get_include_path());
    }
    if (empty($fallback)) {
       $fallback = explode(':', get_include_path());
    }
    $loader->registerNamespaceFallbacks($fallback);
    $loader->registerPrefixFallbacks($fallback);
    

    Cambiar permisos al dir cache y logs

    $ sudo chmod -c 777 /var/www/Symfony/app/{cache,logs}
    

    Crear Virtual host y apuntar al dir /var/www/Symfony/web

    Instalar y configurar Apache HTTP server en CentOS / Fedora/ RHEL

    Lecturas recomendadas

    Proyecto oficial Symfony




    Dejar un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *