NextCloud安装记录
当前网盘市场可谓风云变幻,一个个网盘倒下,目前国内可以流畅使用的也就剩下百度云、坚果云了.前者空间很大,但是下载速度实在是让人抓狂,想下载过必须要开通会员,而网上流传的不限速客户端又不安全;后者提供无限制存储容量,但是每个月上传下载都有流量限制,只适合工作或者私人小文件使用,不适合大规模文件分享。
所以很有必要搭建一套自己的私有云盘,至少很安全。目前私有云盘的解决方案有owncloud、nextcloud、seafile以及国产的可道云。
之前试用过可道云,UI很漂亮,但是不知道是我安装的问题还是什么原因,整个数据文件夹的权限全变了,为了安全起见,还是卸载了;通过多方面评估后选择了NextCloud,至少没那么商业化
一.程序安装
1.安装web服务器、数据库、php等相关基础服务
不赘述,推荐试用lnmp一键安装包,方便快捷
2.上传NextCloud程序
官方下载地址: https://nextcloud.com/install/#instructions-server
3.安装NextCloud
打开网站地址,自动跳到安装页面,此时会发现页面有报错,
PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.
这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.
这是由于Opcache参数设置问题,修改php.ini就可以了,我用的是Oneinstack,它的参数全部拆分出来了,位置在
/usr/local/php/etc/php.d/ext-opcache.ini
opcache.save_comments=1 //默认是0,修改成1,即可
重启php-fpm
service php-fpm restart
重启后继续打开网站主页,发现报错已经消失,填写管理员账户及数据库相关信息
点击安装完成
程序安装完成后,并没有转到首页,依然报错了.
No input file specified.
需要配置伪静态,打开网站所在的配置文件,添加或修改一下内容
#(可选)添加如下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;
}
#设置上传文件的最大大小(还和php里的那个设置有关)
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;
}
编辑完后,重启nginx服务,然后刷新刚才的错误页,就可以进入正常的页面了
二、程序配置
1.优化
配置Redis缓存,打开NextCloud配置文件,添加以下:
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
这是后台设置的安全警告就没有提示了。
还可以进行主题、插件等的优化,参考官方文档,这里不赘述了。
至此NetxtCloud安装完成。
后续:由于服务器配置并不是特别高,加上NetxCloud的ios客户端体验很差,偶尔会出现问题,UI虽然漂亮点,综合考虑云盘使用了半个月后下线了,后期可能会使用h5ai。
文章为本博客原创作品,版权归本博客,未经许可禁止转载
后来没用这个 弄了个kodexplore
我不敢用kodexplore了....
咋了?有啥bug么?、 = =.
不知道为啥,用上之后所有目录的权限都变了,可能是我没用对,为了安全就不用了