在 ServBay 本地开发环境中安装和配置 Drupal
概述
Drupal 是一个功能强大、灵活且可扩展的开源内容管理系统 (CMS),广泛应用于构建各种类型的网站,从个人博客、小型企业网站到大型企业门户和复杂的 Web 应用。它提供了丰富的内容管理工具、精细的用户权限控制和强大的模块化架构,适合需要高度定制和高性能的开发者。
ServBay 是一款专为 macOS 设计的本地 Web 开发环境工具,集成了主流的 Web 服务器(如 Caddy, Nginx)、多种编程语言运行时(如 PHP, Node.js, Python, Go, Java 等)、数据库(如 MySQL, PostgreSQL, MongoDB, Redis)以及 Composer, npm 等开发者工具。在 ServBay 环境中安装和配置 Drupal,可以为您提供一个稳定、便捷且功能齐全的本地开发平台。
本文将详细介绍如何在 ServBay 环境中安装和配置 Drupal,帮助您快速搭建本地 Drupal 开发环境。
前提条件
在开始安装 Drupal 之前,请确保满足以下条件:
- ServBay 已安装并运行: 确保您已经在 macOS 上成功安装了 ServBay,并且 ServBay 正在正常运行。
- 基本的 ServBay 使用知识: 了解如何通过 ServBay UI 管理软件包、添加网站以及访问内置工具(如 phpMyAdmin)。
- 已安装 PHP 和 MySQL/MariaDB: ServBay 默认包含多个版本的 PHP 以及 MySQL 或 MariaDB 数据库。请确保您计划使用的 PHP 版本已启用,并且数据库服务正在运行。
- 已安装 Composer: ServBay 默认集成了 Composer,这是现代 PHP 项目管理依赖的关键工具。本指南将使用 Composer 来创建 Drupal 项目。
安装 Drupal 的步骤
以下是在 ServBay 环境中安装和配置 Drupal 的详细步骤:
步骤 1:创建项目目录
首先,需要为您的 Drupal 项目在 ServBay 的网站根目录 /Applications/ServBay/www
下创建一个专门的子目录。
打开终端应用,执行以下命令:
cd /Applications/ServBay/www
mkdir servbay-drupal-app
cd servbay-drupal-app
2
3
这将在 /Applications/ServBay/www
目录下创建一个名为 servbay-drupal-app
的新文件夹,并进入该文件夹。
步骤 2:使用 Composer 创建 Drupal 项目
ServBay 已经内置了 Composer,您无需额外安装。Drupal 官方推荐使用 Composer 来创建和管理项目依赖。
在刚才创建的 servbay-drupal-app
目录下,运行以下 Composer 命令:
composer create-project drupal/recommended-project .
此命令将使用 drupal/recommended-project
模板在当前目录 (.
) 下创建一个新的 Drupal 项目。Composer 会自动下载 Drupal 核心文件及其依赖项。这个过程可能需要一些时间,具体取决于您的网络速度。
drupal/recommended-project
模板会将所有公共可访问的文件(如 index.php
, CSS, JavaScript 文件等)放在一个名为 web
的子目录中。这是现代 Drupal 项目的标准结构,提高了安全性。
步骤 3:创建数据库和用户
Drupal 需要一个数据库来存储其所有内容、配置和用户数据。我们将使用 ServBay 自带的 phpMyAdmin 工具来创建数据库和相应的用户。
访问 ServBay 的 phpMyAdmin 数据库管理工具
打开您的网页浏览器,访问 ServBay 的默认仪表板地址:
https://servbay.host/
。在仪表板页面中,找到并点击「phpMyAdmin」链接(通常在“工具”或“数据库”部分),进入 phpMyAdmin 界面。servbay.host
是 ServBay 为方便本地开发而设置的特殊域名,它指向 ServBay 内部的管理界面。创建数据库用户
为了安全和权限管理,建议为 Drupal 项目创建一个专用的数据库用户。
- 进入用户账户页面: 在 phpMyAdmin 的主页面,点击顶部导航菜单中的「用户账户」。
- 添加新用户: 点击「添加用户账户」。
- 填写用户信息:
- 用户名: 输入一个您希望的用户账户名,例如
drupal_user
。 - 主机名: 选择或输入
localhost
。这表示该用户只能从本地连接到数据库,提高了安全性。 - 密码: 输入一个安全的密码。请勿使用弱密码,例如本示例中的
password123
仅为演示目的。在实际开发中,请使用强密码生成器生成复杂密码。 - 重新输入: 再次输入您设置的密码。
- 用户名: 输入一个您希望的用户账户名,例如
- 数据库权限设置: 在「数据库为用户创建」部分,勾选「创建与用户名同名的数据库并授予所有权限」。这个选项非常方便,它会自动创建一个与用户名 (
drupal_user
) 同名的数据库,并将所有权限授予这个新创建的用户 (drupal_user
) 在这个新数据库 (drupal_user
) 上。 - 全局权限: 确保没有勾选“授予所有权限”全局权限(除非您清楚自己在做什么)。我们只需要用户在其自己的数据库上拥有所有权限。
- 执行: 检查填写的信息无误后,点击页面右下角的「执行」按钮。
现在,您已经创建了一个名为
drupal_user
的数据库和一个名为drupal_user
的数据库用户,并且该用户拥有drupal_user
数据库的所有权限。
步骤 4:配置 Web 服务器 (在 ServBay 中添加网站)
接下来,您需要在 ServBay 中配置一个网站,将一个本地域名指向您的 Drupal 项目的 web
目录。
- 打开 ServBay UI: 打开 ServBay 应用程序界面。
- 添加新网站: 点击左侧导航栏中的「网站」标签。
- 点击添加按钮: 在网站列表页面,点击底部的「+」或类似的添加按钮来创建一个新的网站配置。
- 填写网站信息:
- 名字: 输入一个易于识别的网站名称,例如
My Drupal Site
。 - 域名: 输入您希望在本地访问 Drupal 站点的域名,例如
servbay-drupal.local
。ServBay 支持使用.local
后缀的本地域名,无需修改系统的 hosts 文件。 - 网站类型: 选择
PHP
。 - PHP 版本: 从下拉菜单中选择您希望用于此 Drupal 站点的 PHP 版本。Drupal 对 PHP 版本有特定要求,请查阅您要安装的 Drupal 版本的官方文档以确定兼容的 PHP 版本。
- 网站根目录: 这是非常关键的一步。您需要将网站根目录指向项目目录中包含 Drupal 入口文件 (
index.php
) 的那个子目录。根据 Step 2 中 Composer 创建的项目结构,入口文件位于web
目录。因此,网站根目录应该是:/Applications/ServBay/www/servbay-drupal-app/web
。
- 名字: 输入一个易于识别的网站名称,例如
- 保存配置: 填写完所有信息后,点击 ServBay 界面中的「保存」或相应的按钮来保存新的网站配置。ServBay 会自动更新其 Web 服务器配置并使其生效。
步骤 5:运行 Drupal 安装程序
现在,您可以通过浏览器访问您配置的本地域名来启动 Drupal 的 Web 安装程序。
访问安装页面
打开您的网页浏览器,访问您在 Step 4 中配置的本地域名后加上
/core/install.php
路径:https://servbay-drupal.local/core/install.php
。您应该会看到 Drupal 的安装向导页面。
选择语言
选择您希望用于 Drupal 站点的默认语言,然后点击「保存并继续」。
选择安装配置
选择您想要的安装类型。通常选择「标准」安装以获得一个包含常用功能的默认站点配置。点击「保存并继续」。
设置数据库信息
安装程序会要求您提供数据库连接信息。填写在 Step 3 中创建的数据库详细信息:
- 数据库类型: 选择
MySQL, MariaDB, Percona Server, or equivalent
。 - 数据库名: 输入
drupal_user
(与您创建的数据库名相同)。 - 数据库用户名: 输入
drupal_user
(与您创建的数据库用户名相同)。 - 数据库密码: 输入您在 Step 3 中为
drupal_user
设置的密码。 - 数据库主机: 输入
localhost
。 - 高级选项: 通常不需要修改,除非您的数据库使用了非标准端口或其他特殊配置。
填写完毕后,点击「保存并继续」。Drupal 将尝试连接数据库并导入初始数据。
- 数据库类型: 选择
填写站点信息
如果数据库连接成功,安装程序将进入站点配置阶段。填写以下信息:
- 站点名称: 您网站的标题。
- 站点邮箱地址: 网站用于发送通知等的邮箱地址。
- 管理员用户名: 您将用于登录 Drupal 后台的用户名。
- 管理员密码: 为管理员账户设置一个安全的密码。
- 国家/地区: 选择您的国家/地区。
- 时区: 选择您的时区。
填写完毕后,点击「保存并继续」。Drupal 将完成最后的安装步骤,包括生成配置文件、设置站点基本信息等。
完成安装
安装完成后,您将被重定向到您的新 Drupal 网站首页。恭喜您,Drupal 已经在 ServBay 环境中成功安装!
步骤 6:安装模块和主题 (初步了解)
Drupal 的强大之处在于其模块和主题生态系统。安装完成后,您可以开始根据需要扩展和定制您的站点。
- 登录到 Drupal 管理后台: 访问
https://servbay-drupal.local/user
或https://servbay-drupal.local/admin
,使用您在 Step 5 中设置的管理员用户名和密码登录。 - 安装模块: 登录后,导航到管理菜单中的「扩展」(Extend),您可以浏览、搜索并安装新的模块来增加站点的功能。
- 安装主题: 导航到「外观」(Appearance),您可以安装和设置新的主题来改变站点的外观。
安装后的进一步配置和使用
成功安装 Drupal 后,您可以开始利用其功能构建您的网站。以下是一些常见的初步操作:
创建内容类型和内容
Drupal 的核心是内容类型,它定义了不同类型内容的结构(如文章、页面等)。
- 创建内容类型: 在 Drupal 管理后台,导航到「结构」->「内容类型」。您可以编辑现有的内容类型或点击「添加内容类型」创建一个新的,定义其字段(标题、正文、图像等)。
- 创建内容: 导航到「内容」->「添加内容」,选择您想创建的内容类型,填写相应字段的内容,然后点击「保存并发布」。
配置导航菜单
菜单用于组织网站的导航链接。
- 创建菜单: 在 Drupal 管理后台,导航到「结构」->「菜单」。您可以添加新的菜单或编辑现有菜单。
- 添加菜单项: 编辑一个菜单,点击「添加链接」,填写链接文本和目标路径(内部路径如
/node/1
或外部 URL),然后保存。
自定义区块布局
区块是可以在网站区域(如侧边栏、页脚)显示的可定制内容单元。
- 添加区块: 在 Drupal 管理后台,导航到「结构」->「区块布局」。这个页面显示了当前主题的区域。您可以将可用的区块(如导航菜单区块、自定义内容区块)拖动到不同的区域。
- 配置区块: 点击放置在区域中的区块旁边的「配置」按钮,可以设置区块的标题、显示页面、用户角色可见性等。
注意事项和常见问题解答 (FAQ)
- 如何修改 PHP 配置? 如果 Drupal 需要特定的 PHP 扩展或更高的内存限制 (
memory_limit
),您可以通过 ServBay UI 的「软件包」标签页找到对应的 PHP 版本,点击配置按钮来编辑php.ini
文件。修改后需要重启 PHP 服务(通常 ServBay 会提示或自动处理)。 - 为什么我的网站访问不了?
- 检查 ServBay 是否正在运行。
- 检查您在 ServBay 中添加的网站配置是否正确,特别是域名和网站根目录。确保网站根目录指向的是
.../servbay-drupal-app/web
。 - 检查 ServBay 的 Web 服务器(Caddy 或 Nginx)是否正在运行。
- 确保您访问的是
https://servbay-drupal.local
并且路径正确(初始安装是https://servbay-drupal.local/core/install.php
)。
- 数据库连接失败怎么办?
- 检查您在 Drupal 安装过程中输入的数据库名、用户名和密码是否与在 phpMyAdmin 中创建的一致。
- 确保数据库主机是
localhost
。 - 确认 MySQL/MariaDB 服务在 ServBay 中正在运行。
- 安装 Composer 依赖时报错? 检查您的网络连接,确保 Composer 能够访问 packagist.org。有时需要清理 Composer 缓存或更新 Composer 本身(ServBay 会定期更新内置版本)。
- 文件权限问题? Drupal 在安装和使用过程中需要对某些目录有写入权限(例如
web/sites/default/files
和web/sites/default/settings.php
)。ServBay 通常会以当前用户身份运行,这在 macOS 上通常能避免权限问题,但如果遇到,请检查这些目录的权限设置。
总结
通过遵循本指南,您已经成功地在 ServBay 本地开发环境中安装和配置了 Drupal。ServBay 为 Drupal 开发提供了一个便捷、高效且集成了所需所有组件的平台。现在,您可以利用 Drupal 强大的功能开始构建您的网站,并在 ServBay 环境中进行本地开发、测试和调试。随着您对 Drupal 的深入使用,ServBay 的灵活性将帮助您轻松管理不同的 PHP 版本、数据库和其他服务,以满足您项目的需求。