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
