nextcloud安装后的配置

20:55 星期一 eehello 发表于 CentOS 分类,

3


nextcloud
需要安装的模块:fileinfo、opcacheredis、exif

安装完毕进入设置,有几个提醒:
1、getenv("PATH")为空

PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv("PATH") 测试时仅返回空结果.

参考:http://baijiahao.baidu.com/s?id=1594012451314610712&wfr=spider&for=pc


编辑 vi /www/server/php/70/etc/php-fpm.conf

黏贴

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

重启下服务 service php-fpm-70 restart

2、事务文件锁定应配置为使用基于内存的锁定,而不是默认的基于慢速数据库的锁定。
参考:https://www.orgleaf.com/3052.html

原因分析:
事务文件锁定
事务文件锁定功能的作用:保护文件在正常操作时不被损坏。具体地,这个功能能够防止多个用户操作同一文件(不使用类似Collabora Online的多人协作平台)时导致文件损坏或系统错误,比如修改一个文件夹中的文件,那么此时这个文件所处的文件夹就会被锁定,无法被重命名、移动等等,知道对该文件的修改完成。

由上面简单的介绍可知,这个功能需要不断存取文件夹的状态(锁定or未锁定)信息。这种情况下,内存缓存是最好的解决方案,如果没有配置内存缓存,ownCloud就会使用数据库来存取,效率会低很多。

解决办法:
1、在宝塔面板中启用redis扩展
2、接下来,在ownCloud的config/config.php文件中添加以下内容来为ownCloud启用Redis:

'memcache.local' => '\OC\Memcache\Redis',
'redis' => [
     'host' => 'localhost',
     'port' => 6379,
 ],
'memcache.locking' => '\OC\Memcache\Redis',  //使用Redis来管理事务文件锁定

如果没有最后一行的内容,即便使用Redis作为缓存,仍然会显示警告信息

3、您正在访问来自不信任域名的服务器。
参考:https://www.orgleaf.com/886.html

如果在安装ownCloud后,更换了访问方式,比如刚开始是www.example.com/owncloud,变成了www.othersite.com/owncloud,那么在访问时可能得到这“您正在访问来自不信任域名的服务器。”这样的提示。
对于Linux

首先使用cd命令进入ownCloud安装目录,在SSH中执行

# vim config/config.php

在其中修改(如果你对Linux中的文本编辑器不熟悉,请自行百度)

对于Windows
在owncloud安装目录中的config目录找到config.php,然后用Notepad打开。

    所有参数的添加删除全部在<?php和);标签内进行
 
  将你想要使用的域名(比如www.example.com)按以下格式填写到第七行的 array (, 和 ), 之间
 
  1 => 'www.example.com‘,
 
  前面的数字按照顺序依次递增


4、HTTP 严格传输安全(Strict-Transport-Security)报头未配置到至少“15552000”秒。处于增强安全性考虑,我们推荐按照安全提示启用 HSTS。

参考:https://www.mebox.cn/develop/945.html

原网址解决方法:编辑“/usr/local/nginx/conf/vhost.conf”文件找到对应网站的443端口段添加下面代码(保存后重启nginx)
因为我是通过宝塔面板安装的nginx,所以上面那个目录里面没有相关配置文件。
解决办法是直接打开网站设置,在“配置文件”选项里面第8行直接添加如下代码:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";



5、更改上传大小限制
参考:https://www.orgleaf.com/2830.html

直接在宝塔面板php管理里面

上传限制改为2040MB

超时限制改为3600秒

在设置--其他里面上传大小改为1.8G


6、连接Google Drive
参考:https://www.orgleaf.com/903.html

js来源地址:
https://xx.xxx.com

owncloud10回源地址:
https://xx.xxx.com/index.php/settings/personal
https://xx.xxx.com/index.php/settings/admin?sectionid=storage


nextcloud12回源地址:
https://xx.xxx.com/index.php/settings/personal
https://xx.xxx.com/index.php/settings/admin/externalstorages


7、后台任务

参考:https://docs.nextcloud.com/server/12/admin_manual/configuration_server/background_jobs_configuration.html


        像Nextcloud这样的系统有时需要定期完成任务,而无需用户交互或阻碍Nextcloud的性能。 为此,作为系统管理员,您可以定义后台作业(例如,数据库清理),这些后台作业无需用户交互即可执行。
这些作业通常被称为cron作业 。 Cron作业是计划在固定时间,日期或间隔周期性运行的命令或基于shell的脚本。 cron.php是一个Nextcloud内部进程,可根据需要运行这些后台作业。
Nextcloud插件应用程序cron.php自动向cron.php注册操作,以处理典型的内务操作,例如垃圾收集临时文件或使用filescan()为外部安装的文件系统检查新更新的文件。

参数
在管理员设置菜单中,您可以配置如何执行cron-jobs。 您可以选择以下选项之一:
    AJAX
    Webcron
    cron
        
您可以通过三种方式安排cron作业 - 使用AJAX,Webcron或cron。 默认的方法是使用AJAX。 但是,推荐的方法是使用cron。
AJAX调度方法是默认选项。 不幸的是,它也是最不可靠的。 每次用户访问Nextcloud页面时,都会执行一个后台作业。 这种机制的优势在于它不需要访问系统,也不需要向第三方服务注册。 与Webcron服务相比,这种机制的缺点是它需要定期访问页面才能触发它。
注意:
特别是在使用活动应用程序或外部存储时,添加,更新或删除新文件时,应首选以下两种方法之一。

Webcron

通过在外部webcron服务(例如easyCron )上注册您的Nextcloud cron.php脚本地址,您可以确保定期执行后台作业。 要在服务器上使用此类服务,您必须能够使用Internet访问您的服务器。 例如:

URL to call: http[s]://<domain-of-your-server>/nextcloud/cron.php


Cron

        使用操作系统cron功能是执行常规任务的首选方法。 此方法可以执行预定作业,而不会受到Web服务器可能具有的固有限制。
        要在缺省Web服务器用户(通常是www)下每15分钟在lnix系统上运行cron作业,您必须设置以下cron作业以调用cron.php脚本:

#crontab -u www -e
*/15 * * * * php -f /www/wwwroot/nextcloud/cron.php

您可以通过执行以下命令来验证是否已添加和计划cron作业:

#crontab -u www -l
*/15 * * * * php -f /www/wwwroot/nextcloud/cron.php

/www/wwwroot/nextcloud/cron.php替换为当前Nextcloud安装的路径
注意:
在某些系统上,可能需要调用php-cli而不是php。

注:以上方法在centos7中不起作用
如果systemd安装在系统上,需要用systemd定时器替代cron作业。
这种方法需要两个文件: nextcloudcron.servicenextcloudcron.timer 。 在/etc/systemd/system/创建这两个文件。

nextcloudcron.service应该如下所示:

[Unit]
Description=Nextcloud cron.php job
[Service]
User=www
ExecStart=/usr/bin/php -f /www/wwwroot/nextcloud/cron.php
[Install]
WantedBy=basic.target

将用户www替换为您的http服务器的用户,将/www/wwwroot/nextcloud/cron.php 替换为您的nextcloud目录中cron.php的位置。

nextcloudcron.timer应该看起来像这样:

[Unit]
Description=Run Nextcloud cron.php every 15 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.target


定时器单元中的重要部分是OnBootSecOnUnitActiveSec启动”会在启动5分钟后启动定时器,否则每次启动后都必须手动启动定时器。 OnUnitActiveSec将在服务单元上次激活后设置一个15分钟的计时器。

现在剩下的就是通过运行这些命令来启动并启用计时器:

systemctl start nextcloudcron.timer
systemctl enable nextcloudcron.timer

注意:
在管理菜单中选择Cron选项以查看后台作业。 如果留在AJAX它会在每次页面加载时执行AJAX作业。



« 上一篇:openwrt sftp设置 manjaro安装后的简易配置:下一篇 »

评论:

seohyunxian
2018-09-22 19:34
centos7.2+nginx+php7+nextcloud14or13
第二种方法,cron方式去执行后台作业,我开启了selinux总是不能执行,关闭就正常了。版本13和14都这样,请问有遇到过吗?我曾经在官方留言,但未得到回应。
eehello
2018-09-23 08:04
@seohyunxian:不好意思,我是菜鸟。我都是默认关闭selinux的,所以没有遇见过这种情况。而且我用的是systemd定时器方法
seohyunxian
2018-09-22 19:38
官方的问题帖子:
https://help.nextcloud.com/t/cron-does-not-work/31239

发表评论: