拼布配置指令

在我之前的文章中,我提供了一个Bricolage安装过程的指南。如果您跟随着步骤,现在应该已经有一个功能齐全的Bricolage 1.8安装准备就绪。但是,正如Popeil先生经常说的,“等等,还有更多!”

像许多其他应用程序一样,Bricolage附带一个运行时配置文件。这个文件名为bricolage.conf,位于Bricolage根目录的conf子目录中。它包含一系列设置,告诉Bricolage如何找到事物,如何连接到数据库,哪些可选功能要包含,以及其他好东西。本文提供了对bricolage.conf中所有配置设置的指导性介绍,以便您能够根据需要配置这些设置,从而更有效地使用Bricolage来管理您的站点。

配置格式

bricolage.conf的格式源自“Perl烹饪书”,非常简单。一个指令单独占一行,后面跟着一个空格,一个等号,然后是值。任何位于井号(“#”)后面的内容都是注释。典型的条目如下

APACHE_BIN   = /usr/local/apache/bin/httpd
APACHE_CONF  = /usr/local/bricolage/conf/httpd.conf
LISTEN_PORT  = 80
SSL_PORT     = 443
SSL_ENABLE   = No

大多数bricolage.conf配置选项是两种类型之一:布尔值或字符串。布尔配置指令可以是启用的或禁用的,但您有多种方法可以做到这一点。要启用布尔指令,只需将其值设置为“是”、“开”或“1”(数字一)。要禁用它,将其设置为“否”、“关”或“0”(零)。字符串值跟在等号后面。它们可以有多长,但不能跨越行。

Apache配置

bricolage.conf的第一部分配置Bricolage以使用Apache网络服务器。因为Bricolage运行在Apache之上,但使用自己的启动脚本,所以它需要知道在哪里可以找到Apache资源,以便它可以正确地配置和启动Apache。因此,Bricolage动态配置Apache的默认方法依赖于这些指令。安装程序为您设置了许多这些指令,但并非全部,所以查看一下是否需要调整它们是值得的。

APACHE_BIN此指令告诉Bricolage在哪里可以找到您的Apache httpd可执行文件,它使用该文件来启动自己。

APACHE_CON此指令指向httpd.conf文件。这是当然的,著名的Apache配置文件。它也需要配置才能运行Bricolage(Bricolage安装程序配置了Bricolage根目录conf子目录中的默认httpd.conf),然后Bricolage反过来使用此指令告诉httpd在启动时在哪里找到配置文件。

LISTEN_PORT这是Bricolage将监听请求的TCP/IP端口。它默认使用HTTP标准端口80,但您可以通过更改Bricolage以使用其他端口,如果您已经有其他服务器在端口80上监听。

SSL_PORT这是Bricolage将监听安全套接字层(SSL)请求的TCP/IP端口。它默认为标准的HTTP SSL端口443,但同样,如果您已经使用端口443,则可以将其更改为另一个端口。但是,SSL默认是禁用的,所以请继续阅读有关如何启用它的详细信息。

SSL_ENABLE 此指令开启SSL支持。您必须在Apache服务器中安装并正确配置mod_ssl或Apache-SSL。这不是一个布尔配置指令,SSL_ENABLE的可能值有“否”(或“关闭”或“0”[零])、“mod_ssl”或“apache-ssl”。SSL是一种用于在服务器和用户浏览器之间加密通信的有用功能。

ALWAYS_USE_SSL 默认情况下,启用了SSL的Bricolage安装只使用SSL登录Bricolage和在用户个人资料(用户可以更改密码的地方)。用户可以选择在登录时勾选“始终使用SSL”复选框来加密所有通信,但某些安全策略可能要求加密所有通信。在这种情况下,启用此布尔指令以强制加密Bricolage服务器和用户浏览器之间的所有通信。

SSL_CERTIFICATE_KEY_FILE SSL_CERTIFICATE_FILE 这些指令指定SSL密钥的位置。如果您已配置mod_ssl或Apache-SSL,您应该已经熟悉这些文件。它们有助于加密和解密服务器和浏览器之间的请求。如果您在Apache构建过程中使用make certificate生成SSL证书,默认情况下,您的服务器密钥文件将在Apache根目录的conf/ssl.key子目录下为server.key,而服务器公钥文件为server.crt,位于conf/ssl.crt子目录。Bricolage使用这些指令分别设置Apache的SSLCertificateKeyFileSSLCertificateFile指令,以配置Apache的动态配置。

NAME_VHOST 此指令大致对应于Apache的httpd.conf中的NameVirtualHost指令。将其设置为Bricolage Apache服务器监听请求的IP地址。如果您服务器上只有一个IP地址,最简单的方法是将此指令设置为“*”,这将适用于所有IP地址。同样,Bricolage使用此指令在Apache的动态配置中使用。

VHOST_SERVER_NAME 这是运行Bricolage的虚拟主机名。Bricolage需要完整的主机或虚拟主机才能运行,并将使用此指令动态配置虚拟主机。将其设置为“_default_”以使用在您的httpd.conf文件中设置的默认主机名。

MANUAL_APACHE Bricolage使用Apache::ReadConfig配置httpd守护进程。没有httpd.conf包含文件。如果您想通过手动配置来控制您的Bricolage Apache服务器,请启用此布尔指令。它将在您的临时目录(参见TEMP_DIR指令以获取临时目录的位置)的bricolage子目录中生成一个名为bric_httpd.conf的文件。此文件将包含Bricolage用于动态配置Apache的所有Apache配置指令。重启Bricolage将重写此文件,但如果您想使用它并手动编辑它,请将其复制到Bricolage根目录的conf子目录中,禁用MANUAL_APACHE指令,然后更改配置Bricolage的httpd.conf文件的部分

PerlPassEnv BRICOLAGE_ROOT
PerlModule Bric::App::ApacheConfig

Include /usr/local/bricolage/conf/bric_httpd.conf
PerlPassEnv BRICOLAGE_ROOT
PerlModule Bric::App::ApacheStartup

这里 /usr/local/bricolage/conf/bric_httpd.conf 是新生成的bric_httpd.conf文件的完整路径名。您现在可以随意修改此文件。但请确保在每次升级Bricolage后生成一个新的,因为某些指令可能在版本之间发生变化。

数据库配置

配置文件中的下一主要部分用于配置数据库。Bricolage 使用 PostgreSQL 7.3 或更高版本作为其数据存储。连接到该数据库需要几个属性,其中最重要的是用户名和密码。这些都在安装期间设置,但了解它们以防以后有变动是有好处的。

DB_NAME 存储Bricolage数据的数据库名称。安装程序会为您设置此值。默认值“bric”在大多数情况下都适用,但如果您在安装期间输入了不同的名称,它可能已被设置为其他名称,例如,您可能已经有一个名为“bric”的数据库;为什么您想这么做?可能是因为您在同一主机上有多个Bricolage安装。它可能不同的另一个原因是您的ISP为您提供了一个名为他们自己命名约定的单一数据库。无论如何,您不太可能需要更改此指令的值。

DB_USER Bricolage连接到数据库时使用的用户名。您不太可能需要更改此指令,尤其是在Bricolage创建数据库时,它会专门为此用户分配访问适当表、序列等的权限。请注意,出于安全原因,您绝对不应使用PostgreSQL超级用户来指定此指令。

DB_PASS DB_USER 用于连接到PostgreSQL数据库的密码。如果数据库中的密码发生变化,您需要更改此指令。根据您的PostgreSQL服务器安全模型,密码可能无关紧要。例如,如果PostgreSQL在您的Bricolage服务器上运行,并且信任本地用户(默认配置),则它将忽略密码。有关详细信息,请参阅您的PostgreSQL 认证设置(在服务器的pg_hba.conf文件中)或咨询您的PostgreSQL数据库管理员。

DB_HOST 这是您的PostgreSQL服务器的主机名。如果它与您的Bricolage服务器在同一主机上,它可能被注释掉,从而使Bricolage默认为“localhost”。否则,它将是不同的主机名或IP地址。如果您的PostgreSQL服务器移动到不同的主机或其主机名或IP地址发生变化,请更改此设置。

DB_PORT 您的PostgreSQL服务器监听连接的TCP/IP端口。如果您在本地安装了PostgreSQL并且您正在使用Unix套接字而不是TCP/IP进行连接(对于注重安全的环境来说这是一个好主意),则此指令将被注释掉。如果Bricolage应使用默认的PostgreSQL端口5432,则也会被注释掉。否则,如果Bricolage必须通过TCP/IP连接到除5432以外的端口的其他PostgreSQL服务器,则将此指令设置为适当的端口号。

目录设置

Bricolage在其服务器文件系统中存储大量文件,通常位于Bricolage根目录下的命名良好的目录中。有时您可能希望将它们安装到其他位置,可能是因为节省磁盘空间或在不同分区之间分配I/O。如果您想将这些目录中的任何一个移动到安装程序设置的以外的位置,请复制任何现有文件以确保Bricolage可以正确运行。

TEMP_DIR Bricolage在运行过程中会创建几个临时文件,用于其缓存、用户会话等。如果您在安装Bricolage时选择了“多”选项,则此指令将指向Bricolage根目录下的名为tmp的目录。否则,它将指向系统全局的tmp目录。

MASON_COMP_ROOT Bricolage UI 使用 HTML::Mason。所有用于驱动 UI 的组件都位于此目录下,通常位于您的 Bricolage 根目录下的一个子目录,名为 comp。然而,上传到 Bricolage 的媒体文件也会放在这个目录中,这意味着如果您管理大量媒体文档,它可能会变得相当大。因此,将此目录移动到单独的分区可能很有用。

MASON_DATA_ROOT Mason 将 Bricolage UI 组件编译成目标文件并存储在此目录中。在大多数情况下,您无需担心这些文件的位置(默认位于 Bricolage 根目录下的 data 目录),尽管 Bricolage 在将其加载到内存中时将频繁读取这些文件,因此磁盘 I/O 很重要。除了……之外,它不太可能增长太多。

BURN_ROOT 此指令告诉 Bricolage 将格式化模板、目标文件和准备分发的烧录文件存储在哪里。因此,它也可以变得相当大,尤其是如果您发布了或预览了大量文档。Bricolage 从不删除这些文件,以确保您始终有一个 Bricolage 输出的分发文件的规范目录。然而,BURN_ROOT 的默认位置是在由 MASON_DATA_ROOT 指令指定的目录下。如果您遇到磁盘空间问题,您可能希望将此目录移动到另一个分区。

XML::Writer 配置

Bricolage Mason 烧录器负责将文档通过 Mason 格式化模板进行推送。如果您正在编写输出 XML 的模板(我将在稍后的文章中演示编写模板,所以请耐心等待!),您可能希望通过使用一个 XML::Writer 对象来简化事情,以生成 XML。Bricolage 通过提供这些指令来创建一个全局可用的 XML::Writer 对象,以便在所有 Mason 模板中使用。

INCLUDE_XML_WRITER 启用此布尔指令以告诉 Bricolage 创建一个全局可用的 XML::Writer 对象,作为 $writer 对所有 Mason 模板可用。Bricolage 足够智能,可以配置 XML::Writer 对象将输出 XML 到 Mason 的缓冲区,因此您甚至可以在模板中将标准 Mason 输出与 XML::Writer 输出混合。

XML_WRITER_ARGS 使用此指令来指定在启用 INCLUDE_XML_WRITER 时传递给 XML::Writer 构造函数的选项列表。此指令是一个包含要传递给 XML::Writer 的 Perl 表达式的字符串。有关 XML::Writer 的完整参数列表,请参阅其文档。常见参数包括 NEWLINES 以在 XML 元素之间触发输出新行,以及 DATA_INDENT 以通过一定数量的字符缩进嵌套的 XML 元素。

身份验证配置

几个配置指令会影响 Bricolage 身份验证系统的行为和安全。Bricolage 处理自己的身份验证,将密码存储在数据库中以 MD5 加密散列的形式,并在浏览器 cookie 中记录身份验证。在一个注重安全的环镜中,了解这些指令并定期审查其设置是有益的。

AUTH_TTL 此指令指定认证会话的存活时间(以秒为单位)。每当经过认证的用户向服务器发送请求时,已过时间会重置为零。因此,您可以设置 AUTH_TTL 为 3600 秒,以实现一小时的存活时间,只要每次请求之间的时间间隔不超过一小时(但午餐后可能需要重新认证)。此指令在用户从公共工作站访问 Bricolage 并忘记注销的环境中特别有用。默认值 28800(八小时)在生产环境中可能太长了。

AUTH_SECRET Bricolage 将用户认证会话本地存储,并使用存储在浏览器 cookie 中的 MD5 字符串进行加密。MD5 字符串来自浏览器的 IP 子网、过期时间、用户名和最后访问时间。由于此类字符串可能被试图破解系统的人复制,Bricolage 还使用一串随机字符来加盐 MD5 字符串。AUTH_SECRET 是用于此目的的字符串。安装程序为您生成它,但您可能想不时更改它,以保持其随机性并满足您安全策略的要求。在更改 AUTH_SECRET 并重新启动 Bricolage 后,所有用户都需要重新认证。

LOGIN_LENGTH 此指令指定最小用户名长度。每个用户都必须有至少这么多字符的用户名。默认值“5”通常足够,允许默认的“admin”用户名正常工作。

PASSWD_LENGTH 此指令与 LOGIN_LENGTH 指令相对应,但应用于密码。Bricolage 中的密码长度不受限制,但通常最好确保它们都包含最小数量的字符。默认值是“5”。

分发配置

当 Bricolage 预览或发布文档时,它会将它们通过格式化模板(用 Mason、Template Toolkit 或 HTML::Template 编写)推送,并将生成的文件写入磁盘。然后,它会将这些文件分发到用户界面中目的地管理器指定的适当服务器。(后面的文章将解释更多关于 Bricolage 管理界面的内容。)许多运行时配置指令会影响 Bricolage 分发服务器的行为。

ENABLE_DIST 此布尔指令启用 Bricolage 分发。禁用分发的唯一原因是在您设置了单独的分发服务器。据我所知,没有人实际上这样做,尽管 Bricolage 支持它。更受欢迎的是使用 QUEUE_PUBLISH_JOBS 指令来减少 Bricolage 服务器的开销。

DIST_ATTEMPTS Bricolage 通过文件系统复制、FTP、SFTP 或 WebDAV(根据您的目标配置)分发文件。我们都知道失败偶尔会发生。Bricolage 将在分发失败后尝试分发文件,并多次尝试。将 DIST_ATTEMPTS 指令设置为在放弃之前尝试分发文件次数。

PREVIEW_LOCAL 此布尔指令启用 Bricolage 的内部预览服务器。这只是一个在 Bricolage UI 中知道要提供预览内容而不是 UI 的 URI。这对于评估 Bricolage 非常有用,但请确保在生产环境中禁用它,尤其是如果您的前端服务器需要提供除了静态 HTML 以外的内容。建议的做法是设置一个与生产服务器完全相同的单独预览服务器,并配置一个目的地来分发和将预览重定向到该服务器。

PREVIEW_MASON 当启用 PREVIEW_LOCAL 指令时,如果生成的内容包括 Mason 调用,您可以启用此布尔指令,使 Bricolage 的内部预览服务器在提供文档之前评估 Mason 代码。

DEF_MEDIA_TYPE 此字符串指令标识 Bricolage 无法确定媒体类型的文件默认媒体类型(也称为“MIME 类型”)。默认值“text/html”涵盖了 Web 内容管理系统中的许多典型文件,例如 .php.jsp 文件。要为 Bricolage 识别添加新类型,请使用 UI 中的媒体类型管理器。

ENABLE_SFTP_MOVER 默认情况下,Bricolage 不支持通过安全 FTP(SFTP)进行分发。如果需要,安装所需的 Net::SFTP 模块,启用此指令,然后重新启动 Bricolage。

SFTP_HOME 如果您已启用 SFTP 分发,请使用此指令指定 SFTP 要使用的家目录,特别是如果您想使用公钥和私钥。有关详细信息,请参阅 Net::SFTP 文档。

ENABLE_SFTP_V2 启用此指令以优先支持 SFTP 分发的 SSH2。您还需要从 CPAN 安装更多 Perl 模块。请参阅 Net::SFTP 文档以获取详细信息。

SFTP_MOVER_CIPHER Net::SFTP 使用 Net::SSH::Perl 模块来处理 SSH 的一侧。此模块支持多种加密密钥。如果您偏好一种,请通过此指令指定。

ENABLE_WEBDAV_MOVER Bricolage 还支持通过 WebDAV 进行分发,这是一种通过 HTTP 协议分发文档的标准。DAV,也称为 DAV,在多个 Web 服务器中都有支持,包括微软的 IIS 和 Apache 2。如果您想通过 DAV 将文档文件分发到您的生产服务器或服务器,请安装 HTTP::DAV 模块,启用此布尔指令并重新启动 Bricolage。

QUEUE_PUBLISH_JOBS 默认情况下,当用户安排文档立即发布时,Bricolage 服务器将立即执行分发。如果用户发布大量文档或您一次批量发布网站的大量内容,这可能会真正减慢其他用户的 Bricolage UI。即使您已经安排在未来的日期和时间批量发布文档,这也同样适用,因为默认的 bric_dist_mon 脚本的工作方式是刺激 Bricolage 服务器分发文档。

解决此问题的方法是启用 QUEUE_PUBLISH_JOBS 布尔指令,然后使用 bric_queued 程序而不是 bric_dist_mon。启用 QUEUE_PUBLISH_JOBS 后,Bricolage 服务器将 永不 烧录和分发文档,即使用户安排它们在 昨天 发布也是如此。相反,bric_queued 会自行处理所有烧录和分发,而不会让 Bricolage 服务器在任务上消耗资源。使用这种方法时,请确保从相当积极的 cron 作业中运行 bric_queued

FTP_UNLINK_BEFORE_MOVE 当 Bricolage 通过 FTP 分发文件时,它以临时文件名上传它们,然后,在传输完成后,将其重命名为最终名称。但是,如果已存在文件的早期版本,重命名可能会失败。(这取决于您的 FTP 服务器,但微软的 IIS 是导致我们添加此功能的服务器。)在这种情况下,启用此指令,Bricolage 将在重命名临时文件之前删除任何现有的文件实例。

警报配置

Bricolage 有一个界面用于在它记录满足某些标准的事件时发送警报电子邮件。在 Bricolage 可以发送警报之前,需要了解一些事情。

SMTP_SERVER Bricolage 使用 SMTP 服务器发送警报电子邮件。此指令的默认值“localhost”,如果您使用具有本地运行 sendmail(或其他 SMTP 服务器)的 Unix 系统,则可以很好地使用。如果您的组织有一个专用的 SMTP 服务器,或者您的 Bricolage 主机没有自己的,则更改此指令的值。

ALERT_FROM 将此指令设置为您希望出现在警报电子邮件“发件人”标题中的电子邮件地址。我通常将其设置为类似“Bricolage 管理员 <[email protected]>”的内容,但请使用适合您组织的任何内容。如果您的用户倾向于回复警报电子邮件,您可能希望设置一个特殊的 ALERT_FROM 电子邮件地址,该地址具有自动回复,以便让用户知道回复将不会被阅读。

ALERT_TO_METH 此字符串指令指示在电子邮件警报中指定警报收件人时要使用的标题。可能的值是“收件人”和“密送”。

用户界面配置

某些配置指令允许您以微妙的方式影响 Bricolage 用户界面的工作方式。如果您尚未大量使用 Bricolage 浏览器界面,那么其中一些指令现在可能不会很有意义。当您在使用 Bricolage 界面并希望使其更符合自己的正确性概念时,请随时回来再次查看。

FULL_SEARCH 默认情况下,当您在 Bricolage 管理界面中搜索对象,或在资产库中搜索故事、媒体或模板时,Bricolage UI 应用程序会在您的搜索字符串末尾附加通配符。因此,如果您搜索“foo”,搜索将返回所有以“foo”开头的记录的结果。但是,如果您将 FULL_SEARCH 布尔指令设置为真值,Bricolage UI 中的所有搜索都将变为子字符串搜索。因此,搜索“foo”将返回所有记录中“foo”出现的位置的记录。

此方法的缺点是它阻止 PostgreSQL 使用其数据库索引。原则上,这仅当您在 Bricolage 中有大量对象时才是一个问题。例如,如果您有 100,000 个故事在 Bricolage 中,您将注意到,启用 FULL_SEARCH 时故事搜索的速度会明显慢于禁用时。如果您预计要管理大量文档,请将其禁用。您的用户可以始终手动在搜索查询的开头添加通配符(“%”),如果他们想要进行子字符串搜索。

ALLOW_WORKFLOW_TRANSFER Bricolage 工作流由一系列工作台组成。通常,工作流有自己的工作台,但工作台可以出现在多个工作流中。在这种情况下,在一个工作流中将文档移动到这样一个共享工作台后,将可以在另一个工作流中的相同工作台上看到该文档。这对于管理跨工作流中的常见任务(如翻译或法律审查)非常有用。结果是,默认情况下,放置在一个工作台上的文档不能从该工作台转移到不同工作流中的其他工作台。用户只能将其移动到它原始工作流中的其他工作台。将 ALLOW_WORKFLOW_TRANSFER 布尔指令设置为真值以取消此约束,这样放置在一个工作台上的文档就可以从该工作台移动到该工作台所在的另一个工作流中的其他工作台。

ALLOW_ALL_SITES_CX 在 Bricolage 中管理多个站点时,用户界面将显示一个“站点上下文”选择列表。仅显示所选站点的流程。如果您想允许用户查看他们有权访问的所有站点的所有流程,请将此布尔指令设置为真值,以便在“站点上下文”选择列表中添加“所有站点”选项。但请小心!如果您有权访问大量站点,选择此选项时您将面临令人困惑的工作流程数量!

YEAR_SPAN_BEFORE YEAR_SPAN_AFTER 在Bricolage中输入日期时,用户界面提供了选择日、月和年的下拉列表。默认情况下,“年份”下拉列表中可用的年份限制为当前年份前后十年。如果您需要更多年份,请将这些指令设置为当前值或当前年份前后年数。例如,如果您使用Bricolage管理历史照片网站,可能需要选择超过100年的年份。在这种情况下,将YEAR_SPAN_BEFORE设置为“100”。另一方面,科幻小说评论网站可能需要远在未来的年份。在这种情况下,将YEAR_SPAN_AFTER设置为一个适当高的数字。

DEFAULT_FILENAME DEFAULT_FILE_EXT 为故事文档生成的文件名基于输出频道设置。用户界面在输出频道配置文件中提供这些设置的默认值。默认文件名是“index”,默认文件名后缀是“html”。如果您要将内容输出到IIS服务器,例如,您可能希望将DEFAULT_FILENAME指令设置为“default”,将DEFAULT_FILE_EXT指令设置为“htm”。不过,这都不是大问题,因为您可以在用户界面中实际设置每个输出所需的价值。这些只是显示的默认值,可以作为指令设置,以便在懒惰的情况下进行设置。

ENABLE_OC_ASSET_ASSOCIATION 文档模型与Bricolage中的输出频道相关联。创建基于模型的新文档时,它将自动具有模型定义的输出频道关联。如果您希望用户能够更改关联——比如将模型定义的输出频道设置为可选关联到基于该模型的文档——请将此指令设置为真值。然而,如果输出频道关联的额外复杂性只会让您的用户困惑,请将此指令设置为假值以移除更改文档输出频道关联的用户界面。

ENABLE_CATEGORY_BROWSER 在Bricolage中编辑故事文档时,您将看到所有具有读取权限访问的类别的下拉列表,以允许您选择将故事添加到新类别。然而,大多数情况下,您只会将故事添加到一两个类别,然后永远不会更改这些设置。因此,如果您在Bricolage安装中有许多类别(实际上,有些生产系统有超过2000个类别),每次编辑故事文档时都加载它们是浪费的,因为您永远不会再次更改它们。

在这种情况下,将布尔值ENABLE_CATEGORY_BROWSER指令设置为真值并重新启动Bricolage。这将更改故事配置文件,以提供到类别浏览器的链接,允许您搜索要关联到故事的一个或多个类别。现在,不仅您每次访问故事配置文件(对于内容生产者,这是Bricolage UI中最常访问的页面)时不再加载所有类别,而且您只需在类别浏览器中搜索即可。我强烈建议每位Bricolage管理员将此指令设置为真值。

文档管理配置

这些指令与Bricolage如何管理文档相关。

PUBLISH_RELATED_ASSETS Bricolage 允许您在文档之间创建关系。这可以指向“相关故事”或向文档添加图片等。默认情况下,当您发布文档时,Bricolage 也会尝试发布任何相关文档。这有助于防止 404 错误或损坏的图片问题。在某些情况下,您可能不希望这种行为,因此将 PUBLISH_RELATED_ASSETS 布尔指令设置为 false 值。

STORY_URI_WITH_FILENAME Bricolage 中的故事文档必须具有唯一的 URI。URI 包含故事的类别,以及可选的其他故事部分,例如封面日期和缩略名(故事的单词描述)。然而,它们不包括文件名。这遵循 W3C 的 Tim Berners-Lee 的《“酷 URI 不变”,http://www.w3.org/Provider/Style/URI.html》。想法是故事有一个目录 URI,在该目录中可能有几个故事形式,具有不同的文件名,例如“index.html”用于 HTML,“rdf.xml”用于 RDF,以及“index.pdf”用于 PDF。

然而,一些组织的网站政策要求在 URI 中包含文件名。这样,不同的文档可以放在同一目录下。一个常见的例子可能是一个“关于我们”目录,其中包含单独的“/about/index.html”、“/about/contact.html”和“/about/copyright.html”文档。这样的 URI 在 Bricolage 中默认情况下是不可行的,因为它要求所有故事都具有唯一的 URI,因为每个故事都会有相同的 URI,即“/about”。为了解决这个问题,将 STORY_URI_WITH_FILENAME 布尔指令设置为 true 值。从那时起,所有故事都将包括其文件名在其 URI 中。但是请注意!现有故事不会更改其 URI。在开始使用 Bricolage 时决定如何设置此指令,并且永远不要更改它。

ALLOW_SLUGLESS_NONFIXED 故事文档的 URI 由每个输出通道上指定的模式确定。每个输出通道中有两种不同的 URI 格式,一种是用于固定文档,另一种是用于非固定文档。非固定文档通常在其 URI 中使用封面日期的部分,而固定 URI 不使用。每个文档模型都有一个标志设置,表示基于该模型的文档是否将使用固定非固定 URI 模式。结果是,对于非固定故事,您可能会有这样的 URI,如“/reviews/books/2004/12/23/princess_bride”。在这里,URI 格式包括缩略名,这是故事的单词摘要(此示例中的“princess_bride”部分)。然而,缩略名在故事中是可选的,即使在非固定故事中也是如此。如果您想强制所有非固定故事包括缩略名以生成更有意义的 URI,请将此布尔指令设置为 true 值。

AUTOGENERATE_SLUG 此布尔指令补充了 ALLOW_SLUGLESS_NONFIXED 指令。如果您想保持缩略名可选但生成一个当用户忘记输入时,请将 AUTOGENERATE_SLUG 设置为 true。这将导致 Bricolage 根据故事标题生成一个简单的缩略名。例如,标题为“Essential Perl 6”的故事将为其生成缩略名“essential_perl_6”。

Apache::SizeLimit 配置

Brickolage是一个大型应用,它包含了大量的CPAN模块,以及自己的超过120,000行代码。当你启动它时,其进程可能会占用30MB或更多的内存。通常这不会成为问题,因为Apache会在子进程之间共享这部分内存。然而,随着每个进程处理请求,其大小可能会独立于其他进程而增加。如果你正在执行资源密集型的活动,例如一次性发布大量文档,处理请求的进程可能会变得相当大。由于Perl(以及扩展的mod_perl)不会将内存返回给系统,这可能会导致你看起来有一个内存泄漏。

解决这个问题的方法是使用与mod_perl一起分发的Apache::SizeLimit模块,定期检查你的mod_perl进程,并在它们超过一定大小时杀死它们。Brickolage集成了对Apache::SizeLimit的支持,这些指令可以快速启用和配置。

CHECK_PROCESS_SIZE 这个布尔指令打开Apache::SizeLimit支持。在你将其设置为true值并重新启动Brickolage之后,它将使用以下指令中的设置来决定检查进程的频率以及当它们变得过大时如何杀死它们。

MAX_PROCESS_SIZE 这是进程在Apache::SizeLimit杀死它们之前可以达到的最大大小(字节)。

CHECK_FREQUENCY 这个指令决定了Apache::SizeLimit将多久检查一次你的mod_perl进程的大小。如果你将其设置为“5”,它将在处理每个第五个请求后检查一个进程。默认值为“1”。

MIN_SHARE_SIZE 这个指令表示进程必须使用的最小共享内存量,以避免被认为是终止的候选者。请参阅Apache::SizeLimit文档以获取更多信息。默认值为“0”,意味着所有Apache mod_perl进程的大小都会被检查。

MAX_UNSHARED_SIZE 这个指令为进程可能消耗的非共享内存设置了上限,以避免成为终止的候选者。如果你发现Apache::SizeLimit在进程主要使用共享内存时终止进程,可以使用这个指令来调整你的设置。默认值为“0”。

虚拟FTP服务器配置

Brickolage通过格式化模板来推送故事文档,以在预览或发布时生成输出。格式化模板可以使用Mason、Template Toolkit或HTML::Template。如果你有很多不同类型的故事文档,或者只是故事文档的元素,你可能会得到很多模板来管理。在浏览器界面的textarea字段中编辑模板可能会很痛苦。一个更好的方法是使用Brickolage虚拟FTP服务器,它通过FTP提供对所有Brickolage模板的访问。如果你的密码安全性不是严重考虑的问题(因为FTP会明文发送密码,也许你在一个防火墙后面工作或通过虚拟私人网络),启用虚拟FTP服务器并使用你最喜欢的FTP支持编辑器(Emacs、Vim、HomeSite等)编辑Brickolage模板。以下是方法。

ENABLE_FTP_SERVER 这个布尔指令启用了虚拟FTP服务器。将其设置为true值,调整其他FTP指令,重新启动Brickolage,启动bric_ftpd应用程序,然后开始工作!只需连接到由FTP_PORT指令指定的端口,使用你的Brickolage用户名和密码登录,你就可以按站点、输出频道和类别浏览模板。

FTP_PORT 此指令指定Bricolage虚拟FTP服务器监听的TCP/IP端口。默认为“2121”。

FTP_ADDRESS 如果您的托管主机有多个IP地址,请在此处指定其中一个,以便虚拟FTP服务器只在该IP地址上监听连接。默认情况下,FTP服务器将在托管主机的所有IP地址上监听。

FTP_LOG 虚拟FTP服务器日志的位置。默认情况下,它将在Bricolage根目录的log子目录中。

FTP_PID_FILE 指定Bricolage FTP服务器的PID文件位置。bric_ftpd将使用此文件记录启动时的服务器PID,并在执行bric_ftpd -k时停止服务器。默认情况下,将PID文件存储在Bricolage根目录的log子目录中。

FTP_DEPLOY_ON_UPLOAD 从Bricolage 1.8版本开始,Bricolage FTP服务器将在您上传模板时将其保存到您的私有沙盒中。这意味着它们将供您检出,出现在UI中的个人工作区中,并在您(只有您)预览使用它们的文章时执行。要检查并部署模板以在其他用户预览和发布文档时在生产中使用,只需在上传文件名末尾附加字符串.deploy,Bricolage将完成剩余的工作。

在版本1.8.0之前,Bricolage虚拟FTP服务器在每次上传时都会检出、更新、检入和部署模板。如果出于某种原因您更喜欢这种方法(坦白说,我无法想象为什么任何人会!),将FTP_DEPLOY_ON_UPLOAD指令设置为真值并重新启动bric_ftpd

FTP_DEBUG 如果由于某种原因虚拟FTP服务器未按预期工作,请将此布尔指令设置为真值并重新启动bric_ftpd。然后跟踪FTP日志(由FTP_LOG指令指定),以诊断问题。

预加载配置

由于Bricolage运行在Apache 1.3上,父进程在派生任何子进程之前会在启动时加载所有代码。这是内存高效的,因为大多数现代操作系统使用基于写时复制的派生设计。这意味着子进程在写入该内存之前都与父进程共享内存,此时内核将复制该内存到子进程。

在加载大量代码时,子进程不会覆盖太多代码。在启动时将您认为所需的尽可能多的代码加载到父进程中是非常有利的,以防止每个子进程自己加载它并占用更多内存。这些指令可以帮助您做到这一点。

PERL_LOADER 此字符串指令可以是您喜欢的任何Perl代码,只要它位于bricolage.conf文件中的一行上。Bricolage将在启动时在Mason burner使用的命名空间中执行此代码。这对于加载模板使用的Perl模块非常有用,这样您就不需要在每个子进程中加载它们。默认值加载Apache::Util,它包含许多有用的HTML输出实用程序函数,以及Bric::Util::Burner,它导出了一些常量,您可以在模板中使用这些常量来告诉正在执行哪种类型的烧录(预览或发布)。您可能还想在这里加载的其他常见模块包括用于HTML和RSS输出的CGI.pmXML::RSS。您实际上可以在这里加载任何内容。

LOAD_LANGUAGES Bricolage支持多种语言的本地化,包括德语、葡萄牙语、意大利语、粤语、普通话和俄语。本地化库是服务器启动时加载的Perl模块。为了最有效地使用内存,通过指定适当的语言代码(例如,“en”表示英语,“pt_pt”表示葡萄牙语,“de_de”表示德语等)以空格分隔的列表通过LOAD_LANGUAGES指令来加载你最常使用的语言。

LOAD_CHAR_SETS 此指令的功能与LOAD_LANGUAGES指令类似,但它加载的是转换为和从UTF-8转换的库。Bricolage允许用户在访问Bricolage UI时使用不同的字符集,包括ISO-8859-1、ISO-8859-2、Big5、ShiftJIS、GB-2312等。为了节省内存开销,请在LOAD_CHAR_SETS指令中以空格分隔的列表中指定您预计用户在日常使用Bricolage时将需要的每个字符集。

缩略图配置

从Bricolage 1.8.0版本开始,Bricolage可以生成上传的媒体文档图像文件的缩略图版本。您需要做的就是从CPAN(包括您使用的图像格式的必要库——有关详细信息,请参阅Imager的README文件)安装Imager模块,并通过这些指令配置缩略图支持。

USE_THUMBNAILS 将此布尔指令设置为true值并重新启动Bricolage,以便为Bricolage中的所有图像文件生成缩略图。当然,您必须已安装Imager。您还可能想要考虑在comp/media/htmlarea目录下安装特定于特定类型非图像文件的媒体类型图标。有关使用哪些图标文件以及如何使用copy_gnome_icons脚本来安装它们的信息,请参阅Bricolage源代码中的README文件和脚本。

THUMBNAIL_SIZE 将此指令设置为缩略图的像素最大尺寸。Bricolage将使用此数字来约束缩略图的大小,使其最大尺寸不超过此数字。例如,如果THUMBNAIL_SIZE具有默认值“75”,您上传一个150 x 100像素的图像文件,Bricolage将生成一个75 x 50像素的缩略图。

htmlArea配置

Bricolage 1.8.0添加了对WYSIWYG(所见即所得)编辑的支持,通过htmlArea JavaScript编辑器,尽管此功能默认禁用。要启用它,下载并安装htmlArea 3.0(截至本文撰写时为测试版),并将其安装到Bricolage根目录下的comp/media/htmlarea目录。然后通过这些指令进行配置并重新启动Bricolage。然后您可以在文档元素定义中指定“WYSIWYG”字段类型,内容编辑员可以在编辑这些字段的内容时利用htmlArea的WYSIWYG功能。

ENABLE_HTMLAREA 将此布尔指令设置为true值以启用Bricolage的htmlArea支持。您必须在Bricolage根目录下的comp/media/htmlarea目录中安装htmlArea。

HTMLAREA_TOOLBAR htmlArea编辑器在其界面中提供了许多WYSIWYG功能作为控件(按钮)。控件处理复制、粘贴、斜体、粗体、链接等任务。默认情况下,Bricolage仅启用这些控件的一个子集。该子集不包括布局类型功能,例如字体选择和颜色、行对齐等。目的是只为用户提供易于添加语义上有意义的标记的工具,而不是布局标记,以便将内容与表示独立。如果您确实需要允许用户使用十二种不同类型在十二种颜色中,您可以通过HTMLAREA_TOOLBAR指令启用htmlArea的这些控件。指令的值是一个逗号分隔的单引号字符串列表,两端有方括号。请参阅htmlArea文档中的支持控件列表

接下来

现在您已经拥有了所有配置Bricolage操作所需的全部信息。我的下一篇文章将探讨在Bricolage中定义文档模型的细节。

标签

反馈

这篇文章有什么问题吗?请通过在GitHub上创建问题或拉取请求来帮助我们。