跳至内容

使用 Nextcloud 的云服务器

先决条件和假设

  • 服务器运行 Rocky Linux(您可以在任何 Linux 发行版上安装 Nextcloud,但此过程假定您使用的是 Rocky)。
  • 对从命令行进行安装和配置具有高度的舒适度。
  • 熟悉命令行编辑器。本示例使用 vi,但如果您有自己喜欢的编辑器,也可以使用它。
  • 此过程涵盖了 .zip 文件安装方法。您也可以通过 snap 应用程序安装 Nextcloud。
  • 此过程使用 Apache *sites enabled* 文档(稍后链接)进行目录设置。
  • 此过程还使用 *mariadb-server* 加固(稍后链接)进行数据库设置。
  • 在整个文档中,我们假定您是 root 用户,或者您可以使用 sudo 提升权限。
  • 这里使用的示例域名是“yourdomain.com”。

简介

如果您负责管理大型(甚至小型)公司的服务器环境,您可能会考虑使用云应用程序。在云中处理事务可以释放您自己的资源用于其他事情,但这也有缺点,那就是失去对公司数据的控制权。如果云应用程序发生泄露,您也可能面临公司数据泄露的风险。

将云带回您自己的环境中,可以弥补您在时间和精力上的投入,重新掌控数据的安全性。有时,这是值得付出的代价。

Nextcloud 提供了一个以安全性和灵活性为核心的开源云。请注意,即使您最终选择将云迁移到异地,构建 Nextcloud 服务器也是一项有益的练习。以下过程涉及在 Rocky Linux 上设置 Nextcloud。

Nextcloud 安装

安装和配置存储库及模块

此安装需要两个存储库。您需要安装 EPEL(企业 Linux 的额外软件包)和 Remi Repository 10。

注意

虽然 Rocky Linux 10 包含最低要求的 PHP 版本 8.3,但 Remi 存储库包含 Nextcloud 所需的其他 PHP 软件包。

要安装 EPEL,请运行

dnf install epel-release

要安装 Remi 存储库,请运行

dnf install https://rpms.remirepo.net/enterprise/remi-release-10.rpm

然后再次运行 dnf upgrade

运行以下命令以查看可用 PHP 模块的列表

dnf module list php

这会为 Rocky Linux 10 提供以下输出

Remi's Modular repository for Enterprise Linux 10 - x86_64
Name                   Stream                      Profiles                                      Summary                                  
php                    remi-7.4                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.0                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.1                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.2                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.3                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.4                    common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

使用 Nextcloud 兼容的最新 PHP。目前是 8.4。使用以下命令启用该模块

dnf module enable php:remi-8.4

要查看此操作如何改变模块列表的输出,请再次运行模块列表命令,您将看到 8.3 旁边有“[e]”。

dnf module list php

输出与以下行相同

php                    remi-8.4 [e]                   common [d], devel, minimal                  PHP scripting language

安装软件包

此示例使用 Apache 和 mariadb。要安装所需的软件包,请执行以下操作

dnf install httpd mariadb-server vim wget zip unzip libxml2 openssl php84-php php84-php-ctype php84-php-curl php84-php-gd php84-php-iconv php84-php-json php84-php-libxml php84-php-mbstring php84-php-openssl php84-php-posix php84-php-session php84-php-xml php84-php-zip php84-php-zlib php84-php-pdo php84-php-mysqlnd php84-php-intl php84-php-bcmath php84-php-gmp

配置

配置 Apache

设置 apache 在启动时启动

systemctl enable httpd

然后启动它

systemctl start httpd

创建配置文件

在 *先决条件和假设* 部分,曾提到您将使用 Apache Sites Enabled 过程进行配置。请点击该过程进行基本设置,然后返回此文档继续。

对于 Nextcloud,您需要创建以下配置文件

vi /etc/httpd/sites-available/com.yourdomain.nextcloud

内容为

<VirtualHost *:80>
  DocumentRoot /var/www/sub-domains/com.yourdomain.nextcloud/html/
  ServerName  nextcloud.yourdomain.com
  <Directory /var/www/sub-domains/com.yourdomain.nextcloud/html/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

完成后,保存您的更改(对于 vi,使用 Shift+:+w+q+!)。

接下来,在 /etc/httpd/sites-enabled 中创建指向此文件的链接

ln -s /etc/httpd/sites-available/com.yourdomain.nextcloud /etc/httpd/sites-enabled/

创建目录

如前面的配置中所述,您需要创建 DocumentRoot。使用以下命令完成此操作

mkdir -p /var/www/sub-domains/com.yourdomain.com/html

这是您将安装 Nextcloud 实例的位置。

配置 PHP

您需要设置 PHP 的时区。为此,请使用您选择的文本编辑器打开 php.ini

vi /etc/opt/remi/php84/php.ini

然后找到该行

;date.timezone =

删除注释(;)并设置我们的时区。此示例时区可以是

date.timezone = "America/Chicago"

date.timezone = "US/Central"

然后保存并退出 php.ini 文件。

请注意,为保持一致性,您在 php.ini 文件中的时区应与您机器的时区设置相匹配。您可以通过执行以下操作来查找此设置

ls -al /etc/localtime

您应该看到类似这样的内容,假设您在安装 Rocky Linux 时设置了时区,并且您居住在中部时区

/etc/localtime -> /usr/share/zoneinfo/America/Chicago

配置 mariadb-server

设置 mariadb-server 在启动时启动

systemctl enable mariadb

然后启动它

systemctl restart mariadb

再次,如前所述,使用 加固 mariadb-server 的设置过程进行初始配置。

安装 .zip

接下来的几个步骤假定您已通过 ssh 远程连接到您的 Nextcloud 服务器,并打开了一个远程控制台

  • 导航到 Nextcloud 网站
  • 将鼠标悬停在“下载”上,这将打开一个下拉菜单。
  • 点击“Nextcloud server”。
  • 点击“Download server archive”。
  • 右键点击“Get ZIP file”并复制链接。
  • 在 Nextcloud 服务器上的远程控制台中,键入 wget,然后输入一个空格,并粘贴您刚刚复制的内容。您应该会看到类似以下内容:wget https://download.nextcloud.com/server/releases/latest.zip
  • 按 Enter 后,.zip 文件的下载将开始并快速完成。

下载完成后,使用以下命令提取 Nextcloud .zip 文件

unzip latest.zip

复制内容并更改权限

完成 .zip 文件提取步骤后,您现在应该在 /root 中有一个名为“nextcloud”的新目录。进入该目录

cd nextcloud

将内容复制或移动到我们的 DocumentRoot

cp -Rf * /var/www/sub-domains/com.yourdomain.nextcloud/html/

mv * /var/www/sub-domains/com.yourdomain.nextcloud/html/

下一步是确保 Apache 拥有该目录。使用以下命令完成此操作

chown -Rf apache.apache /var/www/sub-domains/com.yourdomain.nextcloud/html

出于安全原因,您还希望将 data 文件夹从 DocumentRoot 内部移到外部。使用以下命令完成此操作

mv /var/www/sub-domains/com.yourdomain.nextcloud/html/data /var/www/sub-domains/com.yourdomain.nextcloud/

配置 Nextcloud

确保您的服务正在运行。如果您遵循了前面的步骤,它们应该已经正在运行。您在这些初始服务启动之间已经经历了几个步骤,所以请再次重启它们以确保万无一失

systemctl restart httpd
systemctl restart mariadb

如果一切重启且没有问题,那么您就可以继续了。

要进行初始配置,您需要在 Web 浏览器中加载该站点

http://your-server-hostname/(替换为您的实际主机名)

假设您到目前为止一切顺利,您应该会看到 Nextcloud 设置屏幕

nextcloud login screen

有几件事您想要与默认设置有所不同

  • 在网页顶部,在“创建管理员账户”处,设置用户名和密码。为了本示例的方便,请输入 admin 并设置一个强密码。请记住将其保存在安全的地方(例如密码管理器),以免丢失。即使您已经在此字段中键入,在完成**所有**字段之前,请勿按 Enter
  • 在“存储和数据库”部分,将“数据文件夹”位置从默认文档根目录更改为之前移动数据文件夹的位置:/var/www/sub-domains/com.yourdomain.nextcloud/data
  • 在“配置数据库”部分,通过点击该按钮将“SQLite”更改为“MySQL/MariaDB”。
  • 在“数据库用户”和“数据库密码”字段中,输入您之前设置的 MariaDB root 用户和密码。
  • 在“数据库名称”字段中,输入 nextcloud
  • 在“localhost”字段中,输入(3306 是默认的 mariadb 连接端口)。

一旦您完成所有这些,点击“完成设置”,您就可以开始使用了。

浏览器窗口将刷新片刻,然后通常不会重新加载站点。再次在浏览器窗口中输入您的 URL,您应该会看到默认的初始页面。

此时,您的管理员用户已经(或应该)登录,并且有几个信息页面旨在帮助您快速上手。 “仪表盘”是用户首次登录时将看到的。管理员用户现在可以创建其他用户、安装其他应用程序以及执行许多其他任务。

“Nextcloud Manual.pdf”文件是用户手册,以便用户熟悉可用功能。“Nextcloud 手册.pdf”文件是用户手册,以便用户可以熟悉可用功能。管理员用户应阅读或至少浏览管理员手册的要点,请访问 Nextcloud 网站

下一步

此时,请不要忘记这是一个您将存储公司数据的服务器。配置防火墙、设置 备份、使用 SSL 保护站点,以及执行任何其他必要的任务来保护您的数据非常重要。

结论

您需要仔细评估将公司云迁移到内部的任何决定。对于那些决定将公司数据保留在本地比外部云主机更好的用户来说,Nextcloud 是一个不错的选择。

作者:Steven Spencer

贡献者:Ezequiel Bruni, Ganna Zhyrnova