首先,你是对的。您不希望应用程序有多个实例/安装。设置多个 Apache 虚拟主机指向 Doc Root。
ServerName www.serverOne.com
DocumentRoot "/htdocs/myapp/public"
SetEnv CONFIG_ENV "serverOne"
ServerName www.serverTwo.com
DocumentRoot "/htdocs/myapp/public"
SetEnv CONFIG_ENV "serverTwo"
将所有基本 url、路径等放在 Zend_Config_Xml 文件的不同部分。
<?xml version="1.0" standalone="yes"?>
<config>
<siteOne>
<base_url>http://www.siteOne.com</base_url>
<image_path>/images/siteOne/</image_path>
<database>
<host>34.23.34.457</host>
<name>siteOne_DB</name>
<user>siteOne</user>
<pass>**********</pass>
</database>
</siteOne>
<siteTwo>
<base_url>http://www.siteTwo.com</base_url>
<image_path>/images/siteTwo/</image_path>
<database>
<host>34.23.34.456</host>
<name>siteTwo_DB</name>
<user>siteTwo</user>
<pass>**********</pass>
</database>
</siteTwo>
</config>
然后在你的 /public/index.php
<?php
require '../common/config/Bootstrap.php';
$bootstrap = new Bootstrap($_SERVER['CONFIG_ENV']);
$bootstrap->runApp();
?>
在 Bootstrap.php 的 runApp() 方法中:
function runApp($env)
{
$root = realpath(dirname(__FILE__) . '/..');
$config = new Zend_Config_Xml($root . '/config.xml', $env);
这将与相对链接完美配合,并且不需要任何模式匹配:)
如果您没有 Bootstrap.php 文件,您可以在 Manning Press 的“Zend Framework In Action”一书中了解如何创建和使用,该书可立即作为 PDF 下载。它帮助我度过了一些艰难的时期。