我喜欢Zend Framework中的这个功能。我可以通过检查我的控制器中的APPLICATION_ENV常量来知道当前正在使用哪个环境。
<VirtualHost *:80>
#ServerName
#DocumentRoot
SetEnv APPLICATION_ENV "development"
# Directory
</VirtualHost>
但不幸的是,我不能在当前的项目中使用ZF。如何在我的PHP代码中检查这个环境变量?
我喜欢Zend Framework中的这个功能。我可以通过检查我的控制器中的APPLICATION_ENV常量来知道当前正在使用哪个环境。
<VirtualHost *:80>
#ServerName
#DocumentRoot
SetEnv APPLICATION_ENV "development"
# Directory
</VirtualHost>
但不幸的是,我不能在当前的项目中使用ZF。如何在我的PHP代码中检查这个环境变量?
apache_getenv
— 获取Apache子进程环境变量的值getenv
— 获取环境变量的值// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') :
'production'));
if(!defined('APPLICATION_ENV')) {
if(FALSE === stripos($_SERVER['SERVER_NAME'], 'www.yourdomain.com')) {
define(APPLICATION_ENV, 'development');
} else {
define(APPLICATION_ENV, 'production');
}
}
您也可以通过$_SERVER
变量访问它。
我曾经遇到过同样的问题,但是我解决了它。解决这个问题的方法是在 Apache 的 init 脚本中声明所有变量。
我在 CentOS 上使用 Apache,init 脚本位于 /etc/init.d/httpd
。
添加以下代码,但请根据您的具体情况进行更改。
ORACLE_HOSTNAME=ora11g.home.com; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ora11g; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
这解决了我的问题。希望对你有所帮助。
bool(false)
。与其他正常工作的服务器相比,我找不到任何区别。 - yellowsir
[...]
SetEnv APPLICATION_ENV production
DocumentRoot /var/www
[...]
- yellowsir