
nextcloud
需要安装的模块:fileinfo、opcache、redis、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.service和nextcloudcron.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
定时器单元中的重要部分是OnBootSec和OnUnitActiveSec启动”会在启动5分钟后启动定时器,否则每次启动后都必须手动启动定时器。 OnUnitActiveSec将在服务单元上次激活后设置一个15分钟的计时器。
现在剩下的就是通过运行这些命令来启动并启用计时器:
systemctl start nextcloudcron.timer systemctl enable nextcloudcron.timer
注意:
在管理菜单中选择Cron选项以查看后台作业。 如果留在AJAX它会在每次页面加载时执行AJAX作业。



本文地址:https://www.xxnet.eu.org/?post=236
版权声明:若无注明,本文皆为“点滴记忆---观雨亭”原创,转载请保留文章出处。
