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