MEM*_*MEM 25 apache zend-framework
我的htaccess上有以下内容.
SetEnv APPLICATION_ENV development
Run Code Online (Sandbox Code Playgroud)
当我将此文件传递给prodution时,我将其更改为:
SetEnv APPLICATION_ENV production
Run Code Online (Sandbox Code Playgroud)
这个
发展
和
生产
在Zend Framework application.ini上设置正确吗?
Zend和Apache如何在这里交流?Zend如何知道htaccess指令?
谢谢.
Pas*_*TIN 39
SetEnv,在Apache的配置中使用(无论是.htaccess文件还是VirtualHost),定义了一个环境变量.
从PHP,您可以读取环境变量:
在给定纵观index.php中的Zend框架快速入门,你会看到它使用环境变量中定义了一个名为PHP常数APPLICATION_ENV:
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
: 'production'));
Run Code Online (Sandbox Code Playgroud)
并且该常量稍后用于初始化应用程序:
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
Run Code Online (Sandbox Code Playgroud)
正如你所说,沟通的流程是以下内容:
如果你使用
SetEnv APPLICATION_ENV制作
在您的.htaccess中,将使用您在此处设置的环境.为什么?
如果在.htaccess中使用SetEnv,则index.php中的以下代码不会定义常量,如果已经定义了常量,则会出现这种情况.
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV',
(getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
: 'production'));
Run Code Online (Sandbox Code Playgroud)
如果.htaccess未定义常量,则将使用index.php中提供的值.如果我是你,我仍会保持同步.因为您可能会犯错误,例如忘记为您的vhost设置AllowOverride,这会导致index.php设置环境的情况,即使存在.htaccess.
| 归档时间: |
|
| 查看次数: |
51799 次 |
| 最近记录: |