![Linux 托管的 Web 应用程序的配置文件的最佳位置是什么?](https://linux22.com/image/1483112/Linux%20%E6%89%98%E7%AE%A1%E7%9A%84%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E6%9C%80%E4%BD%B3%E4%BD%8D%E7%BD%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
由于我是一名程序员而不是管理员,我希望你能帮助我:
当前,我正在编写一个使用 (XML) 配置文件的 Web 应用程序,用户也可以通过应用程序本身(在 Web 界面中)编辑这些文件。
因此,应用程序需要对它们具有读写权限。
当应用程序包在系统上更新时,它当然应该使用旧版本已经在使用的预先存在的配置文件。(由于配置文件的格式可能因版本不同而略有不同,因此更新过程也可能会修改/更新配置文件)
那么这些文件的官方(Debian)和高度官方(LSB/FHS)位置在哪里?
/etc/myWebApp/config/
(带有符号链接WEBROOT/myWebApp/config -> /etc/myWebApp/config/
)?WEBROOT/myWebApp/config/
?- 别的地方?
更新过程应该如何组织?只需将旧配置文件重命名为config_*.xml.160207
并将其内容转换为新格式config_*.xml
?还是为每个版本使用一个配置目录?
应该如何处理软件包的降级(例如,当为 beta 测试人员创建 PPA 并且用户想要退出 beta 测试并恢复到稳定版本时)?自动反向重命名还是让用户自己修复?
注意:在这种情况下,“用户”是 Web 应用程序的管理员。因此,他拥有更改配置文件的所有权力。(但不需要具备很多 Linux 知识,而且通常不是 root 用户)。“最终用户”将是应用程序及其配置内容的真正用户。
答案1
这取决于您的项目。配置文件可能位于、、,/etc/
但不应该位于、、.../var/www
/opt
/usr/
/sys/
如果配置文件在 /etc 中,包管理器将询问您在更新时要做什么。
通常软件包中的配置文件有后缀.sample
(例如/etc/project/config.xml.sample
)。用户必须将其复制到config.xml
并进行自定义。这样,它们就不会在更新时被重写。