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 服务器配置 之外额外使用,它只暴露 index PHP 文件和静态资产文件。
当前活动的 CMS 主题通常从数据库中获取。 生产环境中可能出现的一个问题是,当数据库连接失败时,将显示演示主题或通用错误屏幕。 为解决此问题,请务必在基于文件的配置中设置回退主题。
后备活动主题设置在 config/cms.php 文件中,并从 ACTIVE_THEME 环境变量加载。请检查确保这被设置为一个有效的主题,因为在没有数据库的情况下将使用此值。
ACTIVE_THEME=my-themeOctober CMS 的独特之处之一在于它能够在生产环境中安全地更新网站,例如,对 HTML 进行细微调整或快速添加新页面。这对于小型应用程序非常有用,而大型应用程序可能对生产环境的变更更为严格。
要禁用生产环境更改,您可以使用以下方法之一移除编辑器。
这也是一个好主意,将应用和主题目录设置为只读。
:::
或者,启用安全模式以在生产环境中保持编辑器处于活动状态。安全模式允许更新 HTML、CSS 和其他文件,但会阻止更新 PHP 代码部分以及任何可能不安全的 Twig 函数。