如何在 php 中使用 getenv() 和在 .htaccess 中使用 SetEnv,并在共享主机上使用已编译的 php-cgi
只需在上下文中澄清主要问题:
在我的开发机器上,PHP5.3.1作为模块安装在Apache上,我使用SetEnv APPLICATION_ENVIRONMENT应用程序的根.htaccess文件中进行开发。然后,可以使用getenv('APPLICATION_ENVIRONMENT')从任何php脚本中轻松检索它。
在生产服务器上,在共享主机(dreamhost)上,我自己编译了php5.3.1,因为它不直接受支持。一切正常,除了 getenv('APPLICATION_ENVIRONMENT') 返回 false。
在我的域的共享主机根目录 .htaccess 中,我使用此 .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 驻留在 /cgi-bin 中,工作得很好。当然,在我的应用程序的根文件夹中,我有另一个.htaccess定义:
SetEnv APPLICATION_ENVIRONMENT production
但是当使用getenv('APPLICATION_ENVIRONMENT')时,它会返回false,任何想法如何解决这个问题?