【原文链接:https://wzfou.com/nextcloud-install/】
NextCloud由原ownCloud联合创始人Frank Karlitschek创建的,继承原ownCloud的核心技术又有不少的创新。在功能上NextCloud和ownCloud差不多,甚至还要丰富一些,在用户使用体验方面,NextCloud安装与使用都非常地顺手,最重要的是NextCloud完全开源免费。
NextCloud不仅是一个私人云网盘平台,也支持多用户同步协作使用。NextCloud支持账号注册,可以为账号开启两步验证,以确保账号安全。同时,NextCloud对于公开分享的文件可以设置有效期,对于上传的视频、音乐、Office文档等直接支持在线预览和播放。
NextCloud还提供了上百种的免费应用和插件,这些NextCloud应用与插件可以将NextCloud打造成为一个在线文档共享与编辑平台、音乐与视频娱乐平台以及文件存储下载平台。当然,如果是自己手动安装的NextCloud的话,那么这些插件也得自己配置好环境才行。
本篇文章就来分享一下手动安装NextCloud教程,更多的站长自建服务与平台,你还可以试试:
- Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
- VestaCP与WHMCS整合教程-实现自助开通虚拟主机销售主机空间产品
- ISPConfig与WHMCS整合方法-自动激活开通虚拟主机和管理空间用户
PS:2017年9月20日更新,觉得手动安装麻烦的朋友,可以使用一键安装的方法,参考:Nextcloud个人云存储绝佳选择:一键自动安装方法和云盘使用体验。
一、LAMP安装NextCloud
NextCloud官网:
- https://nextcloud.com/
准备好LAMP环境。LAMP即Apache、MysqL或Mariadb、PHP环境,NextCloud官方推荐使用Apache运行NextCloud,自带了.htaccess规则。而Nginx的话还需要自己手动编写NextCloud的URL重写规则。推荐以下方法一键安装LAMP:
- Linux VPS建站工具LNMP 1.4安装与使用-SSL自动配置续期和多版本PHP支持
- OneinStack一键安装脚本-轻松部署Let’s Encrypt证书配置Https站点
LNMP 1.4和OneinStack都可以一键安装LAMP环境,这里我以OneinStack来作为操作演示,在安装OneinStack时选择组件时选择Apache即可,PHP建议使用7.0以上,数据库的话建议Mariadb。其它的缓存组件也可以安装。
绑定好域名与添加SSL证书。OneinStack在添加网站时直接就可以添加SSL证书了,同时要求绑定的域名必须提前解析到服务器的IP上,这样才可以一键生成Lets免费证书。
下载NextCloud程度包安装。到官网:https://nextcloud.com/install/#instructions-server,下载最新的程序包解压上传到网站的根目录。
为NextCloud建立新的数据库。
访问域名就会自动进入到NextCloud的安装页面了,填写你的管理员账号与密码,然后在下方设置好文件存储路径,最好与程序不要在同一个目录下。同时填入SQL数据库信息,完成安装。(点击放大)
完成后,你就可以登录到NextCloud后台,这就是NextCloud的用户管理界面。(点击放大)
二、LNMP安装NextCloud
准备LNMP环境和上面一样,只是在LNMP 1.4和OneinStack安装时选择Nginx环境即可,其它的组件都一样有选择性地安装。如果安装了Zend OPcache,可能在安装时会提示错误:“PHP 被设置为移除内联块, 这将导致多个核心应用无法访问
。
解决方法:修改php.ini中Opcache的参数进行修改,如果是Oneinstack的话需要在/usr/local/php/etc/php.d/ext-opcache.ini 中修改。找到此代码并改成:opcache.save_comments=1 ,因为默认是0,改完重启php-fpm就行。
编写URL地址重写规则。出现错误:No input file specified.,主要是Nginx还需要自己写重写规则,你可以将以下规则复制粘贴到/usr/local/nginx/conf/vhost/你的网站.conf,由于规则太多,你也可单独建立一个文件,然后在你的网站.conf引用即可。具体规则如下:
#(可选)添加如下header主要为了安全
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
#(可选)为了支持user_webfinger app
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
#日历和联系人,建议加上
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
#设置上传文件的最大大小
client_max_body_size 512M;
fastcgi_buffers 64 4K;
#将所有请求转发到index.php上
location / {
rewrite ^ /index.php$uri;
}
#安全设置,禁止访问部分敏感内容
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
#默认有,替换原来的就行
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass unix:/dev/shm/php-cgi.sock; #这边我改过,参照原来的
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
include fastcgi.conf;
}
#安全设置,禁止访问部分敏感内容
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
fileinfo\Memcached\Redis等都可以通过OneinStack一键安装。
NextCloud安全与性能优化:这种提示一般在NextCloud的服务器管理中可以看到,建议缓存类的直接安装一个即可,安装多了也没有什么用。
为了您服务的安全和性能, 请将所有设置配置正确. 我们将会进行一些自动化检查以帮助您完成这项工作. 详情请查看 “小提示” 部分及相关文档.
PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.
HTTP 请求头 “Strict-Transport-Security” 没有配置为至少 “15552000” 秒. 出于增强安全性考虑, 我们推荐按照安全提示中的说明启用 HSTS.
内存缓存未配置. 如果可用, 请配置 memcache 以增强性能. 更多信息请查看我们的文档.
PHP 的组件 OPcache 没有正确配置. 为了提供更好的性能, 我们建议在php.ini文件中使用下列设置:opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
NextCloud添加Memcached缓存。修改程序目录下的config目录中的config.php文件,在配置文件中添加如下,这个是多个Memcached实例,单个自己改:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
array('server1.example.com', 11211),
array('server2.example.com', 11211),
),
NextCloud添加Redis缓存。在配置文件中添加如下,这个是通过TCP连接的
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
还有性能更好的UNIX连接
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => '/var/run/redis/redis.sock',
'port' => 0,
'dbindex' => 0,
'password' => 'secret',
'timeout' => 1.5,
),
同时,官方还推荐加入如下,来用于存储文件锁
'memcache.locking' => '\OC\Memcache\Redis',
Nginx运行NextCloud一切正常。
三、NextCloud添加应用
NextCloud提供了丰富了内置应用,并且这些应用可以直接在NextCloud的后台下载并安装,有点像我们的Wordpress插件一样直接安装。这些介绍几个有用的NextCloud插件,相信大家一定会用到。
SMTP发信与限制最大上传文件。这个直接在NextCloud的后台设置中就可以设置选项,SMTP可以让我们调用第三方的发信服务来发送NextCloud的邮件,自带的PHP发信也可以,但是基本上会被各大邮箱判定为垃圾邮件。
数据存储加密与外挂存储。首先到NextCloud应用中激活Default encryption module、External storage support这两个插件。
启用数据加密需要谨慎:因为数据一旦加密被启用, 之后上传到服务器的所有文件都将服务器上加密,只有当启用状态的加密模块支持解密并且所有前提都满足时 (例如: 设定恢复密钥) 才能解除加密。请注意, 加密会增加文件大小,单独的加密不能保证系统的安全性,你需要同时设置恢复密钥。
外挂存储主要是可以让NextCloud通过SMB / CIFS 登录 OC 的方式挂载第三方的存储应用,启用这个插件有些麻烦,可能提示:没有安装 “smbclient”. 安装命令:apt-get install smbclient和apt-get install php-smbclient。
四、总结
至于选择Apache还是Nginx来运行NextCloud主要还是取决你对Nginx或者Apache的熟悉程度,LNMP 1.4和OneinStack对Nginx都做了很好了优化,Http 2.0、SSL证书还有缓存组件和PHP函数都可以一键安装与配置,省去了不少的麻烦。
NextCloud的图片预览、音乐视频在线播放等基本功能都是没有问题了,在使用NextCloud应用过程中倒是遇到了不少的问题。首要的问题就是NextCloud的应用配置比较难,例如Office文档插件、RSS在线阅读器插件等,都需要自己手动配置好服务器环境。
文章出自:挖站否 https://wzfou.com/nextcloud-install/,部分内容参考自:zrj96 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。