October CMS 的所有配置文件都存储在 config 目录中。每个配置参数都有内联文档。
October CMS 的许多参数可以使用环境变量进行配置。环境变量可以在服务器级别设置,也可以为 Web 应用程序的虚拟主机定义。
October CMS 使用 DotEnv 库 以便轻松管理环境变量。
环境变量也可以在安装脚本自动创建的项目根目录中的 .env 文件中定义。在全新安装的 October CMS 中,基础目录包含一个 .env.example 文件,其中提供了本地环境的典型值。
例如,数据库连接可以通过这些变量来指定:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=在 .env 文件中的任何变量都可以被服务器或虚拟主机级别上定义的外部环境变量覆盖。
配置值按如下顺序加载:
绝不要将
.env文件添加到版本控制。如果入侵者获得了对仓库的访问权限,这会带来安全风险。
如果配置文件必须基于当前应用程序环境(例如暂存或生产)加载,您可以使用服务器级别的 APP_ENV 变量。Apache 配置示例:
SetEnv APP_ENV "staging"当 APP_ENV 变量被定义,平台会尝试加载一个后缀与环境名称匹配的 .env 文件。例如 .env.staging。如果该文件不存在,则不会有任何错误。如果 .env.staging 和 .env 文件都存在,则 .env 文件会被完全忽略。
当使用缓存或优化配置时,APP_CONFIG_CACHE 值可以在 .env 文件中指定,以更改缓存文件路径。这将确保每个环境都收到正确的缓存配置值。
APP_CONFIG_CACHE=storage/framework/config-staging.php生产环境中,有几个重要且常用的配置参数需要设置。
debug 参数可以在 config/app.php 文件中找到, 并且在生产环境中应该禁用. 默认情况下, 该值从 APP_DEBUG 环境变量中加载. 安装后, 调试模式在 .env 文件中启用.
APP_DEBUG=false启用后,调试模式会在错误发生时显示详细的错误消息,以及其他调试功能。尽管在开发过程中很有用,但在实际生产站点上必须禁用调试模式。它可以防止潜在的敏感信息向网站访问者显示。
调试模式启用时提供的功能:
October CMS 提供内置的 跨站请求伪造 防护机制。当启用 CSRF 防护时,October CMS 会在用户会话中存储一个随机令牌。该 表单开始标签 和 该 表单令牌标签 会向表单添加一个带有令牌值的隐藏字段。对于所有 POST、PUT 或 DELETE 请求,平台会检查提交的令牌值是否与用户会话中存储的令牌值匹配。
CSRF 防护默认启用。参数 enable_csrf_protection 可以在 config/system.php 文件中找到。默认情况下,该值从 ENABLE_CSRF 环境变量加载。
一个 公共文件夹 建议在生产环境中使用,以将内部文件与公共文件隔离。这是在 Web 服务器配置 之外额外增加的一层冗余,它只暴露索引 PHP 文件和静态资源文件。
这 活跃的 CMS 主题 通常来源于数据库。在生产环境中可能出现的一个问题是,当数据库连接失败时,会转而显示演示主题或一个通用错误屏幕。为了解决这个问题,务必在基于文件的配置中设置一个备用主题。
备用活动主题设置在 config/cms.php 文件中,并从 ACTIVE_THEME 环境变量加载。请检查确保这已设置为一个有效主题,因为在没有数据库的情况下将使用此值。
ACTIVE_THEME=my-themeOctober CMS 的独特之处之一是它能够在生产环境中安全地进行网站更新,例如,对 HTML 进行细微调整或快速添加新页面。这对于小型应用程序来说非常棒,而大型应用程序可能对生产环境的更改更为严格。
要禁用生产环境更改,您可以使用以下方法之一移除编辑器。
最好也将应用和主题目录设置为只读。
或者,启用安全模式以使编辑器在生产环境中保持活动。安全模式允许更新 HTML、CSS 和其他文件,但会阻止更新 PHP 代码部分以及任何可能不安全的 Twig 函数。