De la même manière que vous pouvez générer un contenu spécifique en fonction du type de navigateur, existe-t-il un moyen de générer un contenu spécifique basé sur le serveur exécutant PHP sans référence au serveur ou au nom du site? Par exemple, un moyen pour PHP de détecter automatiquement l'environnement dans lequel il se trouvait et de configurer les choses comme les connexions DB, ini_set pour les erreurs etc. selon qu'il s'agissait d'un environnement de développement, ITS, UAT ou de production.Puis-je configurer un contenu spécifique à l'environnement?
Les 2 façons dont je pensais étaient de reconnaître un en-tête HTTP indiquant les environnements de développement et d'assurance qualité ou d'avoir des propriétés personnalisées dans php.ini. Je me suis réveillé un peu et j'ai découvert la fonction php pour lire les en-têtes HTTP, mais php remplace tout ce que j'ai défini dans le serveur web et je ne sais pas s'ils peuvent être définis dans php.ini.
Je ne sais pas s'il est possible d'ajouter des valeurs personnalisées à php.ini mais j'ai eu un test et ini_get ne le trouverait pas (j'ai redémarré le serveur web après avoir changé php.ini bien sûr).
Je ne veux pas utiliser le nom du serveur car il peut y avoir un certain nombre de machines de développement, les noms de serveurs de QA peuvent changer etc. $ _ENV semblerait être le chemin à parcourir si je peux les configurer via IIS qui est ce que je dois travailler avec le serveur web. –
Après quelques recherches je ne pouvais trouver aucun moyen d'ajouter des variables d'environnement avec ISAPI ainsi déplacé vers fastcgi (j'avais prévu cela de toute façon). J'ai suivi les instructions pour configurer fastcgiext.ini et ajouter des variables d'environnement et j'ai redémarré IIS mais $ _ENV est toujours vide. Comme note supplémentaire, notre configuration actuelle rompt l'une des règles cardinales du cycle de production en ce que les sites dev et ITS sont IIS 5, UAT est susceptible d'être IIS 6 et IIS production 7. J'espère que cela sera résolu bofore Il existe actuellement un site de production mais cela signifie que je suis actuellement limité à IIS 5. –
$ _SERVER ['SERVER_NAME'] se base sur ce que le client appelant appelle le serveur, pas sur ce que le serveur lui-même est appelé. Si vous vous connectez par IP plutôt que par nom d'hôte, $ _SERVER ['SERVER_NAME'] sera l'adresse IP. Si vous définissez un autre nom dans votre fichier hosts, $ _SERVER ['SERVER_NAME'] sera celui, etc. Peut être utile à considérer. – Meep3D