Web 服务的程序放在 /opt /var /etc /app /web 哪个好? Web 服务的数据呢?

2022-03-26 18:51:51 +08:00
 rv54ntjwfm3ug8

每种情况的人我都见过,google 查了很久说什么的都有,没有结论

5706 次点击
所在节点    Linux
48 条回复
brader
2022-03-26 22:42:25 +08:00
这时候就要推荐一波我的 coreos docker 了
https://github.com/wenshunbiao/docker
10935336
2022-03-26 22:58:34 +08:00
我都是放 /home/wwwroot
bkkkd
2022-03-26 23:12:58 +08:00
习惯性的创建一个 /data 目录自己管自己的.
datou
2022-03-26 23:40:43 +08:00
我是习惯性新建 /project
rainysia
2022-03-27 00:25:24 +08:00
习惯搞个 /home/www 单独开个 www-data 给它。
kkocdko
2022-03-27 01:02:51 +08:00
/home/服务的名字
seakingii
2022-03-27 01:07:44 +08:00
@bkkkd 同样的习惯。。。
seakingii
2022-03-27 01:09:33 +08:00
我习惯建一个 /data 目录 ,自己的东西都放在里面,尽量不要和系统的目录缠在一起

/data/soft/soft1
/data/soft/sof2

/data/web/web1

/data/backup/database
/data/script/script1.sh
IvanLi127
2022-03-27 01:24:35 +08:00
服务程序我习惯放 /srv/下,纯静态页面放 /var/www 。不过现在我直接跑 docker 了,哈哈哈哈
dingdangnao
2022-03-27 04:28:18 +08:00
用的 oneinstack 默认放到 /data/wwwroot/ 感觉 也挺好?
akira
2022-03-27 04:39:18 +08:00
新建一个 /data/ 目录,非系统的东西放这下面
lululau
2022-03-27 09:21:55 +08:00
/Appplications
sutra
2022-03-27 10:24:36 +08:00
man hier
fancy2020
2022-03-27 11:08:24 +08:00
q1angch0u
2022-03-27 12:19:24 +08:00
我一般选择多挂一个硬盘,挂载到 /data0 ,扔里边
adoal
2022-03-27 15:30:54 +08:00
“每种情况的人我都见过”,因为很多人的主要职责是做开发,顺便兼做部署实施……所以往往并没有系统学习过 FSH 之类的规范,而是会根据自己(个人以及所在团队)的经验发明一些目录布局。

楼上有盆友提到,按 FSH 放太散乱了,不如把所有东西放一个独立目录下方便备份和搬运。的确这也是一个很实用的经验。但是这经验通常也是来自兼做部署实施的开发人员的经历。而从专职运维的人的视角来看,虽然这样做本身没什么大问题,但会“把所有东西放一个独立目录下”的实施案例,通常在目录结构的 owner 和 mode 设置上不太讲究,比如在系统里开一个可以登录的交互帐户,同时用做安装文件和启动 daemon 的功能,装好的文件 owner 就是这个帐户……而你仔细观察一下发行版打包的 rpm 和 deb ,通常装好的文件里不会在运行时修改的内容(放到 bin/sbin 里的程序、放到 share 里的静态数据、放到 etc 里的配置) owner 是 root ,启动 daemon 用的 euid 是专用帐户(比如 Debian 系发行版启动 Apache 和 Nginx 用的是 www-data ),只有运行时会修改的数据,其 owner 才是运行 daemon 的用户。这样的好处是,如果 daemon 因为有爆栈之类 bug 被 exploit 了,至少可以保证入侵者不会篡改配置、静态数据甚至在可执行程序里埋入木马。所以建议,不论用什么样的目录布局,最好是把运行时不会改的文件的 owner 和启动 daemon 用的 euid 设置为不同用户。发行版打包用的规范,其实是做底层基础设施的人根据经验总结的最佳实践。做业务系统应用开发的场景跟基础设施不太一样,但有些是可以借鉴的。
liuxu
2022-03-27 16:59:18 +08:00
主要是 linux 这么多年发展,从不规范到规范不断发展导致的

a: 目前的 FHS 标准是 /srv 为 web 目录,/var 存放软件产生的数据,如日志,邮件收信,/etc 运行时配置文件,/usr 软件和软件自己的文本文件
b: 上面标准制定之前的标准:/var/www 为 web 目录,/var/log 日志,/var/mail 邮件,/var/lib 数据库等数据文件

rhel 系目前用 a ,至少 7/8 是,deb 系惯用 b ,少部分系统安装 nginx 会使用 /usr/local/nginx/www 目录,也就是软件自身目录

普通用户没权限时,/home/username 下自己制定

各种软件文档对普通用户的“标准”方式是为软件创建一个带 /home 目录的用户名,然后文件存放在 /home/软件用户名下

/data 放数据猜测是用 windows 用户没系统学习 linux 目录划分,百度了个 linux 新手教程直接开始用 linux ,然后把 /比想象成 windows 的 d: e:磁盘分区,认为 /data 就是 e:\data ,用的人多了也就经常在各种“教程”看到了


原始 linux 规范,/usr 为软件目录,后面 FHS 规定 /opt 为第三方大型软件包安装目录(特别是桌面环境的软件),/opt 有点 windows 的 d:\Program Files 味道,目前看 chrome ,libreoffice 等会使用 /opt


https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
levinit
2022-03-27 21:09:10 +08:00
/srv/http
libook
2022-03-28 11:47:44 +08:00
POSIX 对文件系统的目录划分有一个大致的分类,你可以根据实际情况来确定属于哪个分类就可以了。

从系统运行方面来看,无非就是权限问题,这块只要你的上级所有目录都满足权限要求就可以。

从管理方面来说,不论怎么放,只要能形成标准、文档、制度就可以了。
julyclyde
2022-03-28 13:17:08 +08:00
@adoal 嫌弃 fhs 乱的人都是不打包的
把文件名记到 rpmdb 里就不在乎“一个套件的各个部分到处放”了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843079

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX