本教程适用于以下操作系统版本

  • Ubuntu 24.04(Noble Numbat)
  • Ubuntu 22.04(Jammy Jellyfish)

本页目录

  • 准备工作
  • 安装依赖
  • 配置 PHP
  • 配置 MariaDB 服务器
  • 下载 Drupal 源代码
  • 配置 Apache 虚拟主机
  • 使用 HTTPS 保护 Drupal
  • 安装 Drupal
  • 总结

Drupal 是一个用 PHP 编写的主流内容管理系统(CMS)。在互联网排名前 10,000 的网站中,至少有 14% 使用它,涵盖全球企业、政府、教育及机构站点。Drupal 提供高可扩展的系统,可与数字应用集成,并支持通过多语言功能为不同组织创建多站点。

本指南将介绍如何在 Ubuntu 24.04 服务器上安装 Drupal。我们将使用 LAMP 技术栈(Linux、Apache、MariaDB 和 PHP)安装 Drupal,并通过 Let's Encrypt 的 HTTPS 来保护 Drupal。

准备工作

在开始之前,请确保你已具备以下条件:

  • 一台 Ubuntu 24.04 服务器
  • 一个具有管理员权限的非 root 用户
  • 一个已解析到服务器 IP 地址的域名

安装依赖

Drupal 是基于 MySQL/MariaDB 和 PHP 的 CMS。要安装它,必须确保系统中已安装 MySQL/MariaDB 和 PHP。Web 服务器方面,你可以使用 Apache 或 Nginx。

在本节中,你将安装 Drupal 所需的依赖项,包括 LAMP 技术栈(Linux、Apache、MariaDB 和 PHP)以及 Composer。

首先,使用以下命令更新 Ubuntu 软件包索引。

sudo apt update

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在,使用以下命令将 LAMP 技术栈(Linux、Apache、MariaDB 和 PHP)以及 Composer 依赖安装到 Ubuntu 系统中:

sudo apt install apache2 mariadb-server composer php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-uploadprogress php-soap php-bcmath php-xmlrpc

输入 Y 确认安装。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

安装完成后,检查 Apache 和 MariaDB 的状态,然后查看 PHP 和 Composer 的版本。

使用以下命令检查 Apache 服务,确认 Apache 已在服务器上运行并启用。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

输出 enabled 表示 Apache Web 服务器将在开机时自动启动;active(running) 表示 Apache 正在运行中。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在使用以下命令检查 MariaDB 服务状态:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

与 Apache 类似,你会看到 enabled 输出以及 active(running) 状态,表明 MariaDB 将在开机时启动且当前正在运行。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

最后,使用以下命令检查 PHP 和 Composer 的版本。目前,Ubuntu 24.04 默认软件源提供 PHP 8.3 和 Composer 2.7.1。

sudo php -v
sudo -u www-data composer -v

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

配置 PHP

安装依赖后,你需要为 Drupal 配置 PHP。需要编辑默认的 php.ini 文件,并按 Drupal 的要求修改部分默认配置。

使用以下 nano 编辑器命令打开 php.ini 配置文件。

sudo nano /etc/php/8.3/apache2/php.ini

将默认配置修改为以下内容,并根据你的服务器环境调整 memory_limit 和 date.timezone 选项。

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam

完成后,保存并退出文件。

现在重启 Apache Web 服务器以使新的 PHP 配置生效。

sudo systemctl restart apache2

配置 MariaDB 服务器

既然已配置完 PHP,接下来我们使用 mariadb-secure-installation 工具加固 MariaDB 服务器,并为 Drupal 创建新的数据库和用户。

使用以下命令加固 MariaDB 服务器安装。该命令会就 MariaDB 服务器配置向你提出一系列提示。

sudo mariadb-secure-installation

现在输入 Y 应用对 MariaDB 的更改,或输入 n 拒绝:

  • 默认的 MariaDB 安装未设置密码,在提示输入密码时直接按 ENTER 即可。接着输入 Y 设置 MariaDB root 密码,然后输入新密码并再次确认。输入 Y 以从 MariaDB 中删除匿名用户。再次输入 Y 以禁止 MariaDB root 用户远程登录。输入 Y 删除 MariaDB 默认的 test 数据库。最后输入 Y 重新加载权限表并应用更改。

MariaDB 服务器加固完成后,你需要为 Drupal 创建新的数据库和用户。这可以通过 mariadb 客户端命令完成。

使用以下命令登录 MariaDB 服务器——在提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

运行以下查询,为 Drupal 创建新的数据库和用户。本例中,将创建新用户 drupal、数据库 drupaldb,密码为 DrupalSecurePassword。请务必替换为你的实际信息。

CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'DrupalSecurePassword';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在运行以下查询以验证用户 drupal,确保该用户能够访问数据库 drupaldb。

SHOW GRANTS FOR drupal@localhost;

以下输出表明用户 drupal 可以访问数据库 drupaldb。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

最后,输入 quit 退出 MariaDB 服务器。

下载 Drupal 源代码

在本步骤中,你将下载 Drupal 源代码,并设置具有正确属主和权限的 Web 根目录。本例中,你将下载并安装 Drupal 的最新版本。

进入 /var/www 目录,并使用以下 wget 命令下载 Drupal 源代码。

cd /var/www/
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

下载完成后,解压 Drupal 源代码并将解压出的目录重命名为 drupal。这样,/var/www/drupal 将成为 Drupal 安装的 Web 根目录(文档根目录)。

tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupal

现在运行以下命令,将 /var/www/drupal 的属主改为 www-data 用户,权限设为 755。

sudo chown -R www-data:www-data /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

配置 Apache 虚拟主机

下载 Drupal 后,你需要为安装创建 Apache 虚拟主机。因此,请确保已为 Drupal 安装准备好域名。

首先,运行以下命令启用 Apache 的 ssl 和 rewrite 模块。

sudo a2enmod ssl rewrite

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在使用以下命令创建一个新的 Apache 虚拟主机配置文件。

sudo nano /etc/apache2/sites-available/drupal.conf

复制并粘贴以下配置,并将 ServerName 选项改为你的 Drupal 安装所使用的域名。

<VirtualHost *:80>
 ServerName howtoforge.local
 ServerAdmin 
[email protected]
 DocumentRoot /var/www/drupal
 # Add security
 php_flag register_globals off
 ErrorLog ${APACHE_LOG_DIR}/howtoforge.local.error.log
 CustomLog ${APACHE_LOG_DIR}/howtoforge.local.access.log combined
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /var/www/drupal>
 Options FollowSymlinks
 #Allow .htaccess
 AllowOverride All
 Require all granted
 <IfModule security2_module>
 SecRuleEngine Off
 # or disable only problematic rules
 </IfModule>
 </Directory>
 <Directory /var/www/drupal/>
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
 </Directory>
</VirtualHost>

完成后,保存并退出文件。

现在运行以下命令启用 drupal.conf 虚拟主机文件,并验证 Apache 配置语法。如果语法正确,你将看到 Syntax is OK 的输出。

sudo a2ensite drupal.conf
sudo apachectl configtest

最后,运行以下命令重启 Apache 以使新的虚拟主机配置生效。至此,你的 Drupal 应当可以访问。

sudo systemctl restart apache2

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

使用 HTTPS 保护 Drupal

要使用 HTTPS 保护 Drupal,可以使用 Let's Encrypt 提供的免费 SSL 证书。如果你在公网域名上安装,请按本步骤为 Drupal 启用 HTTPS。如果使用本地域名,则可以使用自签名 SSL 证书。

使用以下命令安装 Certbot 及 Certbot Apache 插件——输入 Y 确认安装。

sudo apt install certbot python3-certbot-apache

安装完成后,运行以下 certbot 命令为你的 Drupal 安装生成 SSL/TLS 证书。请务必将邮箱地址和域名替换为你自己的信息。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email 
[email protected]
 -d howtoforge.local

完成后,你的 SSL/TLS 证书将生成在 /etc/letsencrypt/live/example.com 目录下,Drupal 安装也会自动通过 HTTPS 受到保护。

安装 Drupal

在你常用的浏览器中访问你的 Drupal 域名,例如 https://howtoforge.local。如果安装成功,你将看到 Drupal 安装向导。

选择 Drupal 的默认语言,然后点击「保存并继续」(Save and continue)。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

选择你偏好的 Drupal 安装配置档,点击「保存并继续」。初学者建议使用 Standard(标准)或 Demo(演示)配置档;如果你熟悉 Drupal,可以选择 Minimal(最小)配置档。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在,请确保你已通过 Drupal 环境检查,该检查用于确认你的服务器已准备好进行 Drupal 安装。

如果准备就绪,你将被引导至 Drupal 的数据库配置页面。输入你的 MariaDB 服务器信息、数据库名、用户名和密码,然后点击「保存并继续」。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

Drupal 安装将开始:

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

Drupal 安装完成后,你需要配置 Drupal 站点。输入站点名称、邮箱地址、管理员用户名、密码、默认国家/地区和时区。

点击「保存并继续」确认。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

现在,如果安装成功,你将看到「恭喜,你已成功安装 Drupal!」的提示信息。

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

在此,点击「管理(Manage)> 配置(Configuration)」菜单即可进入 Drupal 管理后台。你将看到如下界面:

在 Ubuntu 24.04 上安装 Drupal 并配置 Apache 与免费 SSL

总结

恭喜!你已成功在 Ubuntu 24.04 服务器上完成 Drupal CMS 的安装。现在 Drupal 运行在 LAMP 技术栈(Linux、Apache、MariaDB 和 PHP)之上,并通过 Let's Encrypt 的 HTTPS 受到保护。你可以通过安装主题或添加扩展来管理你的 Drupal 站点。