Basta mettere in un contesto di chiarire la questione principale:Come usare getenv() in PHP e SetEnv in un .htaccess con un php-cgi compilato su un host condiviso
Sulla mia macchina di sviluppo, è PHP5.3.1 installato su Apache come modulo, utilizzo SetEnv APPLICATION_ENVIRONMENT nello sviluppo del file .htaccess root della mia applicazione. È quindi facilmente recuperabile da qualsiasi script php con getenv ('APPLICATION_ENVIRONMENT').
Sul server di produzione, su un host condiviso (dreamhost), ho compilato php5.3.1 poiché non era direttamente supportato. Tutto funziona bene, tranne che getenv ('APPLICATION_ENVIRONMENT') restituisce false.
Nella radice .htaccess sharedhost per il mio dominio, io uso questo file .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 risiede in/cgi-bin e funziona molto bene. Naturalmente nella cartella principale della mia domanda ho un altro che definisce .htaccess:
SetEnv APPLICATION_ENVIRONMENT production
Ma quando si utilizza getenv ('APPLICATION_ENVIRONMENT') restituisce false, qualche idea di come risolvere questo?
Solo supposizioni: Forse il tuo host non permette che questa direttiva sia sovrascritta nei file .htaccess? –