Ejecutar php como Apache o como FastCGI

Ejecutar php como Apache o como FastCGI

Si has trabajado con aplicaciones como WordPressPrestashop, que funcionan con Apache y Mysql, y has instalado plugins, temas, etc etc. Es probable que alguna vez te hayas encontrado con que al usar el plugin o módulo te haya dado un error de permisos. A veces se puede solucionar simplemente accediendo  por FTP al directorio del plugin, y dándole permisos 777 a los directorios, o a algún fichero concreto. Sin embargo, a veces ocurre que es WordPress, Prestashop u otra aplicación la que crea los ficheros o directorios, y es un usuario distinto al usuario FTP. Es decir, el usuario que ejecuta por ejemplo WordPress es Apache y es distinto al usuario FTP, por lo que los ficheros o directorios que crea Apache no son accesibles al usuario FTP.

En definitiva, esto se puede solucionar cambiando el modo de ejecución de PHP, y en lugar de usar Apache, usar FastCGI. De esta forma cualquier fichero o directorio modificado por la aplicación también podrá ser usado por el usuario FTP y viceversa.

Hay que tener en cuenta que al ser un modo distinto de ejecución de PHP puede que parte de la programación no funcione igual en un modo que en otro, por lo que se recomienda, que si se decide hacer el cambio, se revise exhaustivamente el funcionamiento de la web, para comprobar que todo es correcto.

A continuación describimos los pasos para hacer el cambio:

  • Accede a tu panel Plesk
  • Haz clic en la pestaña “Sitios web y dominios”
  • A continuación, abajo del todo haz clic en tu dominio
  • Por último en la sección “Estadísticas y scripting web”, donde indica Soporte para PHP, cambiar Módulo Apache por Aplicación FastCGI. No confundir con Aplicación CGI, que es otra opción y tiene peor rendimiento que el FastCGI.
Entradas relacionadas
10 trucos que deberías saber de Coda 2

10 tips que te ayudarán a usar Coda 2 de una manera más eficiente.

Leer más
Cómo recuperar la contraseña de admin de WordPress por FTP

¿Alguna vez te ha ocurrido que has olvidado una clave? – Por suerte, la mayoría de aplicaciones web tienen una opción para recuperar la clave […]

Leer más
24 comentarios
  • juan Publicado el 11/10/2012 a las 21:32 Responder

    Y cual de los dos elegirias, en fiabilidad y estabilidad?

    gracias
    juan

    • aquihaydominios Publicado el 11/10/2012 a las 21:42 Responder

      Hola Juan,

      ambos modos son fiables y estables, no obstante a la hora de elegir uno u otro se puede pensar en:

      – Facilidad de administración (permisos): Mejor FastCGI
      – Velocidad de ejecución y consumo de memoria: Mejor Apache

      No obstante, FastCGI ha mejorado mucho el tema de la velocidad, y no tiene mucho que envidiarle a Apache. En el tema de consumo de memoria, sí puede haber bastante diferencia, pero no es algo que deba preocuparle a un usuario de un alojamiento web, ya que son los administradores de los servidores los que deben tenerlo en cuenta.

      Saludos.

  • juan Publicado el 11/10/2012 a las 21:44 Responder

    muchas gracias!!

    • aquihaydominios Publicado el 11/10/2012 a las 21:45 Responder

      A ti por participar en el blog. Esperamos verte más a menudo por aquí 😉 Saludos

  • Juanjo Publicado el 04/12/2012 a las 01:56 Responder

    Tengo muchisimos errores [warn] mod_fcgid: cleanup zombie process que desbordan la memoria, trabajo con magento en mi VPS,
    ¿seria conveniente pasar a modo Apache y asi evitarme esos problemas? (he provado una tienda demo en apache y rueda todo perfecto en ella)

  • aquihaydominios Publicado el 04/12/2012 a las 23:11 Responder

    Hola Juanjo,

    tanto en apache como en fastCGI una tienda magento debería funcionar correctamente. Bien es cierto que el modo de ejecución de php en apache no tiene porque ser exactamente igual y pueden ocurrir este tipo de cosas, warning o incluso que haya cosas que no funcionen bien en determinadas aplicaciones.

    En cualquier caso, si controlas el tema de permisos, puedes usar Apache perfectamente e incluso puede ser recomendable a nivel de permisos, aunque ya haya muy poca diferencia hoy en día con FastCGI.

    Saludos.

  • Juanjo Publicado el 05/12/2012 a las 19:42 Responder

    Gracias, la verdad que soy muy novato aun con linux, servidores, etc… soy autodidacta pero leere sobre ello.

  • aquihaydominios Publicado el 05/12/2012 a las 19:45 Responder

    ¡Ánimo! Y si quieres probar en nuestros servidores, tienes un alojamiento web gratis durante 15 días: http://www.aquihaydominios.com/alojamiento-web-gratis-durante-15-dias

    Saludos.

  • Jaime Publicado el 10/12/2012 a las 18:35 Responder

    El problema con que me he encontrado es que he migrado de un servicio Hosting gestionado por CPANEL a un VPS con parallels.

    Hemos migrado una tienda prestashop, pero nos encontramos que al importar una gran cantidad de datos se quedaba frito el servidor. Nuestro administrador del VPS nos dijo que cambiarmos a APACHE pero hemos tenido el problema de crear archivos y no funcionaba asi que volvimos a FastCGI.

    ¿Como podemos aumentar el tiempo de ejecución en FastCGI? ¿O para que funcione con el modulo apache?

    Muchas Gracias.

  • aquihaydominios Publicado el 10/12/2012 a las 21:11 Responder

    Hola Jaime,

    ¿cómo habéis hecho la importación del Prestashop? ¿En qué momento no responde?
    Por otro lado, en el php.ini podéis aumentar el tiempo de respuesta igual que con apache. Otra opción si en apache os funciona la importación, es importar en Prestashop y luego cambiar a FastCGI tras importar. O en Apache darle los permisos necesarios para que funcione correctamente. Probablemente haya muchas opciones distintas de solucionar lo que os ocurre.

    Saludos.

  • Alberto León Publicado el 12/01/2013 a las 12:54 Responder

    Los problemas que da plesk con los permisos cuando ejecutas en módulo apache, no son de recibo.

    Eso hace que sea impracticable subir imágenes y otros archivos para las entradas de los post.

    Es decir, aquí no hablamos de facilidad de administración por parte de FastCGI, si no que no hay alternativa, porque usar módulo Apache hace imposible la subida de archivos desde el panel de administración.

    Esto es así por lo que comentas, al ejecutarse el wordpress con el usuario apache, crea carpetas para los post, con los permisos para el usuario apache.

    Mientras, la carga de ficheros, la hace el usuario del dominio, que no tiene permisos a carpetas creadas por apache.

    Me parece una chapuza por parte de plesk no tener esto bien solucionado.

    • aquihaydominios Publicado el 12/01/2013 a las 13:05 Responder

      Hola Alberto,

      el tema de permisos no está relacionado con Plesk, ni con otros paneles como cpanel. Hay distintos tipos de ejecución de PHP, por ejemplo como bien comentas Apache y FastCGI, y cada uno tiene sus ventajas e inconvenientes, y como bien dices una de las grandes diferencias es el tratamiento de permisos.

      Ocurre que en un sistema linux existen distintos tipos de usuarios que pueden tratar los ficheros y directorios, en el caso de Apache por un lado tenemos el usuario FTP y por otro el usuario de Apache. El tratamiento de seguridad de linux hace que unos usuarios no puedan acceder o modificar los ficheros que han creado otros usuarios, por lo que es lógico, aunque no negamos que molesto y que hay que tener ciertos conocimientos de seguridad de linux, lo que ocurre a veces con CMS como WordPress cuando se ejecutan en modo Apache.

      Por todo este tipo de cosas surgió CGI que utilizaba el mismo usuario FTP para ejecutas los ficheros PHP, por lo que evitaba las incompatibilidades de permisos, por hacerlo todo con el mismo usuario. Todo era muy positivo pero CGI era muy lento en comparación con Apache. Por eso surgió FastCGI, que tenía todas las ventajas de CGI en cuanto a permisos, y que era mucho más rápido que CGI, incluso comparable a la rapidez de Apache.

      En resumen, es un tema técnicamente complejo, pero que en ningún caso hay que achacar al panel de control, ya sea Plesk o Cpanel o cualquier otro.

      Esperamos haberte ayudado.

      Saludos.

  • Francisco Publicado el 11/06/2013 a las 17:00 Responder

    Hola, antes de nada dar las gracias por el tiempo que os tomáis con todas estas explicaciones. Resultan de gran ayuda.
    En mi caso he intentado cambiar el modo de ejecución del PHP al modo “fastCGI” pero al hacerlo, aparentemente todo bien, no me guarda los cambios. Es decir, si vuelvo a entrar en el dominio al cual quiero cambiarle dicho parámetro, me sigue mostrando “módulo apache”. Lo estoy haciendo sobre un Plesk 11.0.9.
    He buscado en internet pero no he encontrado nada al respecto. Sigo los pasos, por otro lado bastante sencillos, y prácticamente iguales a los que vosotros aquí reproducís, pero no me hace nada de nada.
    ¿sabéis si hay algo especial respecto a esto en dicha versión de Plesk?.

    muchas gracias por la ayuda

  • aquihaydominios Publicado el 04/09/2013 a las 20:21 Responder

    Hola Francisco,

    perdona por la tardanza. ¿Te sigue ocurriendo? ¿Conseguiste solucionarlo?
    Actualmente hay versiones más recientes de Plesk, pero la 11.0.9 es muy extendida y no hay ningún tipo de inconvenientes a la hora de hacer este cambio, por lo que puede estar relacionado con tu servidor en concreto. De todos modos, si has conseguido después de este tipo averiguar algo, te agradeceríamos que lo compartas por si a otro usuario le ha ocurrido lo mismo alguna vez.

    Gracias, un saludo.

    • Marcos Publicado el 12/09/2013 a las 13:53 Responder

      Siii, muchas gracias, al final era un fallo de manejo, es decir, culpa mía. A los clientes les tengo aplicado un plan y en ese plan tienen especificado es PHP y si pongo fastCGI el plan me devuelve a PHP…ese era el problema. Al final he tenido que hacer un plan especifico para aquellas web que requieren fastCGI
      Muchísimas gracias por vuestro interés !!!

  • aquihaydominios Publicado el 12/09/2013 a las 14:42 Responder

    Hola Marco,

    nos alegra haberte sido de ayuda. Esperamos verte más a menudo por aquí.

    Saludos.

  • paul Publicado el 22/12/2013 a las 05:10 Responder

    Hola,
    antes de todo les deseo felizes navidades a todos y un prospero año nuevo jejeje,

    les queria comentar mi problema, estoy utilizando un hosting con modulo fast cgi no he tenido problemas hasta estos dias, estoy usando wordpress el caso es que la pagina me daba error 504 de time-out nginx y nose si el modulo influenciaria en esto de algun modo.

    ¿Que decis?
    Gracias

  • aquihaydominios Publicado el 26/12/2013 a las 15:12 Responder

    Hola Paúl,

    el tiempo de ejecución que tengas configurado en el php.ini es solo para Apache, para FastCGI es distinto, por lo que puede que influya en este caso. De todos modos, puedes igualmente aumentar el tiempo para FastCGI, o si es un lanzamiento de un script en un momento puntual, lo puedes lanzar en Apache y después volver a FastCGI.

    Felices fiestas.
    Saludos.

  • Javier Arocena Publicado el 20/01/2014 a las 18:07 Responder

    Muy buenas, como ya han comentado por aquí arriba, muchas gracias por la molestia que os tomáis con cada usuario.

    Quería comentaros un problema con el que ya no sé que hacer y estoy desesperado.. Tenía mi sitio web funcionando perfectamente en con Apache. Pero tenía problemas para usar la funcion rename(), y poder renombrar archivos, entonces lo pasé a “fastcgi”. Funciona todo estupendamente, incluido el renombramiento, menos el redireccionamiento que realizaba el .htaccess. Las url amigables no me las recibe correctamente y me lanza el error “No input file specified.”

    Alguna idea?

    Muchisimas gracias!

    PD: Ejemplo del error: http://www.javierarocena.com/diseno/Cartel+El+pianista
    PD2: Phpinfo() disponible en: http://www.javierarocena.com/phpinfo

    • aquihaydominios Publicado el 20/01/2014 a las 18:14 Responder

      Hola Javier,

      de nada, nos gusta ayudar tanto a nuestros clientes como usuarios. También nos gusta ver como después os ayudáis entre ustedes y todos acabamos aprendiendo cosas.

      En cuanto a tu pregunta, si la web ya ha estado funcionando en Apache, habrá creado ficheros cuyo propietario es Apache, por lo que al pasarlo a FastCGI debe también cambiar los propietarios de los ficheros. Desde ssh debes usar el comando chown -R
      Si no tienes acceso, debes pedir a tu proveedor que te lo haga.

      Saludos.

  • Javier Arocena Publicado el 21/01/2014 a las 14:59 Responder

    Muchas gracias por la velocidad de respuesta, pero sigo sin entender una cosa. Lo de cambiar los privilegios creo que ya lo ha hecho mi proveedor, pero aún así no funciona. Me comentaron que el path cambió y que debía modificar el .htaccess para la nueva redirección…

    sabéis algo de eso?
    Un saludo!

  • aquihaydominios Publicado el 21/01/2014 a las 15:08 Responder

    Hola Javier,

    no es lo mismo los privilegios, con el comando chmod, que el propietario, con el comando chown. Pensamos que podría ser eso.

    En nuestra opinión no influye el modo de ejecución PHP, ya sea Apache o FastCGI con las urls amigables. Las urls siempre son las mismas. Quizás si podría influir la ruta o path del servidor, que en FastCGI se puede indicar cual es la ruta por defecto, a diferencia de Apache que es siempre la misma, la completa.

    Saludos.

  • Eva Sanz Publicado el 05/10/2014 a las 11:20 Responder

    Hola,

    tenía la aplicación funcionando correctamente con FASCTCGI. El otro día tuve que subir ficheros con tamaño superior a 16M y lei que FASTCGI tenía una limitacion y no permitia subir ficheros superiores. No encontraba el fichero donde estaba esa restriccion por lo que cambie el modo de ejecucion a Apache. Los ficheros se subieron ok.

    Como ya he subido esos ficheros he cambiado a FASCTCGI ya que tenía problemas para upload ficheros pequeños por temas de permisos. La aplicacion tiene usuario-contraseña en el index.html, lo introduzco pero no hace efecto, no inicia la sesion y vuelve al Index.html. Si cambio a Apache vuelve a correr…¿?

    Agradecería si pueden comentarme como solucionarlo…

    Gracias. Un saludo

  • aquihaydominios Publicado el 19/10/2014 a las 11:36 Responder

    Hola Eva,

    por cambiar a Apache y después a FastCGI de nuevo, no tiene porque dejar de funcionar una aplicación. Por otro lado, en FastCGI también se pueden definir los máximos, por ejemplo el de tamaño de fichero. Ocurre que si lo haces por Plesk, no coge los cambios si ya lo tienes en FastCGI, por lo que se suele hacer el cambio, se pasa a Apache e inmediatamente se pasa a FastCGI y ya coge los cambios que normalmente se guardan en php.ini

    En cuanto a que ahora no te funcione algo, por cambiar de modo, debes revisar si se creó algún fichero con Apache y ahora FastCGI no tiene permisos. Hay algunos scripts que se pueden ejecutar desde ssh para solventar esto si eso fuera lo que hace que no te funcione. En caso contrario, habría que mirar con más detenimiento.

    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *