mettre juste dans le contexte de clarifier la question principale:Comment utiliser getenv() en php et SetEnv dans un .htaccess avec un php-cgi compilé sur un hébergement mutualisé
Sur ma machine de développement, est PHP5.3.1 installé sur Apache en tant que module, j'utilise le développement SetEnv APPLICATION_ENVIRONMENT dans le fichier .htaccess racine de mon application. Il est alors facilement récupérable à partir de n'importe quel script php avec getenv ('APPLICATION_ENVIRONMENT').
Sur le serveur de production, sur un sharedhost (dreamhost), je me suis compilé php5.3.1 car il n'était pas directement supporté. Tout fonctionne bien, sauf que getenv ('APPLICATION_ENVIRONMENT') renvoie false.
Dans le .htaccess racine sharedhost pour mon domaine, j'utilise ce fichier .htaccess
Options +ExecCGI
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi
<FilesMatch "^php5?\.(ini|cgi)$">
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</FilesMatch>
Options -indexes
php5.cgi réside dans/cgi-bin et fonctionne très bien. Bien sûr, dans le dossier racine de mon application j'ai une autre définition .htaccess:
SetEnv APPLICATION_ENVIRONMENT production
Mais lorsque vous utilisez getenv (« APPLICATION_ENVIRONMENT ») il retourne faux, toute idée comment résoudre ce problème?
Il suffit de deviner: votre hôte ne permet peut-être pas que cette directive soit surchargée dans les fichiers .htaccess? –