Instalación servidor web con aplicación symfony2 con el clásico “hola mundo”

Lo primero es instalar el servidor web apache.

$ sudo apt-get install apache2 apache2.2-common apache2-utils ssl-cert  apache2-mpm-preforka

dependiendo puede ser que la libreria apache2.2-common te sobre porque ya esté incluida en apache2

Para que las reglas del fichero .htaccess sean correctamente interpretadas, debemos instalar sobre apache el modulo de modwrite

$ sudo apt-get install libapache2-mod-proxy-html

A continuación habilitaremos el mencionado módulo

$ a2enmod rewrite

Lo siguiente que necesitamos para un proyecto sobre symfony, es que nuestro servidor de aplicaciones web sea capaz de interpretar el código php. Esto lo haremos gracias a la ejecución del siguiente comando:

$ sudo apt-get install php5 libapache2-mod-php5 php5-common php5-intl

Por último debemos instalar también un servidor de bases de datos. Aunque no es obligatorio, es casi seguro que en algun momento vayamos a utilizar acceso a base de datos. Para instalarlo tan solo debemos lanzar el siguiente comando. Será necesario seguir los pasos que nos indica el propio instalador de mysql para configurar la clave del usuario root.

$ sudo apt-get install mysql-server mysql-client php5-mysql

Como parte opcional, y para subir nota, a la vez que ganamos en el manejo de la base de datos, podemos instalar phpMyAdmin, que es una interfaz mundialmente conocida para la gestion de Bases de datos a traves de la web.

$ sudo apt-get install phpmyadmin

Todo esto viene de un tutorial de jonsegador.com

algo que se le ha olvidado hacer es:

sudo apt-get install php5-cli

Despues del tutorial de jonsegador http://jonsegador.com/2011/07/instalar-symfony2-desde-cero/

$ rm -fr app/cache/*
$ rm -fr app/logs/*
$ sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

Instalar copmposer
http://symfony.es/documentacion/guia-de-instalacion-de-composer/

$ curl -s https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ sudo composer self-update

Para que funcione la instruccion de composer install es necesario tener la extension de curl de php:
sudo apt-get install php5-curl

Nos colocamos con la consola sobre la raiz de nuestros proyectos web, es decir, en la mayoría de los casos: "/var/www/" y ejecutamos el siguiente comando para descargarnos el código de symfony2:

$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.5.4.zip "nombre-proyecto"

En la raiz de nuestro poryecto Sf2:

$ cd /var/www/myProject

$ composer install
$ composer update

Puede ser que no tengas git

$ apt-get install git

Para comenzar con el versionado de nuestro proyecto puedes hacer:

$  git init

NOTA: Es importante saber que este repositorio que hemos creado no es un repositorio que nadie se pueda clonar, o donde se pueda hacer “push”, sino que es una instancia de un repositorio, en este caso de un repositorio local, no tendrá las características de un repositorio al uso como son los hooks. Sin embargo nos servirá para tener una copia de todo el proceso de desarrollo en GIT.

Para el caso en que vayamos a poner a disposición de otros nuestro repositorio, debemos crearlo con el parámetro “–bare”

$ git init --bare

Ahora lo suyo es dejarlo bien montado, para poder acceder de forma directa a nuestra aplicación mediante un nombre de dominio, aunque tengmos la aplicación en local, este nombre de dominio lo podremos definir con alcance local mediante el fichero /etc/hosts añadiéndole la siguiente linea modificando el nombre de dominio a nuestro gusto.

127.0.0.1    myproject.local    www.myproject.local

NOTA: Las mayúsculas en la URL no suele ser una buena practica, y nos puede constar algun quebradero de cabeza, por eso, debemos evitarlas cuanto antes.

Es necesario para que apache sepa a donde mandar las peticiones a este dominio debemos habilitar dicho dominio en sites-availables dentro de la carpeta de /etc/apache2/sites-availables/, un ejemplo del fichero “myproject” sería el siguiente:

$ sudo vim /etc/apache2/sites-availables/miproject

Contenido del fichero miproject

    ServerName      miproject.local
    ServerAlias     www.miproject.local

    DocumentRoot    "/var/www/miproject/web"
    DirectoryIndex  app.php

    <Directory "/var/www/miproject/web">
        AllowOverride None
        Allow from All

            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]

Por último nos faltaría modificar la “template” que pinta la acción Index del controlador por defecto para que nos saque nuestro maravilloso y universal “hola mundo”, que si puedo trataré de explicar de forma sencilla más adelante.

 

 

 

Es muy posible que te sea necesario también cambiar los permisos para utilizar redireccio mediante el modulo mod_rewriete, esto por defecto viene deshabilitado en el siguiente archivo:

/etc/apache2/apache2.conf

Ahí, deberás buscar la linea donde se definen las directivas para el directorio /var/www, y modificar los permisos a All, tal que así:



        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted