viernes, 18 de octubre de 2013

¿Cuál es el mejor entorno de desarrollo en PHP?

Tanto si vas a comenzar a programar en PHP, como si ya lo estás haciendo, ésta pregunta siempre ronda nuestra cabeza...

¿Cuál es el mejor IDE  PHP?

No hay mejor, ni peor. Debes buscar aquel que se adapte mejor a tu estilo de programación, filosofía, proyecto, etc. Si ésta misma pregunta la hacéis en el buscador de Google, veréis respuestas de todo tipo, hay diversidad de criterios... y eso es bueno. En todo caso, nunca te ancles en un IDE, de vez en cuando echa un vistazo para ver que se cuece por ahí. 
El mejor entorno de desarrollo es aquel con el que tú eres más productivo

jueves, 17 de octubre de 2013

Problemas con los permisos de usuario en IIS

Si has llegado hasta aquí es porque, posiblemente, hayas querido asignar permisos a una carpeta de tu proyecto Web con IIS y no hay manera... pues bien, vamos a intentar hacerlo andar.

Lo primero que debemos saber es que versión de IIS tenemos, ya que dependiendo de ello habrán unos valores por defecto:

  •  En IIS 7.5 se usa por defecto la identidad "AppPoolIdentiy" y  la cuenta asociada es "IIS AppPool\<Nombre del Application Pool>". Así, si mi grupo de aplicaciones (Application Pool) se denomina "DefaultAppPool", esta sería la identidad que usaríamos para la asignación de permisos.
  • En IIS 7, aunque disponemos también de la posibilidad de asignar la identidad AppPoolIdentiy, por defecto está asignada a "NetworkService", por tanto la identidad para los permisos es "Servicio de Red"
La respuesta anterior resuelve la mayoría de casos, pero no todos, si se ha modificado el  modo de canalización o el grupo de aplicaciones por defecto, puede que tengas que leer un poco más y, de paso, aprenderemos como funciona todo esto.


Grupo de aplicaciones (Application Pool)

Grupos de aplicaciones en IIS
Con el Service Pack 2 (SP2) de Windows Server 2008 y Windows Vista se ha incluido lo que Microsoft denomina "Application Pool Identities". Esta identidad te permite ejecutar tu aplicaciones Web bajo una cuenta, sin tener que crear un dominio o usuarios locales. Si quieres ampliar información técnica sobre el funcionamiento de Aplication Pool, puedes acceder a este enlace oficial de Microsoft: IIS Application Pool.

Cuando añades un sitio Web a IIS lo puedes hacer de dos formas, copiando el proyecto directamente bajo la carpeta de publicación de IIS "Inetpub\wwwroot" o creando una aplicación IIS. En el primer caso utlizará el Application Pool por defecto y en el segundo el que hayas especificado al crear la aplicación.

Si vemos la configuración avanzada del Application Pool seleccionado (botón derecho y seleccionamos configuración avanzada), podremos determinar la identidad que tiene asociada:

Configuración avanzada de Application Pool


Para modificarla, basta con pulsar el botón con los puntos suspensivos:


Y por fin aquí podemos observar las cuentas integradas que podemos asociar al Application Pool seleccionado, también podríamos utilizar, desde esta misma ventana, una cuenta del Sistema.

Según la opción seleccionada, ésta es la lista de cuentas que debemos usar al asignar permisos:

LocalService               Servicio local
LocalSystem                System
NetworkService             Servicio de red
ApplicationPoolIdentity    <Nombre del grupo de aplicaciones>
Otra forma de deducir el usuario que necesitas para asignar permisos es ejecutando tu Web y observando que en la lista de procesos del sistema operativo, debería aparece uno denominado "w3wp.exe", que es el proceso asociado al Application Pool.

Asignación de permisos

Una vez hemos averiguado la cuenta, basta con acceder con el explorador de archivos a la carpeta en la que deseamos cambiar los permisos y asignar los permisos usando la identidad corresponde.



Ojo porque al crear un Application Pool, lo que realmente crea windows es un identificador de seguridad (SID), que lo podremos emplear en la asignación de permisos, pero no es una cuenta de usuario como tal y por tanto no aparecerá en el listado de cuentas del Sistema. Es por esto que debemos poner "a pelo" el nombre del identificador, si estamos usando "ApplicationPoolIdentity".

Conclusión

Tanto si has llegado por el camino corto, como por el largo, ahora deberíamos poder cambiar los permisos cuando de cualquier proyecto IIS. 

Si quieres ampliar información sobre el funcionamiento del Application Pool te recomiendo algunos de estos enlaces:


Diario de a bordo, las tecnologías asociadas a la Web

Por fin me he decidido a comenzar este Blog, tras mucho tiempo dedicándome al mundo Web, tanto desde la perspectiva personal como profesional, me siento con ganas de compartir lo poco que se con todos ustedes.

La idea inicial es ir publicando entradas sobre temas en los que estoy trasteando, ahora mismo mucho de PHP, Symfony2, HTML5, CSS, jQuery, ... pero me gustaría también publicar algún artículo sobre otras tecnologías en las que he trabajado anteriormente: C#, ASP.NET MVC, ASP, HTML, ...

En definitiva todo lo relacionado con el mundo Web, que no es poco.