入门须知

欢迎使用 XenForo 2!

本文档旨在帮助您开始 XenForo 2.0 开发。 本文档的前提条件假设您已熟悉 PHP 和 MySQL。 并非一定要拥有 XenForo 以前版本的经验,但这将是一个优势。

在接下来的页面中,我们将向您简要介绍如何设置本地服务器,准备安装,全新安装 XenForo 2.0 以及运行 XF2 开发的一些概念。

开发人员有什麽新功能?

尽管 XenForo 2.0 为您的论坛及其成员增加了许多改进,但我们仍投入了大量精力来改进 XenForo 的底层框架。 您可以在以下帖子中阅读更多关于这些更改的更多信息:

入门须知

XF 开发入门很容易。 您只需要下载文件,将它们上传到 Web 服务器并触发安装即可。

如果你还没有 Web 服务器,不用担心,你可以在本地端电脑上设置一个。

下载 XF 2.0

要下载 XF 2.0,只需访问 客户区 并正常登录即可。 找到正确的许可证,然后単击 "下载 XenForo" 链接。 选择您要下载的版本,套件类型并接受许可协议。 最后,単击下载按钮以下载文件。

XF 2.0 环境要求

从 XF 1.5 开始,运行 XF 2.0 的环境要求已更改。建议的环境要求如下:

  • PHP: 5.4.0+ 以上
  • MySQL: 5.5+ 以上
  • PHP 扩充套件: MySQLi,GD (支持 JPEG),PCRE,SPL,SimpleXML,DOM,JSON,iconv,ctype,cURL

下载环境要求测试脚本。

设置本地服务器

设置用于开发的本地 Web 服务器通常更方便。 通常有两种方法可以解决此问题:

  1. 自己安装 Apache(或 nginx ),MySQL(或 MariaDB )和 PHP。
  2. 安装预构建的虚拟机
  3. 安装预构建的 Stack。

自己进行设置比较复杂,但往往可以让您更好地控制所有设置。

预先构建的虚拟机

网络上有多种预构建的虚拟机,这些虚拟机的优势在于,将所需的所有服务以整齐的方式打包到一个地方即可运行 XenForo,而不必直接在自己的计算机上安装和维护它们。

一些 XenForo 开发人员使用名为 Scotch Box 的虚拟机,它包含了运行 XenForo 所需的一切,无需任何配置。 我们有逐步安装和运行 XenForo 开发服务器的 逐步指南 - 您可以通过运行一些命令,在短短几分锺内就使虚拟网络和数据库服务器正常运行。

安装用于 XenForo 的 Scotch Box 虚拟机

预构建 Stack

那里有许多预构建 Stack,它们在功能集,性能和可靠性方面可能会有所不同。Bitnami 维护许多 Stack,包括分别用于 Linux,Mac 和 Windows 的 LAMP, MAMPWAMP Stacks。 它们都包括对 Apache,MySQL 和 PHP 的完全配置安装,并包括用于管理 MySQL 的 PhPMyAdmin。

上传

要安装 XF 2.0,您只需要提取从客户区下载的 ZIP 文件并上传其中的一些文件和目录。

解压缩后,您会看到一个名为 upload 的目录。 您需要进入该目录,然后将文件和目录上载到你服务器的 Web 根目录。 这通常会在一个名为 public_html, htdocswww 的目录。

创建 src/config.php

如果使用 CLI 安装 XF 2.0,则需要手动创建 config.php 文件。 要做到这一点,请在您上载到服务器的 XF 2.0 文件中输入 src 目录。 创建一个名为 config.php 的新文件,并填入你的 MySQL 服务器的主机,端口,用户名,密码和数据库名称。

Note

确保在 src 目录中创建配置文件。 该 library 目录仅用于旧版目的。

完成后,它应如下所示:

<?php

$config['db']['host'] = 'localhost';
$config['db']['port'] = '3306';
$config['db']['username'] = 'root';
$config['db']['password'] = 'mypassword';
$config['db']['dbname'] = 'xf2';

您现在可以安装了!

如果您使用的是 MySQL 5.5 及以上版本,并且希望获得完整的 unicode 支持(例如 emoji 表情),则还应该在安装前添加以下内容:

$config['fullUnicode'] = true;

关于文件权限说明

XenForo 在运行时需要将文件写入特定位置。 在正常操作中,这仅限于 datainternal_data 目录(及其子目录)。 这些文件写入将由附件上传之类的东西触发,因此它们通常将由用户 PHP 象在 Web 服务器中一样运行来触发。 因此,必须确保在这些目录中设置了权限,以便 Web 伺务器可以对其进行写入。 您必须先运行此操作,然后才能开始安装。

当涉及到 CLI 时,这种情况变得更加棘手,因为现在可能有两个用户需要能够写入文件。 因此,采取措施避免写入这些文件的问题很重要。 这里有几个选择。

  1. 在 CLI 和 Web 服务器使用相同的用户。 这可以采取以下形式:在运行任何安装或升级命令(或任何其他将写入文件的命令)之前切换到 Web 服务器用户。
  2. 如果可用,请考虑将 ACL 应用于 datainternal_data 目录中。 该概念因操作系统和配置而异,但 此处 描述的是总体思路。
  3. 对 PHP 写入的内容强制授予特定的权限。 这可以通过 src / config.php 文件中帯有如下一行的代码来完成: $config['chmodWritableValue'] = 0666; 这种方法对于开发目的来说可能是最简単的。

请注意,如果您正在开发附加组件,则可能会有其他需要由 CLI 和 Web 服务器用户写入的位置。 值得注意的是,这包括附加组件中的 _output 目录。 在这种情况下,以您的 CLI 用户身分运行 Web 服务器可能会减少摩擦。 如果您采用其他任何方法,则可能需要确保您的 Web 服务器可以写入整个 XenForo 安装;在生产中不建议这样做。

安装

当前安装 XF 2.0 的方式是通过新的 CLI 系统。 许多开发过程只能使用 CLI 来进行,所以我们就来使用它来安装 XF 2.0。 要运行这些命令,您将需要访问 终端/shell,使用 php CLI 命令和当前工作目录应该是您上传 XF 2.0 文件的根目录。

Warning

为消除文件权限问题,我们建议以与 PHP 在 web 服务器上运行的相同用户来运行安装程序。 如果不这样做,则应该采取措施确保权限设置正确。 有关更多详细信息,请参见上面的章节。

要开始安装,只需输入以下命令:

Terminal

$ php cmd.php xf:install

您会被问到许多问题,例如初始管理员用户名和密码,板块标题。 此后,将导入 XF 2.0 数据库表和主要的数据。

XF 2.0 现在已安装完成!

重新安装

有时可能需要重新安装 XF2。 在不支持升级的 "开发预览" 阶段尤其如此。 如果准备好重新安装,请按照上面的 下载 XF 2.0 部分下载新文件(如果适用)。 一般来说,应该可以合并和复盖现有文件。 如果要进行完全干净的重新安装,则可能需要保存 config.php 文件的副本,或者按照 创建 src/config.php 中的说明重新创建它。

在上传新文件之前,您应该删除 datainternal_data 目录的内容。

最后,您只需要开始安装即可,与上面类似。 您将需要使用此 --clear 选项来删除所有现有的 xf_ 资料表。

Terminal

$ php cmd.php xf:install --clear

重新安装完成后,您现在应该可以重新登录了。

如果您正在开发附加组件,并且选择保留或备份现有 src/addons 目录,则可以使用 导入开发输出 命令来还原附加组件数据。

Warning

如果选择备份和还原 src/addons 目录,请小心。 其中的 XF 目录包含 XF 主要的数据,因此不应从备份中还原,以确保您始终拥有最新版本的文件。

以这种方式运行重新安装是破坏性的操作,它将删除您创建的所有数据。 此外,请记住,仅帯有 xf_ 前缀的资料表才会被清除。 这也是建议所有资料表(甚至是附加组件)都应该以 xf_ 为前缀的一个重要原因。

验证文件完整性

当您安装 XF2 时,我们会在安装过程中运行文件完整性检查。 如有必要,并且您无法通过 Admin CP 中的页面运行检查,则可以运行 CLI 命令来运行该检查。

Terminal

$ php cmd.php xf:file-check [addon_id]

如果您希望对所有文件(包括 XF 本身)进行文件运行健康检查,只需省略 [addon_id] 参数即可。 仅对于 XF,仅使用 XF 代替该参数,或者对于特定的附加组件,只需指定您要检查的附加组件 ID。

Add-on 管理命令

除了上述用于安装 XF2 的命令之外,还有一些用于管理附加组件的命令。

安装

Terminal

$ php cmd.php xf:addon-install [addon_id]

安装指定的附加组件,只要它是可用的,并通过文件运行健康检查。 如果有可用的开发输出,您将被要求确认是否要将其用于安装,而不是导出的数据 XML 文件。

升级

Terminal

$ php cmd.php xf:addon-upgrade [addon_id]

只要指定的附加组件是可升级的,就对其进行升级,并通过文件运行健康检查。 可以选择从开发输出中进行导入。

重建

Terminal

$ php cmd.php xf:addon-rebuild [addon_id]

只要指定的附加组件是可重建的,就为其重建主要的数据,并通过文件运行健康检查。 这将重新导入附加组件的数据。 可以选择性地运行从开发输出中导入。

卸载

Terminal

$ php cmd.php xf:addon-uninstall [addon_id]

卸载指定的附加组件,只要它是不可卸载的。