J'ai un site hébergé et j'ai des difficultés à configurer Joomla (exécutant Joomla + php + mySQL sur IIS7 + win server 2008). J'ai une configuration similaire fonctionnant sur une machine locale (Joomla + php + mySQL sur IIS7 + vista x64), donc j'étais au moins capable de suivre les instructions montrées dans divers didacticiels sur la façon de configurer cela.Comment savoir avec certitude si FastCGI est utilisé pour exécuter des scripts php?
Ce problème avec le site hébergé est que je ne peux pas activer les paramètres de référencement dans Joomla (pas même le premier paramètre, "URL de moteur de recherche"). Je reçois soit 404 (fichier non trouvé) ou l'URL apparaît correctement réécrite mais c'est toujours le contenu de la page d'accueil qui est affiché. J'ai eu un problème similaire sur ma machine à la maison et il s'est avéré que c'était parce que je n'utilisais pas FastCGI pour héberger php, alors j'ai décidé d'enquêter sur le site hébergé.
Quoi qu'il en soit, j'ai remarqué dans le fichier web.config du répertoire d'hébergement joomla sur le site hébergé la ligne suivante:
<add name="Plesk_Handler_3522909676" path="*.php" verb="*" modules="IsapiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php5isapi.dll" resourceType="Either" />
De l'expérience passée, je sais que php a des problèmes lorsqu'ils ne sont pas en cours d'exécution FastCGI . J'ai remarqué le web.config dans le dossier racine utilisé la ligne suivante à la place:
<add name="Plesk_Handler_0286090609" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php-cgi.exe" resourceType="Either" />
Je copié que dans le web.config dans le répertoire joomla, et a un comportement différent ... mais ne fonctionne toujours pas. Si je charge un fichier .php dans le répertoire joomla qui exécute phpInfo(), sous Server API, il est indiqué CGI/FastCGI. Est-ce confirmation positive que FastCGI est utilisé? Pourquoi le gestionnaire de la configuration Web pointe-t-il vers modules = "CgiModule" au lieu de modules = "FastCgiModule" (je ne suis même pas sûr que cela existe, mais je trouve juste la mention de CgiModule suspect).
C'est un site hébergé, donc autant que je sais que je n'ai pas accès au fichier ApplicationHost.config ...
$ _SERVER ['REQUEST_URI'] peut s'afficher correctement dans CGI et FastCGI et l'API Server peut afficher 'CGI/FastCGI' pour CGI et FastCGI.Une différence est que dans FastCGI $ _SERVER ["REDIRECT_HANDLER"] peut afficher php-fastcgi, mais cela ne confirme pas non plus que "FastCGI" est utilisé car "php-fastcgi" est simplement un nom de variable utilisé dans le fichier de configuration . –
@Jimmy, Cette réponse est très [besoin de citations] (http://xkcd.com/285). En outre, la méthode que vous décrivez semble un peu * hacky *, existe-t-il un moyen plus efficace et plus robuste de déterminer les paramètres directement? – Pacerier
@Pacerier Cela a fonctionné pour moi, et apparemment pour beaucoup d'autres personnes. Je ne pourrais pas trouver un meilleur moyen, mais n'hésitez pas à poster une réponse "meilleure et plus robuste" si vous en avez une. Je suis venu avec moi-même, d'où aucune citation. – Jimmy