在GAE开发模式下设置PHP环境变量(dev_appserver.py)

时间:2013-11-03 02:27:04

标签: php google-app-engine environment-variables

我在Google App Engine上运行了Zend Framework项目。一切都很好,除了一件事:

我无法设置环境变量来告诉Zend我处于开发模式

有什么想法吗?

(我在Ubuntu中使用PHP 5.4)


我尝试了什么

(显然我不想通过app.yaml设置变量...我无法通过.htaccess设置它,因为它没有被使用。我宁愿不必在我的代码中添加任何可能设置的条件这样的变量,或者)

我正在使用PHPStorm(IDE),它有一个很好的GAE插件。它甚至在环境变量的项目配置中有一个选项 - 除了它不起作用。我在PHPStorm(编辑配置> Google App Engine for PHP>命令行>环境变量)中设置变量,但是如果我做了

getenv()

从代码中返回

boolean false

为什么

我的目标是动态加载项目的开发配置,特别是我可以在本地使用MySQL,而不是在开发和测试应用程序时连接到CloudSQL。

1 个答案:

答案 0 :(得分:2)

根据@ tim-hoffman的评论,我要使用的解决方案是我的/public/index.php文件中的以下一点逻辑,放在定义APPLICATION_ENV常量之前:

$env = getenv("SERVER_SOFTWARE");
if ($env !== false) {
   if ((bool)preg_match("/development/", strtolower($env))) {
      define("APPLICATION_ENV", "development");
   }
}

在开发模式下,SERVER_SOFTWARE将返回字符串“Development / X.X”(版本号),在生产中,它将是“Google App Engine / X.Y.Z”