EZ Publish/EZ Publish配置模型

来自站长百科
跳转至: 导航、​ 搜索

EZ Publish | EZ Publish安装与卸载 | EZ Publish的使用 | EZ Publish常见问题 | EZ Publish其他

本条目主要阐述了eZ Publish 中的配置模型。默认的配置文件后缀名为".ini"并且保存在"settings"目录。每个配置文件控制eZ Publish 中的一个特定部分。例如:"content.ini"文件控制内容引擎的行为,"webdav.ini"文件控制WebDAV 子系统的行文,等等。最主要也是最重要的配置文件是"site.ini"。除了其它的作用,它告诉eZ Publish 使用哪个数据库,界面等等。默认的配置文件包含所有的配置选项(设定为默认值)与对应的说明。这些文件应该之被用于参考目的。换言之,它们永远都不能被修改。

文件结构[ ]

eZ Publish 的配置文件被分割为多个块,每一块包含一套配置。下例演示了"site.ini"配置文件的一部分。

...
# This line contains a comment.
[DatabaseSettings]
Server=localhost
User=allman
Password=qwerty
Socket=disabled
SQLOutput=enabled
# This line contains another comment.
[ExtensionSettings]
ActiveExtensions[]=ezdhtml
ActiveExtensions[]=ezpaypal
...

上例演示了两个配置块:"DatabaseSettings"和"ExtensionSettings"。每一块内部包含若干控制系统行为的配置。配置通常可以被设置为"enabled“/"disabled",一个字符串或一个字符串数组。如果配置名以一对方括号结尾,意味着这个配置接受数据类型的值。在上例中,"ActiveExtensions"配置告诉eZ Publish 启用两个扩展:"ezdhtml"和"paypal"。以"#"开头的行为注释行。

配置重设

如前所述,默认的配置文件永远都不应该被修改因为它们很可能在日后的升级过程中被新的配置文件覆盖。即使对这些文件备份也不够,因为配置文件会随着时间变化。例如:前一个版本的配置文件不会包含最新增加的配置选项。由于这些问题,自定义的配置必须被放置在其它位置。全局的配置重设可以被放置在"settings/override"目录。这个目录中的配置文件会重设默认配置。这个目录中的文件必须使用以下后缀名中的一个:

#.ini.append
#.ini.append.php

如果".ini.append"和".ini.append.php"后缀名都被使用,".ini.append.php"的优先级更高。处于安全考虑,".ini.append.php"应该优先被使用。特别是当eZ Publish 运行在非虚拟主机服务器环境。".php"后缀名能强迫WEB 服务器把配置文件作为PHP 脚本处理。如果有人试图在浏览器中直接访问配置文件,服务器不会显示配置文件的内容。相反,服务器会把它作为PHP 脚本处理。但是因为配置文件所有的内容都已被注释,因此服务器不会生成任何输出。这种方法让黑客试图从系统外部访问配置文件中的重要信息(如用户名,密码等等)变得更加困难。要达到这种目的,配置文件的内容必须被PHP 风格的注释/*和*/封装。下例演示了一个重设配置文件(如:"test.ini.append.php")的格式:

<?php /* #?ini charset="iso-8859-1"?
# These are my example settings
[ExampleSettings]
ExampleSettingOne=enabled
ExampleSettingTwo=disabled
...
*/ ?>

"charset"配置选项表明ini 文件的字符集(通常为ISO-8859-1)。

站点管理[ ]

eZ Publish 的一个安装可以支持多个站点,这需要使用称为“站点入口”系统。这个系统允许通过一系列规则管理不同配置。这些规则控制在不同情况下应该使用哪一组配置。站点入口规则必须在"site.ini"的全局重设文件("settings/override/site.ini.append.php")中定义。

站点入口

一套配置文件称为一个站点入口。当一个站点入口被使用时,默认的配置会被站点入口本身的配置重设。除其他配置内容外,站点入口定义需要用到的数据库,界面和var 目录(这些有时也被称为“资源”)。通过使用不同的站点入口,可以把不同的内容和界面组合起来。典型的eZ Publish 站点由两个站点入口:一个用于公共用户访问的公共站点和一个用于管理员访问的有安全限制的站点。两个站点入口使用相同内容(相同的数据库和var 目录),但是他们使用不同的界面。管理站点入口使用系统内建的管理界面,公共站点入口使用一个自定义的界面。下图演示了这个场景。

EzpublishZDGL.jpg

当一个站点入口被使用时,它只是一套重设了默认配置的配置文件。一个eZ Publish 安装理论上可以通过站点入口支持无限个站点。站点入口的配置文件被保存在"settings/siteaccess"中个一个子目录中。子目录的名称就是站点入口的名称。(注意,站点入口名称只能包含字符,数字和下划线)。下图演示了两个站点入口的配置:admin 和public。

EzpublishZDGL1.jpg

当一个站点入口被使用,eZ Publish 用以下顺序载入配置文件:

  1. 默认的配置文件(settings/*.ini)
  2. 站点入口配置(settings/siteaccess/[站点入口名称]/*.ini.append.php)
  3. 全局重设文件(settings/override/*.ini.append.php)

换言之,eZ Publish 首先会载入默认配置。然后,它会根据"site.ini."全局重设("settings/override/site.ini.append.php")中的配置来确定应该使用哪个站点入口。当它确定应该使用哪个站点入口,它会从这个站点入口的目录中载入这个站点入口的配置。站点入口的配置会重设全局重设,全局重设会重设默认设置。例如:如果站点入口使用"Amiga"数据库,系统将会看到这个配置并且在处理客户端请求是自动使用这个数据库。

换言之,eZ publish 会先读取默认的配置。然后,它会通过"site.ini"的全局重设("settings/override/site.ini.append.php")中的配置确定应该使用哪个站点入口。当它确定了应该使用哪个站点入口后,它会从站点入口中读取站点入口的配置文件。站点入口的配置会重设全局的配置。例如:如果站点入口使用"Amiga"数据库,系统会了解这个配置并且在处理客户端请求时自动使用这个数据库。

最后,eZ Publish 从全局重设目录中读取配置。全局重设配置会重设所有其它配置。换言之,如果全局重设配置中使用"CD32"数据库,eZ Publish 会尝试使用这个数据库而无论站点入口中使用的哪个数据库。如果一个配置既没有被站点入口重设也没有被全局重设,则默认配置会被使用。默认配置文件被保存在"settings"目录。下图演示了系统如何从"site.ini"文件中依次读取配置。如前所述,重设文件中的配置会重设默认设置。

EzpublishZDGL2.jpg

扩展站点入口配置[ ]

扩展站点入口配置允许在扩展中放置站点入口的配置文件。

目录结构必须按如下规则组织:

 extension/<my_extension>/settings/siteaccess/<my_siteaccess>/<file.ini.append.php>

示例:

extension/ezno/settings/siteaccess/ezno/override.ini.append.php :
<?php /*
[article_full_ezno]
Source=node/view/full.tpl
MatchFile=article/full.tpl
Match[class_identifier]=article
Subdir=templates
*/ ?>

注意:除了debug 配置和include/activate 扩展配置,其余所有的配置都可以在扩展中配置。

访问方法[ ]

eZ Publish 在每次处理一个客户端的请求时,会根据一套规则决定应该使用哪个站点入口。这些规则必须在"settings/override/site.ini.append.php"中设置。站点入口系统的行为由[SiteAccessSettings]中的"MatchOrder"配置决定。这个配置控制eZ Publish 如何解释客户端的请求。有三种可用的MatchOrder:

  1. URI
  2. Host(主机)
  3. Port(端口)

以下的内容简单介绍了三种访问方法。注意,这些访问方法可以被组合使用。关于"MatchOrder"的文档说明了如何做到。

URI

这是"MatchOrder"的默认设置。当使用URI 访问方法时,目标站点入口的名称为URL 中"index.php"之后的第一个参数。例如:以下的URL 会告诉eZ Publish 使用"admin"站点入口:http://www.example.com/index.php/admin。如果还有一个"public"站点入口,可以用http://www.example.com/index.php/public 访问。如果URL 的最后一部分被省略,默认站点入口会被使用。默认站点入口在[SiteSettings]中的"DefaultAccess"配置。以下的示例演示了如何配置"settings/override/site.ini.append.php"来使用URI 访问方法并使用"public"作为默认站点入口:

...
[SiteSettings]
DefaultAccess=public
[SiteAccessSettings]
MatchOrder=uri
...

URI 访问方法对于测试/演示很有用。此外,它非常容易因为不需要配置WEB 服务器和DNS

Host Host主机)访问方法允许把主机/域名组合映射到不同的站点入口。这中方法需要eZ Publish 以外的配置。首先,DNS 服务器必须被配置从而可以将需要的主机/域名组合解析到WEB 服务器的IP 地址。其次,WEB 服务器必须被配置以触发对应的虚拟主机配置(除非eZ Publish 被部署在主要的DocumentRoot)。请参阅安装条目中“EZ Publish虚拟主机设置”了解如何配置虚拟主机。DNS 服务器和WEB 服务器正确配置之后,eZ Publish 可以被配置来通过主机/域名组合来确定使用的站点入口。下例演示了如何配置"settings/override/site.ini.append.php"来启用Host 访问方法。此外,它也表明了Host 匹配机制的基本用法。

...
[SiteAccessSettings]
MatchOrder=host
HostMatchType=map
HostMatchMapItems[]=www.example.com;public
HostMatchMapItems[]=admin.example.com;admin
...

上例告诉eZ Publish 如果请求的URL 以"www.example.com"开头,就使用"publich"站点入口。换言之,"settings/siteaccess/public"下的配置文件会被使用。如果请求URL 以"admin.example.com"开头,则使用admin 站点入口。上例只演示了eZ Publish Host 匹配功能的一部分。请参阅参考文档了解全部关于HostMatchType 的配置。

Port

Port 访问方法允许将不同端口映射到不同的站点入口。这种访问方法需要eZ Publish 之外的配置。WEB服务器比如被配置来监听在希望的端口(默认情况下,WEB 服务器监听在80 端口,这是标准的HTTP端口)。此外,防火墙也很可能需要被配置从而允许客户端请求可以通过81 端口到达WEB 服务器。下例演示了如何配置"settings/override/site.ini.append.php"来使用Port 访问方法。它也演示了如何把不同的端口映射到不同的站点入口。

...
[SiteAccessSettings]
MatchOrder=port
[PortAccessSettings]
80=public
81=admin
...

上例告诉eZ Publish 如果请求被发送到80 端口,则使用"public"站点入口。换言之,"settings/siteaccess/public"下的配置文件会被使用。如果请求被发送到81 端口(通常在URL 后追加端口号,如:http://www.example.com:81),则admin 站点入口会被使用。

参考来源[ ]

EZ Publish使用手册导航

EZ Publish安装卸载

EZ Publish正常安装 | EZ Publish手动安装 | EZ Publish自动安装 | EZ Publish安装向导 | EZ Publish虚拟主机设置 | EZ Publish使用扩展 | EZ Publish的卸载

EZ Publish的使用

模板使用:

EZ Publish节点模板 | EZ Publish系统模板 | EZ Publish Pagelayout页头信息 | EZ Publish Pagelayout变量 | EZ Publish 模板注释 | EZ Publish 模板变量类型 | EZ Publish 模板变量用法 | EZ Publish 调查数组和对象 | EZ Publish 模板控制结构 | EZ Publish 函数与操作符 | EZ Publish URL处理 | EZ Publish 内容提取 | EZ Publish 模板重设系统
系统功能: EZ Publish 系统记帐 | EZ Publish 策略功能 | EZ Publish 多语言使用(一) | EZ Publish 多语言使用(二) | EZ Publish 集群的使用 | EZ Publish 安装包的使用 | EZ Publish Cronjob脚本的使用 | EZ Publish 多货币功能 | EZ Publish 通知功能
其他功能: EZ Publish 增值税(VAT)系统 | EZ Publish 改进的商品配送系统 | EZ Publish 多语言URL别名 | EZ Publish 登录后高级重定向 | EZ Publish 检索引擎 | EZ Publish WebDAV | EZ Publish 视图缓存

EZ Publish常见问题

EZ Publish 安装常见问题 | EZ Publish 使用常见问题

EZ Publish其他

EZ Publish内部结构 | EZ Publish内容与界面 | EZ Publish内容管理(一) | EZ Publish内容管理(二) | EZ Publish配置模型 | EZ Publish模块与视图 | EZ Publish URL 翻译 | EZ Publish 界面 | EZ Publish访问控制 | EZ Publish网络商店 | EZ Publish工作流