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 "$
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í:
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