答案1
请注意:这些步骤仅经过部分测试。
如果您启用了文件加密,我有一个坏消息要告诉您:由于config.php
包含密钥,文件无法恢复。
如果没有,我建议采取以下步骤:
备份您当前拥有的内容。
下载并提取 OwnCloud 的新副本
尽可能重新创建好的配置:
- 设置数据库类型和路径(因为你有数据库文件,我猜数据库类型是 sqlite)
- 设置
dbtableprefix
为您的前缀(默认为oc_
)。如有疑问,请查看您的数据库。 - 设置
datadirectory
为您的数据目录 - 设置
installed
为 true。
- 恢复数据目录。它必须与旧路径相同,否则 OwnCloud 将找不到该文件。
由于您丢失了密码盐,您必须为所有用户设置新密码。
$ sudo -u www-data php /var/www/owncloud/occ user:resetpassword admin
Enter a new password:
Confirm the new password:
Successfully reset password for admin
登录后,您应该可以再次访问文件。如果您无法下载文件并收到 404 错误,则数据目录可能与之前的位置不同。
答案2
这取决于未坏的磁盘上的内容。如果这包括所有数据目录,最重要的是 Mysql/Postgresql 数据库,那么除了设置新实例并让系统重新运行所需的时间外,您不会丢失任何东西。
如果其中不包括数据库,那么您的处境就很糟糕了,因为您丢失了所有管理信息和应用程序数据(例如地址簿和日历条目)。您还没有完全陷入困境,因为至少如果 Owncloud 确实将实际数据文件存储在仍处于活动状态的磁盘上,那么实际数据文件应该存在。每个用户和组都会有包含每个文件最后状态的目录,您可以使用这些目录将所有内容重新导入到新实例中。
答案3
将来,您应该定期创建数据库转储并将其与数据内容和 config.php 文件一起直接复制到备份服务器。并考虑迁移到 Nextcloud,因为它更安全、更快、完全开源且功能更多。从 owncloud 迁移到 nextcloud 完全受支持且简单。很好地解决了您的问题