搭建OwnCloud私人云盘时所遇到BUG,附解决方案

如果遇到不懂的地方,请参考我上篇文章:VPS能做什么?建站?API?不,教你如何搭建私人云盘

第一个:PHP模块’文件信息’丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果

原因分析 :PHP没有安装 fileninfo 模块

解决方法:去软件管理商店 – 已安装 – 选择PHP的设置 – 安装拓展 – fileinfo – 安装即可,安装完毕记得重启Apache

Image 097

第二个:事务文件锁定应配置为使用基于内存的锁定,而不是默认的基于慢速数据库的锁定

原因分析:什么是事务文件锁定?

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

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

但是问题来了,明明配置了内存缓存,为什么仍然会有这样的提示信息?

翻阅了一下文档,看到了这样一句话:

Memcached is a reliable old-timer for shared caching on distributed servers. It performs well with ownCloud with one exception: it is not suitable to use with Transactional File Locking. This is because it does not store locks, and data can disappear from the cache at any time. Given that, Redis is the best memory cache to use.

Memcached是分布式服务器上共享缓存的可靠的旧计时器。它与ownCloud运行良好,但有一个例外:它不适合与事务性文件锁定一起使用。这是因为它不存储锁,数据可以随时从缓存中消失。鉴于此,Redis是使用最好的内存缓存。

也就是说,我们常用的Memcached方式是无法用于文件锁的存储

解决方案:使用 Redis

  1. 软件商店 – 搜索 – Redis – 安装。然后安装PHP redis模块,重启Apache
  2. 打开安装目录下面的 config/config.php 文件,添加如下代码
<?php
  $CONFIG = array (
    ......
    // 下面是需要添加的代码
    'memcache.local' => '\OC\Memcache\Redis',
    'memcache.locking' => '\OC\Memcache\Redis',
    'redis' => array(
    'host' => 'localhost',
    'port' => 6379,
  ),
);

第三个:我们建议启用系统 cron,任何其他 cron 方法可能对性能和可靠性有影响

解决方案:打开ownCloud云盘 – 设置 – 常规 – 计划任务 – 选择 Cron

Image 098

第四个:一些文件没有通过完整性检查

完整报错: 一些文件没有通过完整性检查,如何解决此问题的详细信息可以查看我们的 文档. (无效文件列表… / 重新扫描…)

解决方案

  1. 将 ownCloud 目录下的 .htaccess和.user.ini 文件复制到现在的 www.shixingceping.com 目录下
  2. 如果有404.html,删掉就行了

第五个:您正在通过 HTTP 访问该站点,我们强烈建议您按照安全提示配置服务器强制使用 HTTPS

这个不用解决也没事,如果小伙伴有强迫症,那就去申请一个HTTPS的证书


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

<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>

参考文章:

留下评论