Instalar Symfony2 en Yosemite con MAMP

Un amigo mio me comento que Symfony es una gran opción para programar web, pues vamos a probarlo, así que veremos como instalar Symfony2 en Yosemite con MAMP!!

Primero de todo me bajo MAMP para correr un entorno de desarrollo local en mi MacBook Pro Retina de 13″ (Sí, estoy orgulloso de él)

Empezamos mal, pues al arrancar MAMP ya no funciona

dyld: Symbol not found: _iconv Referenced from: /usr/lib/libmecabra.dylib Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib in /usr/lib/libmecabra.dylib /Applications/MAMP/Library/bin/apachectl: line 80: 2799 Trace/BPT trap: 5 $HTTPD "$

MAMP error Yosemite

 

Para arreglar esto nos vamos a la carpeta Aplicaciones de nuestro Mac y allí entremos en:

bin -> apache2 -> bin

Cambiamos el nombre del fichero envvars a _envvars

MAMP ya arranca, eso es bueno.

 

 

 

Ahora nos vamos a instalar Symfony, que es lo que queremos… entramos en la web de Symfony y vemos que nos dicen que para instalarlo tenemos que utilizar un script llamado composer, pues lo que ellos digan, si es así vamos allá.

Abrimos un terminal de Mac y lanzamos

curl -sS https://getcomposer.org/installer | php

Ningún problema, siguiente orden:

sudo mv composer.phar /usr/local/bin/composer

Ya estamos otra vez, «error», la carpeta no existe, no es un gran problema, cambiamos la ruta y punto

sudo mv composer.phar /usr/bin/composer

Perfecto, esto ya está, otro paso más hacia Symfony, ahora tenemos que instalar el aplicativo utilizando composer

composer create-project symfony/framework-standard-edition ruta-donde-instalaremos-la-aplicacion/

Que bonito! empieza a hacer cosita, a descargar otras, me hace preguntas del servidor de Mysql: usuario, pass, puerto bla bla bla bla y para terminar, algo que no había sucedido nunca, «error».

Cagontodo, mira que está siendo un parto esto

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception

[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command

Volvemos a buscar información y como dice el error un poco más arriba, es debido al date.timezone de php.

Ningún problema!!! MAMP tiene un fabuloso sistema de plantillas para corregir esto, en la configuración del php.ini de la distribución de PHP que estemos lanzando en ese momento.

Ni corto ni perezoso me voy al php.ini del MAMP y añado la linea:

date.timezone = "Europe/Madrid"

Lanzo nuevamente el instalador y… redoble de tambores!!! tampoco va… mismo error, mi no entender.

Me rasco la cabeza a modo orangután pensando que narices puede ser, creo un fichero para lanzar un phpinfo() y me está devolviendo bien date.time

Entonces ocurrió un milagro de esos que no se bien bien porque me vienen a la cabeza y pienso

¿Y si el apache está lanzando una versión de PHP, pero la consola de comando está lanzando la versión que viene nativa en Yosemite?

Con una aureola celestial a mis espaldas lanzo desde linea de comandos un php -v y veo que me devuelve la versión 5.5.14 cuando MAMP trabaja con la 5.5.10 , ahí está, tenía razón, a veces pienso en Marilyn Manson y su costilla.

Bueno señor@s, pues miro donde está el php.ini nativo de Yosemite y como no, está en /etc/php.ini.default así que copiamos el fichero para que sea php.ini

 sudo cp /etc/php.ini.default /etc/php.ini

Añadimos la susodicha linea de date.timezone, lanzamos nuevamente el composer y ahora sí!!!! Con lagrimas en los ojos doy gracias a mis padres y a todo el mundo que me ha apollado en esta ardua carrera….

Seguimos, siguiente paso es cambiar los permisos de ciertos directorios

chmod 0777 app/{cache,logs}
chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/{cache,logs}

Una vez hecho esto, arrancamos nuestro servidor

php app/console server:run

Y al navegar a la url de config  localhost:8000/config.php deberíamos ver algo así:

yosemite-symfony-start

Pero… ¿Yo vi ese mensaje?

A estas alturas ya sabéis que yo no vi ese P#t@ mensaje

 

Yo me comí un :

 

Major problems

Major problems have been detected and must be fixed before continuing:
    1.    Vendor libraries are missing. Install composer following instructions from https://getcomposer.org/. Then run "php composer.phar install" to install them.

Bueno, haremos lo que nos dice y lanzaremos comando dentro de nuestra web

composer install

Pero continua dando el mismo error, me meto otra vez en San Google y miro que narices es este error, encontrando esto:

 

https://stackoverflow.com/questions/27744855/symfony-2-6-error-after-using-composer-vendor-libraries-must-be-installed

Pues se ve que es un Bug actual, menos mal, empezaba a estar cansado de tanto fracaso y error.

Bueno, pues ya está señor@s, tenemos Symfony2 instalado en nuestro Mac con MAMP.

Ahora solo hace falta programar, que es lo realmente fácil :p