如何在 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。

开始

第一步:更新和升级系统

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

sudo apt update && sudo apt upgrade -y

第二步:安装 Nginx Web 服务器

Nginx 将作为 Drupal 的 Web 服务器。

安装 Nginx:

sudo apt install nginx -y

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

sudo systemctl enable nginx
sudo systemctl start nginx

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

sudo systemctl status nginx

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

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

sudo apt install php-fpm php-mysql php-gd php-xml php-mbstring php-curl php-zip php-json -y

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

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

安装 MariaDB:

sudo apt install mariadb-server -y

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

sudo mysql_secure_installation

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

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

以 root 用户身份登录 MariaDB:

sudo mysql -u root -p

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

CREATE DATABASE drupal_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

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

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

第六步:下载和配置 Drupal

导航到 Web 根目录:

cd /var/www/

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

sudo apt install wget -y
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

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

sudo tar -xvf drupal.tar.gz
sudo mv drupal-* drupal

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

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

设置正确的权限:

sudo find /var/www/drupal -type d -exec chmod 755 {} \\;
sudo find /var/www/drupal -type f -exec chmod 644 {} \\;

第七步:为 Drupal 配置 Nginx

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

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 的符号链接来启用新配置:

sudo ln -s /etc/nginx/sites-available/drupal /etc/nginx/sites-enabled/

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

sudo nginx -t

重启 Nginx 以应用更改:

sudo systemctl restart nginx

第八步:为 Drupal 配置 PHP 设置

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

打开 PHP-FPM 配置文件:

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

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

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 300

重启 PHP-FPM 以应用更改:

sudo systemctl restart php8.3-fpm

第九步:配置防火墙设置

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

允许 Nginx Full 配置文件:

sudo ufw allow 'Nginx Full'

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

sudo ufw status

第十步:保护 Drupal 安装

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

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://blog.ivwv.site

### 安装配置指定版本的Kubernetes 对于在Ubuntu 24.04 LTS上安装配置特定版本(如v1.21)的Kubernetes,需遵循一系列指令来确保兼容性稳定性。 #### 准备工作 确认目标系统的架构至关重要。由于提到的操作环境基于ARM64架构下的Ubuntu,在此环境中执行`uname -a`可以验证这一点[^1]。然而需要注意的是,官方支持的状态下,Ubuntu 24.04 LTS尚未发布;目前最新的LTS版本为Ubuntu 22.04 LTS。因此建议使用已发布的稳定版进行操作。 #### 更新系统包列表 为了获取最新软件包信息,应先更新本地APT缓存: ```bash sudo apt-get update && sudo apt-get upgrade -y ``` #### 添加Kubernetes APT仓库 针对所需版本的Kubernetes,添加对应的APT源,设置其优先级以锁定版本号: ```bash curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list ``` 创建文件 `/etc/apt/preferences.d/k8s-stable.pref` 来固定版本: ```plaintext Package: * Pin: release o=Kubernetes Pin-Priority: 500 Explanation: Allow upgrades only to the specified version of Kubernetes components. Package: kubelet kubeadm kubectl Pin: version 1.21.* Pin-Priority: 900 ``` 再次运行 `sudo apt-get update` 刷新包索引。 #### 安装所需的组件 通过APT工具安装具体版本的kubelet, kubeadm kubectl : ```bash sudo apt-get install -y kubelet=1.21.*-00 kubeadm=1.21.*-00 kubectl=1.21.*-00 ``` 这里假设使用的容器运行时为containerd,则还需按照官方文档指导完成相应配置。 #### 初始化集群 初始化Master节点前,请参照所给定的集群架构规划调整参数设置。考虑到请求中的Kubernetes版本较低,部分特性可能不再适用或已被弃用,务必查阅对应版本的手册了解差异。 #### 配置Harbor私有仓库 如果计划利用Harbor作为内部镜像库,那么应当编辑Containerd配置文件加入不安全注册表条目以便于拉取自定义构建的镜像。这可以通过修改`/etc/containerd/config.toml`实现,之后记得重启服务使更改生效[^2]: ```toml [plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.xiangqian.com:5000"] endpoint = ["http://harbor.xiangqian.com:5000"] # 或者直接追加至insecure-registries数组中 [plugins."io.containerd.grpc.v1.cri".registry.configs] [plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.xiangqian.com:5000".tls] insecure_skip_verify = true ``` 随后应用变更: ```bash sudo systemctl daemon-reload sudo systemctl restart containerd ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vvw&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值