Chỉ cần đặt trong bối cảnh để làm rõ câu hỏi chính:Làm thế nào để sử dụng getenv() trong php và setenv trong một .htaccess với một biên soạn php-cgi trên một máy chủ chia sẻ
Trên máy tính phát triển của tôi, PHP5.3.1 là được cài đặt trên Apache như một mô-đun, tôi sử dụng phát triển SetEnv APPLICATION_ENVIRONMENT trong tệp .htaccess gốc của ứng dụng của tôi. Sau đó, bạn có thể dễ dàng truy xuất từ bất kỳ tập lệnh php nào bằng getenv ('APPLICATION_ENVIRONMENT').
Trên máy chủ sản xuất, trên máy chủ chia sẻ (dreamhost), tôi đã tự biên dịch php5.3.1 vì nó không được hỗ trợ trực tiếp. Mọi thứ hoạt động tốt ngoại trừ getenv ('APPLICATION_ENVIRONMENT') trả về false.
Trong .htaccess gốc sharedhost cho tên miền của tôi, tôi sử dụng tập tin .htaccess này
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 nằm trong/cgi-bin và hoạt động rất tốt. Tất nhiên trong thư mục gốc ứng dụng của tôi của tôi có khác Xác định .htaccess:
SetEnv APPLICATION_ENVIRONMENT production
Nhưng khi sử dụng getenv ('APPLICATION_ENVIRONMENT') nó trả về false, bất kỳ ý tưởng làm thế nào để giải quyết này?
Chỉ cần đoán: Có thể máy chủ của bạn không cho phép chỉ thị này bị ghi đè trong tệp .htaccess? –