SF2: Subiendo a producción

Ya estás en la recta final, sabes que has hecho un buen trabajo (o lo intuyes hasta que el beta tester de turno - sin el que no podrías vivir - te saca los colores con 3 páginas de fixmes), quedan los últimos ajustes, las últimas tonterías para redondear un trabajo de meses... Y de repente toca "subir a producción".
Por tu cabeza empiezan a sonar los típicos "en local funcionaba", "en desarrollo no pasaba ésto", "pues a mi me iba bien", miedo escénico inunda tus dedos antes de reiniciar el servidor web y cuando te das cuenta ya no hay marcha atrás. Nada funciona.
Te has olvidado de configurar los entornos, y un framework como Symfony2 no te lo perdona la primera vez. Deberías haber trabajado con dev y prod desde el principio, piensas. Pero ahora ya es tarde. No, ¡nunca es tarde para un buen BOFHer!.
Basta ya de épica, que no estamos en el LOL. Lo que ha pasado aquí es que con las prisas has ido metiendo configuraciones donde no tocaba siguiendo uno u otro manual. Es el momento de arreglarlo, separa todo lo que tengas que separar de config_dev.yml a config.yml y procura que no se vuelva a repetir.
Una vez cada cosa en su sitio te encontrarás con diversos problemas, todos muy sencillos de resolver. El primero de todos será a la hora de borrar la caché del entorno de producción, no tendrás permisos con el usuario www-data para generar nueva caché ni para escribir el log, arréglalo:
$ apt-get install setfacl
$ setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
$ setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
Lo siguiente será que no funcionan los recursos estáticos, ¿no te cargan ni los javascript ni los css?. Piensa, en dev estás usando assetic en modo --watch. En la configuración de desarrollo tienes use_controller a true y en producción a false. Deberías instalar assets y assetics en "modo duro". Arréglalo:
$ php app/console assetic:dump --env=prod
$ php app/console assets:install
Al hacer el dump de assetic, si estás utilizando less, te tocará corregir los posibles errores de sintaxis que tengas en todos tus archivos less/css. Ni que decir tiene que debes instalar node/lessc y referenciarlos en la configuración. Borra de nuevo esa caché ahora que puedes:
$ php app/console cache:clear --env=prod
¡Y deja de llorar, que pareces un becario!.
Actualización: Si usas fos-jsrouting bundle No te olvides jamás de los jamases del comando que hace un dump de las rutas:
$ php app/console fos:js-routing:dump