【问题标题】:SetEnv APPLICATION_ENV development - .htaccess interacting with Zend Framework?SetEnv APPLICATION_ENV 开发 - .htaccess 与 Zend 框架交互?
【发布时间】:2014-11-08 03:45:37
【问题描述】:

我的 htaccess 上有以下内容。

SetEnv APPLICATION_ENV development

当我将此文件传递给生产时,我会将其更改为:

SetEnv APPLICATION_ENV production

这个

发展

生产

在 Zend Framework application.ini 上设置正确吗?

Zend 和 Apache 在这里如何通信? Zend 是如何知道那个 htaccess 指令的?

谢谢。

【问题讨论】:

  • 好主意,那个!以前从未见过。
  • 哦,好吧,我正在阅读的书作者归功劳。 :) W.J.吉尔摩。但是这个“如何”被省略了。 :)

标签: apache zend-framework


【解决方案1】:

SetEnv,用于 Apache 的配置(无论是 .htaccess 文件还是 VirtualHost),定义了一个环境变量。

从 PHP 中,您可以读取环境变量:


查看Zend Frameworks QuickStart 中给定的index.php,您会看到它使用该环境变量定义名为APPLICATION_ENV 的PHP 常量:

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                         : 'production'));

该常量稍后用于初始化应用程序:

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);

【讨论】:

  • APPLICATION_ENV 用于加载配置文件的正确部分 (或 PHP 代码的某些部分) - 在其中启用 (或不启用) 错误的显示。
  • 非常感谢。 :) 两者都干杯。
【解决方案2】:

如您所说,通信流程如下:

如果你使用

SetEnv APPLICATION_ENV 生产

在您的 .htaccess 中,将使用您在那里设置的环境。为什么?

您的 index.php 中的以下代码没有定义常量,如果它已经定义,如果您在 .htaccess 中使用 SetEnv,就是这种情况。

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                         : 'production'));

如果您的 .htaccess 没有定义常量,将使用 index.php 中提供的值。如果我是你,我仍然会保持同步。因为您可能会犯错误,例如忘记为您的虚拟主机设置 AllowOverride,这会导致环境由 index.php 设置,即使存在 .htaccess。

【讨论】:

  • 我会考虑到这一点,但这并不容易。我正在尝试使用 capistrano 自动化该过程。此刻,我在那里创建了一个任务,它将用“生产”文件夹上的 htaccessB 替换 htaccessA。 htaccess 文件不像我们的 index.php 文件那样经常更改,所以我可以依靠这个...
  • 一般来说,我发现在 .htaccess 中定义环境是个好主意,只要确保 index.php 中的默认环境是最安全的(即生产环境)如果.htaccess 有问题。如果环境尚未由 .htaccess 设置,也许您还可以重写 index.php 以使应用程序抛出错误。
猜你喜欢
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多