如何在我们自己的服务器上安装 Nextcloud

Nextcloud是一个非常酷的解决方案,可以在云中甚至本地服务器上托管我们自己的文件。

安装 Nextcloud

假设我们已经安装了 Apache、PHP 和 MySQL,那么运行 Nextcloud 将很容易。
Nextcloud 不需要任何另外的专业知识即可工作。

  1. 我们需要确保安装了所需的模块。
    当我们安装 PHP7.2 时,其中许多模块似乎已经默认安装(或者我自己已经安装了它们)。
    但是,有些不是,我们需要安装它们。
    我们应该查看官方安装教程以获取所需模块的更新列表。
    如果不确定是否安装了某些东西,简单地尝试 sudo apt install php7.2-[module name] 并没有什么坏处(我们可能会收到一个响应,告诉我们它已经安装)。

官方手册列出了以下需要的模块:

  • PHP(>= 7.0、7.1 或者 7.2)
  • PHP 模块 ctype
  • PHP 模块 dom
  • PHP 模块 GD
  • PHP 模块 iconv
  • PHP 模块 JSON
  • PHP 模块 libxml(Linux 包 libxml2 必须 >=2.7.0)
  • PHP 模块 mbstring
  • PHP 模块 openssl
  • PHP 模块 posix
  • PHP 模块 SimpleXML
  • PHP 模块 XMLReader
  • PHP 模块 XMLWriter
  • PHP 模块 zip
  • PHP 模块 zlib

当我们需要通过 apt install 安装它们时,其中一些似乎具有不同的名称。
例如,在 php7.2-xml 中可以找到 SimpleXML。
如果 apt install 找不到模块,我个人不会太担心。
也许它有另一个名字,或者它已被弃用。

有几种方法可以找到/安装模块:

  • 使用 php -m | 检查模块是否存在grep -i [模块名称]
  • 我们可以在 Google 中搜索以了解是否存在适用于 PHP 版本的给定模块。 IE。 : 安装GD PHP7.2 apache
  • 也可以使用apt-cache search PHP7.2-搜索要安装的模块。这应该会为我们提供如下面的屏幕截图所示的结果。
  1. 导航到/var/www/并执行wget https://download.nextcloud.com/server/releases/nextcloud-14.0.3.zip

如果我们希望安装在现有网站 (vhost) 的子目录中,我们应该导航到相应的目录。
例如 :/var/www/some_virtual_host_name

我们可以在此链接上找到最新版本的 nextcloud:https://nextcloud.com/install/。

只需右键单击下载链接并选择“复制链接位置”。
我们可以通过按 [CTRL] + [SHIFT] + [V] 将其粘贴到终端中。

如果这是在本地服务器上,我们可以简单地将 .zip 文件直接保存到 /var/www 文件夹中(假设用户有权限)。

这应该将 Nextcloud 的文件下载到 www 目录中。
现在我们只需要解压缩文件。
我为此使用了解压缩。
所以,如果你没有安装,首先做:

sudo apt install unzip

然后解压刚才下载的nextcloud-14.0.3.zip文件:

unzip nextcloud-14.0.3.zip

这应该会创建一个目录,/var/www/nextcloud,如果我们愿意,可以将其重命名为其他名称。

(可选)重命名目录:

sudo mv nextcloud newName
  1. 我们现在应该配置 Apache 虚拟主机文件 (VHOST)。
    如何执行此操作取决于特定设置。

VHOST 如果我们在服务器上托管多个网站(称为 VHOST),我们将需要编辑安装 nextcloud 的网站的 .conf 文件。

对于典型的 VHOST 设置,.conf 文件可能位于:/etc/apache2/sites-available(但这取决于 Linux 发行版)。

将以下内容添加到 .conf 文件中的 <directory> 块:

<IfModule mod_dav.c>
  Dav off
</IfModule>
SetEnv HOME /var/www/YourSite/nextcloud
SetEnv HTTP_HOME /var/www/YourSite/nextcloud

诚然,我不知道这些 SetEnv(环境变量)是做什么用的,因为官方 bananael 没有正确解释。
据推测,Nextcloud PHP 脚本需要它们。
官方文档还说要包含别名,但我认为只有在将 Nextcloud 安装到服务器上的其他位置时才需要这样做。

对于启用了 VHOST SSL 的站点,配置应如下所示:

<VirtualHost *:443>
DocumentRoot "/var/www/YourSiteName/"
ServerName YourSiteName.com
ErrorLog ${APACHE_LOG_DIR}/YourSiteName.com-error.log
CustomLog ${APACHE_LOG_DIR}/YourSiteName-access.log common
<Directory "/var/www/YourSiteName/">
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
  AddDefaultCharset utf-8
  <IfModule mod_dav.c>
    Dav off
  </IfModule>
  SetEnv HOME /var/www/YourSiteName/nextcloud
  SetEnv HTTP_HOME /var/www/YourSiteName/nextcloud
</Directory>

虚拟主机 IP 部分 *:443.
对于非 SSL,只需使用端口 80。

完成后,记得启用或者重新加载配置文件,并重新启动 Apache。

sudo a2ensite YourSiteName
sudo service apache2 restart

如果站点同时启用 HTTP 和 HTTPS,请记住同时编辑正常配置和 SSL 变体。
在 localhost 安装上工作时,我们经常会使用非 http 版本。
例如,我有一份自己的网站在本地运行以进行开发。

  1. 最后,创建一个数据库供 Nextcloud 使用。
    为此,只需从终端登录 MySQL,然后输入以下内容:
CREATE DATABASE name_of_new_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

现在建议使用 utf8mb4 而不是 utf8.
这是我们必须在其他地方阅读的技术解释。
也许谷歌呢?

如果我们不知道如何登录,这是登录命令:

mysql -u[USERNAME] -p

完成上述 4 个步骤后,我们应该可以通过访问 yoursite.com/nextcloud/从浏览器运行设置

日期:2020-06-02 22:17:00 来源:oir作者:oir