Nextcloud是一个非常酷的解决方案,可以在云中甚至本地服务器上托管我们自己的文件。
安装 Nextcloud
假设我们已经安装了 Apache、PHP 和 MySQL,那么运行 Nextcloud 将很容易。
Nextcloud 不需要任何另外的专业知识即可工作。
- 我们需要确保安装了所需的模块。
当我们安装 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-搜索要安装的模块。这应该会为我们提供如下面的屏幕截图所示的结果。
- 导航到/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
- 我们现在应该配置 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 版本。
例如,我有一份自己的网站在本地运行以进行开发。
- 最后,创建一个数据库供 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/从浏览器运行设置