云与容器

使用 Nginx 安装并加固 Nextcloud

Nextcloud 是一款多功能的开源方案。本文逐步介绍如何在服务器上安装 Nextcloud:安装 Nginx、PHP 与 MariaDB,下载并部署文件、设置属主、配置数据库和 Nginx 服务器块,最后在浏览器中完成安装。

· 2 分钟阅读 · 难度 中级 · 基于 PHP 8.2

Nextcloud 作为一款多功能的开源方案而与众不同。要充分发挥这个平台的优势,就必须完成一次稳健的安装并加强安全性。本文将带您走完在自己的服务器上安装 Nextcloud 的全过程,并特别着重于安全地使用广受欢迎的 Nginx 网页服务器。

前提条件

  1. 一台运行 Linux 发行版(例如 Debian、Ubuntu)的服务器。

第 1 步:安装软件包

1. 更新软件包源

  • sudo(Super-User Do)用于以 root 身份执行命令
  • apt(Advanced Packaging Tool)是所使用的包管理器
  • update 用于更新可用软件包的列表

2. 安装 Nginx 网页服务

  • nginx 是一款网页服务,因其安全性和性能而被推荐

3. 安装 PHP 及所需的扩展

  • php-fpm 是 php 的一种替代方案,性能要好得多
sudo apt install php8.2-{fpm,bz2,curl,mbstring,intl,cli,zip,xml,imagick,mysql,gd}

4. 安装 MariaDB 数据库

  • mariadb 是 mysql 的一个分支,优化得更好

第 2 步:部署 Nextcloud

7. 下载 Nextcloud 的最新版本

  • cd(change directory)用于切换目录
  • /tmp 是用于存放临时文件的目录
  • wget(web get)用于获取/下载一个网页的内容

8. 把文件夹解压到它所在的目录

  • unzip 用于解压 .zip 格式压缩文件的内容
  • mv(move)用于把一个目录移动到另一个位置
  • /var/www 是用于存放网页文件的目录。出于安全考虑,建议不要使用 /var/www/html

9. 把属主改为 www-data

  • chown(change owner)用于更改一个目录的属主
  • www-data 是 Nginx 等网页服务所使用的系统用户
  • -R 表示递归,把权限应用到子目录上。

第 3 步:配置数据库

10. 使用 mysql 连接 MariaDB

  • mysql 用于以 SQL 与数据库管理系统交互
  • -u 指定用于登录的用户,这里是 root
  • -p 表示用于登录的密码,在命令之后输入
  • 使用 sudo 时,root 账号的密码默认为空

11. 使用 mysql 连接 MariaDB

第 4 步:配置 Nginx

创建一个服务器块配置文件

  • nano 用于编辑文件,快捷键 ^Key 表示 CTRL + Key
  • /etc/nginx/sites-available 是网站配置文件所在的位置

Nginx 配置示例:

请根据您自己的配置和域名调整下列取值。

  • server_name votre_ip_ou_domaine.example;
  • root /var/www/nextcloud;

启用该配置

第 5 步:完成安装

12. 在您的网页浏览器中完成配置

Illustration 1 — Installer et sécuriser Nextcloud avec Nginx

请把 votre_ip_ou_domaine.exemple 换成您自己的配置。该地址必须与 /etc/nginx/sites-available 中作为 server_name 所填写的地址一致

您会看到下面这个界面,其中用户名和密码字段应替换为可靠而稳健的取值。

Illustration 2 — Installer et sécuriser Nextcloud avec Nginx

数据库的配置取决于您在第 4 步中输入的信息。

Calendar、Mail、Talk、Nextcloud Office 等推荐应用可以按您的喜好安装,并非必须。如果您希望对 Nextcloud 能做什么有一个较好的整体了解,那么现在就可以安装它们。

另外,您随时都可以在应用商店 https://apps.nextcloud.com/ 找到它们。

Illustration 3 — Installer et sécuriser Nextcloud avec Nginx

后续内容很快就会推出,包括优化、安全和个性化设置。