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