nextcloud管理手册 --- 安装和服务器配置(在Linux上安装)
您可以选择将Nextcloud安装在现有web服务器的目录中,例如https://www.example.com/nextcloud/,如果您希望Nextcloud可以从其自己的子域(例如https://cloud.example.com/)访问,则可以选择安装在虚拟主机中。它包括通过LDAP进行用户管理,可以取代现有的Active Directory设置,并可选的ONLYOFFICE和Colla
在Linux上安装
部署建议
在我们的客户门户中查找针对企业的最新部署建议。
在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/Mint | CentOS/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服务器
在Windows上安装(虚拟机)
如果您使用的是Windows,启动并运行Nextcloud的最简单方法是使用虚拟机(VM)。有两种选择:
企业/中小企业设备
Nextcloud GmbH维护一个建立在Univention企业服务器(UCS)上的免费设备,具有简单的图形设置和基于web的管理。它包括通过LDAP进行用户管理,可以取代现有的Active Directory设置,并可选的ONLYOFFICE和Collabora Online集成,还有更多的应用程序可供轻松快速安装。
它可以安装在硬件上,也可以使用VirtualBox、VMWare (ESX)和KVM镜像在虚拟机中运行。
请在此下载该设备:
- Univention Corporate Server (UCS)
- Home User/SME appliance
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安装程序。这里有一个快速的操作方法:
- 从安装页面获取该文件
- 上传setup-nextcloud.php到你的网络空间
- 将你的浏览器指向你的网络空间上的setup-nextcloud.php
- 按照说明配置Nextcloud
- 登录到新创建的Nextcloud实例!
安装程序使用与Nextcloud中内置更新程序相同的Nextcloud版本。在一个主要版本发布后,它可能需要一个月的时间才能通过web安装程序和更新程序获得。这样做是为了在一段时间内分散新主要版本的部署。
在TrueNAS上安装
请参阅TrueNAS安装文档。
通过安装脚本安装
最简单的安装方法之一是使用Nextcloud VM或NextcloudPI脚本。基本上只需要两步:
-
下载最新的安装脚本。
-
运行脚本:
sudo bash nextcloud_install_production.sh
或
-
下载最新的安装脚本。
-
运行脚本:
sudo bash install.sh
一个引导设置将跟随和唯一的事情,你要做的是按照屏幕上的说明,当给你。
更多推荐
所有评论(0)