nextcloud管理手册 --- 安装和服务器配置(在Linux上安装)

衡丰茂
2023-12-01

部署建议

在我们的客户门户中查找针对企业的最新部署建议。

在Linux上安装

如果你更喜欢从源tarball安装,你可以使用经典的LAMP堆栈(Linux, Apache, MySQL/MariaDB, PHP)从头开始安装Nextcloud。本文档提供了使用Nextcloud .tar归档文件在Ubuntu 18.04 LTS服务器(Apache和MariaDB)上安装Nextcloud的完整操作。建议使用该方法安装Nextcloud。

支持selinux的发行版(如CentOS、Fedora和Red Hat Enterprise Linux)的管理员可能需要设置新规则以启用安装Nextcloud。有关建议的配置,请参阅SELinux配置提示

如果你喜欢更自动化的Nextcloud安装,而你的Linux发行版没有软件包,你可以选择安装社区Snap软件包。这包括一个完整的生产就绪堆栈,将为您维护HTTPS证书,并将根据需要自动更新以保持安全。您也可以使用Nextcloud VM脚本直接安装在干净的Ubuntu服务器或NextcloudPi脚本(类似的基于Debian的项目)。它将为你设置一切,包括自动安装应用程序的脚本,如Collabora, OnlyOffice, Talk等等。请注意,Nextcloud GmbH不正式支持这三个选项。

本安装指南概述了所需的依赖项及其配置。对于特定于发行版的安装指南,请查看Ubuntu 22.04 LTS上的示例安装CentOS 8上的示例安装

手动安装前提条件

Nextcloudtar归档文件包含所需的所有PHP模块。本节列出所有必需和可选的PHP模块。有关模块的更多信息,请参阅PHP手册。您的Linux发行版应该包含所有必需模块的包。您可以通过输入php -m | grep -i <module_name>来检查模块是否存在。如果得到一个结果,则该模块存在。

要求:

  • PHP (有关支持的版本列表,请参阅系统要求)
  • PHP module ctype
  • PHP module curl
  • PHP module dom
  • PHP module fileinfo (included with PHP)
  • PHP module filter (only on Mageia and FreeBSD)
  • PHP module GD
  • PHP module hash (only on FreeBSD)
  • PHP module JSON (included with PHP >= 8.0)
  • PHP module libxml (Linux package libxml2 must be >=2.7.0)
  • PHP module mbstring
  • PHP module openssl (included with PHP >= 8.0)
  • PHP module posix
  • PHP module session
  • PHP module SimpleXML
  • PHP module XMLReader
  • PHP module XMLWriter
  • PHP module zip
  • PHP module zlib

数据库连接器(为您的数据库选择一个:)

  • PHP module pdo_sqlite (>= 3, usually not recommended for performance reasons)
  • PHP module pdo_mysql (MySQL/MariaDB)
  • PHP module pdo_pgsql (PostgreSQL)

推荐包:

  • PHP module bz2 (推荐,用于提取应用程序)
  • PHP module intl (提高语言翻译性能并修复非ascii字符的排序)

特定应用程序需要:

  • PHP module ldap (for LDAP integration)
  • PHP module smbclient (SMB/CIFS integration, see SMB/CIFS)
  • PHP module ftp (for FTP storage / external user authentication)
  • PHP module imap (for external user authentication)
  • PHP module bcmath (for passwordless login)
  • PHP module gmp (for passwordless login)

推荐用于特定应用程序(可选):

  • PHP module gmp (for SFTP storage)
  • PHP module exif (for image rotation in pictures app)

为了增强服务器性能(可选),选择以下memcached之一:

  • PHP module apcu (>= 4.0.6)
  • PHP module memcached
  • PHP module redis (>= 2.2.6, required for Transactional File Locking)

请参阅内存缓存以了解如何选择和配置memcache。

预览生成(可选):

  • PHP module imagick
  • avconv or ffmpeg
  • OpenOffice or LibreOffice

如果PDF文件的预览生成失败,并提示“未授权”错误消息,则必须调整imagick策略文件。参见https://cromwell-intl.com/open-source/pdf-not-authorized.html

对于命令行处理(可选):

  • PHP module pcntl (按ctrl-c可以中断命令)

您还需要确保在php.ini文件中pcntl_signal和pcntl_signal_dispatch没有被禁用。

对于命令行更新程序(可选):

  • PHP module phar (通过sudo -u www-data php /var/www/nextcloud/updater/updater.phar升级Nextcloud)

你的Web服务器(即Apache的mod_webdav)不需要WebDAV模块,因为Nextcloud有自己的内置WebDAV服务器SabreDAV。如果mod_webdav是启用的,你必须禁用它。(有关配置示例,请参阅Apache Web服务器配置。)

Apache Web服务器配置

配置Apache需要创建一个配置文件。在Debian、Ubuntu及其衍生版本上,这个文件将是/etc/apache2/sites-available/nextcloud.conf。在Fedora、CentOS、RHEL等类似系统上,配置文件为/etc/httpd/conf.d/nextcloud.conf。

您可以选择将Nextcloud安装在现有web服务器的目录中,例如https://www.example.com/nextcloud/,如果您希望Nextcloud可以从其自己的子域(例如https://cloud.example.com/)访问,则可以选择安装在虚拟主机中。

要使用基于目录的安装,将以下文件放入nextcloud.conf中,将目录和别名文件路径替换为适合您的系统的文件路径:

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
    Dav off
  </IfModule>
</Directory>

要使用虚拟主机安装,将以下内容放在你的nextcloud.conf中,替换ServerName,以及DocumentRoot和Directory文件路径,并使用适合你的系统的值:

<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  your.server.com

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

在Debian、Ubuntu及其衍生版本上,您应该运行以下命令来启用配置:

a2ensite nextcloud.conf

其他Apache配置

  • 为了让Nextcloud正常工作,我们需要mod_rewrite模块。通过运行:

    a2enmod rewrite
    

    其他推荐模块有mod_headers, mod_env, mod_dir和mod_mime:

    a2enmod headers
    a2enmod env
    a2enmod dir
    a2enmod mime
    

    如果你运行的是mod_fcgi而不是标准的mod_php,也要启用:

    a2enmod setenvif
    
  • 必须为Nextcloud禁用任何服务器配置的身份验证,因为它在内部对DAV服务使用基本身份验证。如果你在父文件夹上打开了身份验证(例如,通过AuthType Basic指令),你可以专门关闭Nextcloud条目的身份验证。按照上面的示例配置文件,在部分中添加以下行:

    Satisfy Any
    
  • 在使用SSL时,要特别注意服务器名。您应该在服务器配置中以及证书的CommonName字段中指定一个。如果您希望通过互联网访问您的Nextcloud,那么将这两个设置为您想要访问您的Nextcloud服务器的域。

  • 现在重新启动Apache:

    service apache2 restart
    
  • 如果您在子目录中运行Nextcloud,并希望使用CalDAV或CardDAV客户端,请确保您已配置了正确的服务发现url。

漂亮的url

漂亮的url删除了所有Nextcloud url中的index.php部分,例如在https://example.org/nextcloud/index.php/s/Sv1b7krAUqmF8QQ这样的共享链接中,使url更短,因此更漂亮。

mod_env和mod_rewrite必须安装在你的web服务器上,.htaccess必须是HTTP用户可写的。执行sudo a2enmod env和sudo a2enmod rewrite命令开启mod_env和mod_rewrite。然后你可以在config.php中设置两个变量:

'overwrite.cli.url' => 'https://example.org/nextcloud',
'htaccess.RewriteBase' => '/nextcloud',

如果你的安装可以在https://example.org/nextcloud或:

'overwrite.cli.url' => 'https://example.org/',
'htaccess.RewriteBase' => '/',

如果没有安装在子文件夹中。最后运行occ命令更新你的.htaccess文件:

sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess

每次更新后,这些更改都会自动应用到.htaccess文件。

启用SSL

您可以通过纯HTTP使用Nextcloud,但我们强烈建议您使用SSL/TLS加密所有服务器流量,并保护用户登录和传输中的数据。

在Ubuntu下安装的Apache已经安装了一个简单的自签名证书。您所要做的就是启用ssl模块和默认站点。打开一个终端并运行:

a2enmod ssl
a2ensite default-ssl
service apache2 reload

自签名证书也有缺点,尤其是当您计划让Nextcloud服务器公开访问时。请考虑获取由签名机构签名的证书。向您的域名注册商或托管服务机构查询商业证书的优惠。或者使用免费的Let’s Encrypt

安装向导

重新启动Apache后,必须通过运行图形化安装向导或在命令行上使用occ命令来完成安装。要启用此功能,请将Nextcloud目录的所有权更改为HTTP用户:

chown -R www-data:www-data /var/www/nextcloud/

支持SELinux发行版的管理员可能需要编写新的SELinux规则来完成他们的Nextcloud安装;参见SELinux配置提示。

要使用occ,请参见从命令行安装

要使用图形化安装向导,请参见安装向导

SELinux配置提示

有关支持SELinux发行版(如Fedora和CentOS)的建议配置,请参阅SELinux配置

Php.ini配置说明

请记住,对php.ini的更改可能必须在多个ini文件上配置。例如,date.timezone设置可能就是这种情况。

php.ini -由Web服务器使用:

 /etc/php/8.0/apache2/php.ini
or
  /etc/php/8.0/fpm/php.ini
or ...

php.ini -由php-cli使用,因此由Nextcloud CRON作业使用:

/etc/php/8.0/cli/php.ini

必须根据所安装的PHP(8.0、8.1或8.2)设置路径名称。

Php-fpm配置说明

系统环境变量
当您使用php-fpm时,系统环境变量如PATH、TMP或其他变量不会像使用php-cli时那样自动填充。像getenv(‘PATH’)这样的PHP调用;因此可以返回一个空结果。因此,您可能需要在适当的php-fpm ini/config文件中手动配置环境变量。

下面是这些ini/config文件的一些根路径示例:

Debian/Ubuntu/MintCentOS/Red Hat/Fedora
/etc/php/8.0/fpm//etc/php-fpm.d/

在这两个示例中,ini/config文件被称为www.conf,根据发行版版本或您所做的自定义,它可能位于诸如pool.d这样的子目录中。

通常,你会发现一些或所有的环境变量已经在文件中,但是像这样注释掉:

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

取消适当的现有条目的注释。然后运行printenv PATH确认路径,例如:

$ printenv PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/

如果文件中没有任何系统环境变量,则必须添加它们。

或者也可以通过修改以下内容来使用系统的环境变量:

/etc/php/8.0/fpm/pool.d/www.conf

并取消注释行:

clear_env = no

当您使用共享主机或控制面板来管理您的Nextcloud虚拟机或服务器时,出于安全性和灵活性的考虑,配置文件几乎肯定位于其他地方,因此请检查您的文档以获得正确的位置。

请记住,可以为php-cli和php-fpm创建不同的设置,也可以为不同的域和网站创建不同的设置。检查设置的最佳方法是查看PHP版本和信息。

最大上传大小

如果您想增加最大上传大小,您还必须修改php-fpm配置并增加upload_max_filesize和post_max_size值。为了应用这些更改,您需要重新启动php-fpm和HTTP服务器。

.htaccess notes for Apache
Nextcloud自带Nextcloud /.htaccess文件。因为PHP -fpm不能读取.htaccess中的PHP设置,这些设置和权限必须在nextcloud/.user.ini文件中设置。

其他Web服务器

NGINX配置

在Windows上安装(虚拟机)

如果您使用的是Windows,启动并运行Nextcloud的最简单方法是使用虚拟机(VM)。有两种选择:

企业/中小企业设备
Nextcloud GmbH维护一个建立在Univention企业服务器(UCS)上的免费设备,具有简单的图形设置和基于web的管理。它包括通过LDAP进行用户管理,可以取代现有的Active Directory设置,并可选的ONLYOFFICE和Collabora Online集成,还有更多的应用程序可供轻松快速安装。

它可以安装在硬件上,也可以使用VirtualBox、VMWare (ESX)和KVM镜像在虚拟机中运行。

请在此下载该设备:

Nextcloud VM由T&M Hansson IT维护,并提供了几个不同的版本。Collabora、OnlyOffice、全文搜索和其他应用程序都可以很容易地安装其中的脚本,你可以选择在第一次安装时运行,也可以稍后下载,然后再运行。你可以在GitHub上找到所有当前可用的自动化应用程序安装。

虚拟机有不同的大小和版本。

你可以在这里找到所有可用的版本。

完整的说明和下载见:

只要可以在hypervisor中挂载OVA、VMDK或VHD/VHDX VM,就可以在多个不同的操作系统上安装VM。如果您使用KVM,则需要从GitHub上的脚本安装虚拟机。您可以按照README中的说明进行操作。

通过Snap包安装

snap是一个压缩文件,包含一个应用程序及其依赖项,以及它应该如何安全地在系统上运行的描述,特别是它应该与其他软件通信的不同方式。最重要的是,snap被设计成与底层系统和其他应用程序隔离的安全、沙盒化、容器化的应用程序。

在终端上执行以下命令安装Nextcloud Snap Package:

sudo snap install nextcloud

snapd技术是支持snap的核心,它提供了一种在Linux系统上打包、分发、更新和运行OS组件和应用程序的新方法。在snapcraft.io上查看更多关于快照的信息。

在Ubuntu上启用snaps并安装nextcloud
snaps是打包了所有依赖项的应用程序,可以从一个构建版本在所有流行的Linux发行版上运行。它们会自动更新并优雅地回滚。
snaps可以从Snap Store中发现和安装,Snap Store是一个拥有数百万受众的应用商店。

启用snaps
如果你运行的是Ubuntu 16.04 LTS(Xenial Xerus)或更高版本,包括Ubuntu 18.04 LTS(Bionic Beaver)和Ubuntu 20.04 LTS(Focal Fossa),你不需要做任何事情。Snap已安装并准备就绪。
对于14.04 LTS(Trusty Tahr)和15.10(Wily Werewolf)之间的Ubuntu版本,以及默认情况下不包括snap的Ubuntu版本来说,可以通过搜索snapd从Ubuntu软件中心安装snap。
或者,可以从命令行安装snapd:
sudo apt update
sudo apt install snapd
请注销并重新登录,或者重新启动系统,以确保snaps的路径得到正确更新。

安装nextcloud
要安装nextcloud,只需使用以下命令:
sudo snap install nextcloud

通过VPS或web空间上的web安装程序进行安装

当您无法访问命令行时,例如在虚拟主机或VMPS上,一个简单的选择是使用我们的web安装程序。这个脚本可以在我们的服务器安装页面上找到。

该脚本检查依赖项,从官方服务器下载Nextcloud,用正确的权限和正确的用户帐户解包。最后,您将被重定向到Nextcloud安装程序。这里有一个快速的操作方法:

  1. 从安装页面获取该文件
  2. 上传setup-nextcloud.php到你的网络空间
  3. 将你的浏览器指向你的网络空间上的setup-nextcloud.php
  4. 按照说明配置Nextcloud
  5. 登录到新创建的Nextcloud实例!

安装程序使用与Nextcloud中内置更新程序相同的Nextcloud版本。在一个主要版本发布后,它可能需要一个月的时间才能通过web安装程序和更新程序获得。这样做是为了在一段时间内分散新主要版本的部署。

在TrueNAS上安装

请参阅TrueNAS安装文档

通过安装脚本安装

最简单的安装方法之一是使用Nextcloud VM或NextcloudPI脚本。基本上只需要两步:

  1. 下载最新的安装脚本。

  2. 运行脚本:

    sudo bash nextcloud_install_production.sh
    

  1. 下载最新的安装脚本。

  2. 运行脚本:

    sudo bash install.sh
    

一个引导设置将跟随和唯一的事情,你要做的是按照屏幕上的说明,当给你。

 类似资料: