Tengo un sitio alojado y tengo problemas para configurar Joomla (ejecutando Joomla + php + mySQL en IIS7 + win server 2008). Tengo una configuración similar ejecutándose en una máquina local (Joomla + php + mySQL en IIS7 + vista x64), así que al menos pude seguir las instrucciones que se muestran en varios tutoriales sobre cómo configurar esto.Cómo saber con certeza si FastCGI se está utilizando para ejecutar scripts php
Este síntoma con el sitio alojado es que no puedo activar ninguna configuración de SEO en Joomla (ni siquiera la primera configuración, "URLs amigables para el motor de búsqueda"). Recibo 404 (archivo no encontrado) o la URL aparece correctamente reescrita, pero siempre se muestra el contenido de la página de inicio. Tuve un problema similar en mi máquina doméstica y resultó ser porque no estaba usando FastCGI para alojar php, así que decidí investigar eso en el sitio alojado.
De todos modos, me di cuenta en el archivo web.config del directorio de alojamiento Joomla en el sitio alojado la línea siguiente:
<add name="Plesk_Handler_3522909676" path="*.php" verb="*" modules="IsapiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php5isapi.dll" resourceType="Either" />
Por experiencia, sé que PHP tiene algunos problemas cuando no se ejecuta bajo fastcgi . Noté el web.config en la carpeta raíz utiliza la siguiente línea en su lugar:
<add name="Plesk_Handler_0286090609" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php-cgi.exe" resourceType="Either" />
que he copiado en el web.config en el directorio de Joomla, y consiguió un comportamiento diferente ... pero aún no funciona. Si cargo un archivo .php en el directorio joomla que ejecuta phpInfo(), en Server API dice CGI/FastCGI. ¿Es la confirmación positiva que FastCGI se está utilizando? ¿Por qué el controlador en la configuración web apunta a modules = "CgiModule" en lugar de modules = "FastCgiModule" (ni siquiera estoy seguro de que exista, pero me parece sospechoso mencionar a CgiModule).
Es un sitio alojado, por lo que yo sé que no tengo acceso al archivo ApplicationHost.config ...
$ _SERVER ['REQUEST_URI'] puede aparecer correctamente en CGI y FastCGI y la API del servidor puede mostrar 'CGI/FastCGI' tanto para CGI como para FastCGI. Una diferencia es que en FastCGI $ _SERVER ["REDIRECT_HANDLER"] podría mostrar php-fastcgi, pero eso tampoco confirma que se esté usando "FastCGI" ya que "php-fastcgi" es solo un nombre de variable utilizado en el archivo de configuración . –
@Jimmy, esta respuesta es mucho [necesidad de citas] (http://xkcd.com/285). Además, el método que describes suena un poco * hacky *, ¿hay una manera mejor y más sólida de determinar la configuración directamente? – Pacerier
@Pacerier Funcionó para mí, y aparentemente para muchas otras personas. No pude encontrar una mejor manera, pero no dude en publicar una respuesta "mejor y más sólida" si tiene una. Yo mismo se me ocurrió, por lo tanto no hay citas. – Jimmy