本教程适用于以下操作系统版本
- 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

现在,使用以下命令将 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 确认安装。

安装完成后,检查 Apache 和 MariaDB 的状态,然后查看 PHP 和 Composer 的版本。
使用以下命令检查 Apache 服务,确认 Apache 已在服务器上运行并启用。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
输出 enabled 表示 Apache Web 服务器将在开机时自动启动;active(running) 表示 Apache 正在运行中。

现在使用以下命令检查 MariaDB 服务状态:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
与 Apache 类似,你会看到 enabled 输出以及 active(running) 状态,表明 MariaDB 将在开机时启动且当前正在运行。

最后,使用以下命令检查 PHP 和 Composer 的版本。目前,Ubuntu 24.04 默认软件源提供 PHP 8.3 和 Composer 2.7.1。
sudo php -v
sudo -u www-data composer -v

配置 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;

现在运行以下查询以验证用户 drupal,确保该用户能够访问数据库 drupaldb。
SHOW GRANTS FOR drupal@localhost;
以下输出表明用户 drupal 可以访问数据库 drupaldb。

最后,输入 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

现在使用以下命令创建一个新的 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

使用 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)。

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

现在,请确保你已通过 Drupal 环境检查,该检查用于确认你的服务器已准备好进行 Drupal 安装。
如果准备就绪,你将被引导至 Drupal 的数据库配置页面。输入你的 MariaDB 服务器信息、数据库名、用户名和密码,然后点击「保存并继续」。

Drupal 安装将开始:

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

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

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

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