如何在 Ubuntu 24.04 上安装 Drupal CMS 11 并配置 Nginx, MariaDB 和 SSL 教程

简介

Drupal 是一个强大的开源内容管理系统 (CMS),用于构建网站和应用程序。它以其灵活性、可扩展性和强大的功能而闻名,适用于从简单的博客到复杂的企业应用程序的各种项目。以下是 Drupal 的概述,包括其功能和生态系统。

Drupal 的主要功能

灵活性和自定义性:

  • 内容类型:Drupal 允许你创建不同的内容类型(例如,文章、页面、博客),并使用自定义字段来满足你的需求。
  • 分类法:使用分类系统对内容进行分类和标记,使其更容易管理和展示。

模块化架构:

  • Drupal 具有模块化结构,允许你通过贡献模块和自定义模块扩展其功能。有数千个模块可用,可以启用 SEO、社交媒体集成、电子商务等功能。

用户管理:

  • 内置的用户管理允许你创建和管理用户角色和权限。这非常适合需要不同级别访问权限的协作环境。

响应式设计:

  • 许多 Drupal 主题都是开箱即用的响应式设计,确保网站在从台式机到移动电话的所有设备上都看起来不错。

强大的安全性:

  • Drupal 非常注重安全性,拥有专门的安全团队和定期更新。它还允许精细的权限控制,有助于保护敏感内容。

多语言支持:

  • Drupal 为多语言网站提供出色的支持,允许你以多种语言创建内容并有效地管理翻译。

SEO 友好:

  • Drupal 提供了各种工具和模块,可帮助你优化网站以适应搜索引擎,包括简洁的 URL、元数据管理和 XML 站点地图。

社区和支持:

  • Drupal 拥有庞大而活跃的开发人员、设计师和用户社区,他们为 Drupal 的开发做出贡献,并通过论坛、文档和活动提供支持。

本教程将指导你如何在 Ubuntu 服务器上使用 Nginx 作为 Web 服务器,MariaDB 作为数据库后端来部署 Drupal。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

开始

第一步:更新和升级系统

首先,更新服务器的软件包索引并将已安装的软件包升级到最新版本。

bash 复制代码
sudo apt update && sudo apt upgrade -y

第二步:安装 Nginx Web 服务器

Nginx 将作为 Drupal 的 Web 服务器。

安装 Nginx:

bash 复制代码
sudo apt install nginx -y

启用 Nginx 在启动时启动并启动服务:

bash 复制代码
sudo systemctl enable nginx
sudo systemctl start nginx

检查 Nginx 的状态以确保它正在运行:

bash 复制代码
sudo systemctl status nginx

第三步:安装 PHP 和所需的扩展

Drupal 需要 PHP 和几个扩展。按如下方式安装 PHP 和必要的扩展:

bash 复制代码
sudo apt install php-fpm php-mysql php-gd php-xml php-mbstring php-curl php-zip php-json -y

第四步:安装 MariaDB 并保护安装

MariaDB 将用作 Drupal 的数据库服务器。

安装 MariaDB:

bash 复制代码
sudo apt install mariadb-server -y

运行安全脚本以保护 MariaDB 的安装:

bash 复制代码
sudo mysql_secure_installation

按照提示设置 root 密码,删除匿名用户,禁止远程 root 登录,删除测试数据库,并重新加载权限表。

第五步:为 Drupal 创建数据库和用户

以 root 用户身份登录 MariaDB:

bash 复制代码
sudo mysql -u root -p

为 Drupal 创建一个新数据库(将 drupal_db 替换为你首选的数据库名称):

sql 复制代码
CREATE DATABASE drupal_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建一个新的 MariaDB 用户,并授予 Drupal 数据库的所有权限(将 drupal_user 和 password 替换为你所需的用户名和强密码):

sql 复制代码
CREATE USER 'drupal_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON drupal_db.* TO 'drupal_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

第六步:下载和配置 Drupal

导航到 Web 根目录:

bash 复制代码
cd /var/www/

使用 wget 下载最新版本的 Drupal:

bash 复制代码
sudo apt install wget -y
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

解压缩下载的存档并将其移动到名为 drupal 的文件夹中:

bash 复制代码
sudo tar -xvf drupal.tar.gz
sudo mv drupal-* drupal

将 Drupal 目录的所有权更改为 Web 服务器用户:

bash 复制代码
sudo chown -R www-data:www-data /var/www/drupal

设置正确的权限:

bash 复制代码
sudo find /var/www/drupal -type d -exec chmod 755 {} \\;
sudo find /var/www/drupal -type f -exec chmod 644 {} \\;

第七步:为 Drupal 配置 Nginx

为 Drupal 创建一个新的 Nginx 服务器块配置文件:

bash 复制代码
sudo nano /etc/nginx/sites-available/drupal

将以下配置添加到文件中,根据需要调整 server_name 和路径:

server {
    listen 80;
    server_name your_domain.com;  # 替换为你的域名或服务器 IP

    root /var/www/drupal;
    index index.php index.html index.htm;

    location / {
        try_files $uri /index.php?$query_string;
    }

    location ~ \\.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\\.ht {
        deny all;
    }
}

保存并退出文件。

通过创建一个指向 sites-enabled 的符号链接来启用新配置:

bash 复制代码
sudo ln -s /etc/nginx/sites-available/drupal /etc/nginx/sites-enabled/

测试 Nginx 配置是否有语法错误:

bash 复制代码
sudo nginx -t

重启 Nginx 以应用更改:

bash 复制代码
sudo systemctl restart nginx

第八步:为 Drupal 配置 PHP 设置

编辑 PHP 配置文件以优化 Drupal。

打开 PHP-FPM 配置文件:

bash 复制代码
sudo nano /etc/php/8.3/fpm/php.ini

将以下值修改为建议的设置:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 300

重启 PHP-FPM 以应用更改:

bash 复制代码
sudo systemctl restart php8.3-fpm

第九步:配置防火墙设置

通过调整防火墙设置,确保 Nginx 可以提供流量。

允许 Nginx Full 配置文件:

bash 复制代码
sudo ufw allow 'Nginx Full'

检查 UFW 的状态以确认更改:

bash 复制代码
sudo ufw status

第十步:保护 Drupal 安装

启用 HTTPS:通过安装 SSL 证书来保护你的网站。你可以使用 Let's Encrypt 获取免费的 SSL 证书:

bash 复制代码
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com

按照提示完成 SSL 设置。

第十一步:通过 Web 浏览器完成 Drupal 安装

打开你的 Web 浏览器并导航到你的服务器域名或 IP 地址:

http://your_domain.com

按照屏幕上的说明选择你的语言,配置你的数据库设置(使用之前创建的数据库名称、用户和密码),并完成安装。

故障排除提示

如果你无法登录到管理面板,请通过导航到以下位置重新运行 Drupal 安装:

https://drupal.hnxcode.dev/core/install.php

对于其他错误:

Nginx 错误:如果 Nginx 无法启动,请检查 /var/log/nginx/error.log 中的日志以获取详细的错误消息。

数据库连接问题:仔细检查位于 /var/www/drupal/sites/default/settings.php 的 Drupal 设置文件中的数据库凭据。

文件权限:确保 Web 服务器用户(www-data)具有读取和写入必要文件的正确权限。

本指南解释了如何在 Ubuntu 24.04 上使用 Nginx、MariaDB 和 SSL 安装 Drupal CMS 11。请确保定期更新和备份你的 Drupal 站点,以确保其安全平稳运行。


雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
itachi-uchiha44 分钟前
关于Linux PAM模块下的pam_listfile
linux·运维·服务器
对自己不够狠2 小时前
Linux 常用命令
linux·运维·服务器
大兵编码3 小时前
linux系统常用命令
linux·运维·服务器
关关钧4 小时前
【Linux】函数
linux·运维·服务器
m0_748234086 小时前
构建流媒体直播服务器:nginx与nginx-rtmp-module实战指南
运维·服务器·nginx
风虎云龙科研服务器6 小时前
深度学习GPU服务器推荐:打造高效运算平台
服务器·人工智能·深度学习
Lang_xi_7 小时前
Bash Shell的操作环境
linux·开发语言·bash
关关钧7 小时前
【Linux】sed编辑器
linux·运维·编辑器
哦豁灬8 小时前
linux查看硬件信息
linux·运维·服务器
m0_748252608 小时前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络