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

Los tutoriales aquí en LibreByte están disponible bajo una licencia de software libre. Si le gusta mi trabajo considere:
Comprar un Hosting/VPS o Servidor Dedicado en MCKHost

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.