tylko wprowadzenie w kontekście wyjaśnienia główne pytanie:Jak używać getenv() w PHP i SetEnv w .htaccess z skompilowanego php-cgi na wspólnej przyjmującego
Na moim komputerze deweloperskim, PHP5.3.1 jest zainstalowany na Apache jako moduł, korzystam z rozwoju SetEnv APPLICATION_ENVIRONMENT w głównym pliku .htaccess mojej aplikacji. Jest on następnie łatwo dostępny z dowolnego skryptu php za pomocą getenv ('APPLICATION_ENVIRONMENT').
Na serwerze produkcyjnym, na sharedhost (dreamhost), skompilowałem się php5.3.1, ponieważ nie było to bezpośrednio obsługiwane. Wszystko działa dobrze, z wyjątkiem tego, że getenv ('APPLICATION_ENVIRONMENT') zwraca wartość false.
w korzeniu .htaccess sharedhost dla mojej domeny używam tego pliku .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 rezyduje w/cgi-bin i działa bardzo dobrze. oczywiście w folderze głównym mojej aplikacji mam innego zdefiniowania .htaccess:
SetEnv APPLICATION_ENVIRONMENT production
Ale podczas korzystania getenv („APPLICATION_ENVIRONMENT”) zwraca false, jakiś pomysł jak rozwiązać ten problem?
Po prostu zgaduję: może twój host nie pozwala na nadpisanie tej dyrektywy w plikach .htaccess? –