每种情况的人我都见过,google 查了很久说什么的都有,没有结论
1 yemoluo 2022-03-26 18:53:38 +08:00 我懒,放在 /home/www 目录 |
2 Kobayashi 2022-03-26 18:54:21 +08:00 via Android 再帮你加一个 /srv |
3 xy90321 2022-03-26 19:01:23 +08:00 via iPhone /srv 貌似比较正统,因为 www 也是一个服务 公司项目比较懒,服务器在哪儿就放哪儿,所以一般是 /opt 下面 自己项目一般丢 /var 下面 |
4 CallMeReznov 2022-03-26 19:24:00 +08:00 inetpub/wwwroot |
![]() | 5 ericguo 2022-03-26 19:25:36 +08:00 /var/www |
![]() | 6 dream4ever 2022-03-26 19:28:10 +08:00 @CallMeReznov IIS 乱入,哈哈 |
![]() | 7 liKeYunKeji 2022-03-26 19:33:18 +08:00 via iPhone cd ../www/wwwroot/ |
![]() | 8 wonderfulcxm 2022-03-26 19:35:10 +08:00 via iPhone 随便放吧,我就在根分区新建了一个 /web 目录,直观,也方便挂载分区,最主要小心 redhat 系 selinux 的权限设定。 |
9 Cbdy 2022-03-26 19:39:35 +08:00 现在都用 docker ,放`/app`吧 |
![]() | 10 jiangzm 2022-03-26 19:43:47 +08:00 vm: /var/www/xxx /opt/app/xxx docker: /app/xxx |
![]() | 11 jim9606 2022-03-26 19:58:25 +08:00 ![]() 如果按 FHS 规范的话是这样的:PREFIX 为 /usr/local (/usr 下通常是发行版软件包),主程序在$PREFIX/bin ,共享库在$PREFIX/lib ,配置文件在$PREFIX/etc ,数据在 /var/<appname>,日志在 /var/log/<appname>。如果还需要添加 systemd 服务单元,可以放 /etc/systemd/system 或者 /usr/local/lib/systemd/system 。 不过这样放太散乱了,不如把所有东西放一个独立目录下方便备份和搬运。典型做法是都放 /opt/<appname>,下设 bin 、etc 、lib 、var 等等。 |
12 LxnChan 2022-03-26 20:34:23 +08:00 我自己的站都是 /var ,但这玩意应该也没有强制要求吧,放在某个目录下主要考虑的可能是权限问题,方便统一改一类的 |
![]() | 13 Showfom PRO Debian 默认安装 Nginx 和 Apache 2 以后的默认 web 目录都是 /var/www |
![]() | 14 yaott2020 2022-03-26 20:59:01 +08:00 via Android 我一般放在 /www |
![]() | 15 eason1874 2022-03-26 21:23:11 +08:00 没用文件存储的我喜欢 /var/www 用文件存储的我喜欢 /opt/www |
![]() | 16 westoy 2022-03-26 21:24:18 +08:00 自己写的 web 程序我一般是新建一个用户然后放在这个用户的$HOME 下面 |
17 darknoll 2022-03-26 21:31:32 +08:00 /var/www |
![]() | 18 jacyl4 2022-03-26 21:37:33 +08:00 放 /var/www ,因为这是 www-data 的 home 目录 |
20 richangfan 2022-03-26 21:54:01 +08:00 创建一个 www 用户,设置 ssh 免密码登入,再创建 /home/www/production 、/home/www/test 、/home/www/work 三个目录分别放正式网站、测试网站、准备发布的网站 |
21 brader 2022-03-26 22:42:25 +08:00 这时候就要推荐一波我的 coreos docker 了 https://github.com/wenshunbiao/docker |
![]() | 22 10935336 2022-03-26 22:58:34 +08:00 我都是放 /home/wwwroot |
23 bkkkd 2022-03-26 23:12:58 +08:00 习惯性的创建一个 /data 目录自己管自己的. |
![]() | 24 datou 2022-03-26 23:40:43 +08:00 我是习惯性新建 /project |
![]() | 25 rainysia 2022-03-27 00:25:24 +08:00 习惯搞个 /home/www 单独开个 www-data 给它。 |
![]() | 26 kkocdko 2022-03-27 01:02:51 +08:00 via Android /home/服务的名字 |
28 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 |
![]() | 29 IvanLi127 2022-03-27 01:24:35 +08:00 via Android 服务程序我习惯放 /srv/下,纯静态页面放 /var/www 。不过现在我直接跑 docker 了,哈哈哈哈 |
![]() | 30 dingdangnao 2022-03-27 04:28:18 +08:00 via iPhone 用的 oneinstack 默认放到 /data/wwwroot/ 感觉 也挺好? |
![]() | 31 akira 2022-03-27 04:39:18 +08:00 新建一个 /data/ 目录,非系统的东西放这下面 |
![]() | 32 lululau 2022-03-27 09:21:55 +08:00 /Appplications |
![]() | 33 sutra 2022-03-27 10:24:36 +08:00 man hier |
34 fancy2020 2022-03-27 11:08:24 +08:00 |
![]() | 35 ryanbuu 2022-03-27 12:19:24 +08:00 我一般选择多挂一个硬盘,挂载到 /data0 ,扔里边 |
![]() | 36 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 设置为不同用户。发行版打包用的规范,其实是做底层基础设施的人根据经验总结的最佳实践。做业务系统应用开发的场景跟基础设施不太一样,但有些是可以借鉴的。 |
![]() | 37 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 |
![]() | 38 levinit 2022-03-27 21:09:10 +08:00 via iPhone /srv/http |
![]() | 39 libook 2022-03-28 11:47:44 +08:00 POSIX 对文件系统的目录划分有一个大致的分类,你可以根据实际情况来确定属于哪个分类就可以了。 从系统运行方面来看,无非就是权限问题,这块只要你的上级所有目录都满足权限要求就可以。 从管理方面来说,不论怎么放,只要能形成标准、文档、制度就可以了。 |
![]() | 41 adoal 2022-03-28 13:27:18 +08:00 @julyclyde 贵互联网行业大厂才有专门为业务开发团队需要的基础设施来搞打包的人。鄙各行各业信息化领域,都是(不明学历不明经验不明素养不明薪酬的)开发人员兼职到甲方生产环境做实施的(而且并不是 NetFlix 那种开发有责任做运维),业务功能导向的绩效评定,做规范打包(以及实现业务功能开发外的其它活)是不会额外拿钱的,所以所有东西都扔到一个目录下拷走是性价比最高的选择。 |
42 julyclyde 2022-03-28 13:28:41 +08:00 @adoal 贵互联网都是 rpm 里放一个 tar+install.sh 的山寨…… |
![]() | 45 adoal 2022-03-28 13:35:40 +08:00 @julyclyde 所以其实贵互联网行业大部分也不在乎这些事是吧……我只知道阿里内部有专门做打包的团队,早些年对 CentOS 5 依赖很大的时候有相当一些软件 backport 过去放到内网的 repo 上用 yum 安装。 |
46 zxCoder 2022-03-28 15:35:09 +08:00 /home/xxx/data/ |
![]() | 47 cco 2022-03-28 16:07:53 +08:00 数据盘挂哪里就放哪里。 |
![]() | 48 24owls 2022-03-30 21:07:59 +08:00 如果目标是尽量遵循 FHS 和发行版的约定的话,只读的放在 /usr 或者 /usr/local 或者 /opt/<package>,会变的放在发行版放 www 目录的地方(如 /var/www 或 /srv/www ),只用在本机上的配置放在 /etc 拿 wordpress 举个例子,如果每次部署都在本地测试后再推送到服务器,那么程序文件打包安装到 /usr 或者 /usr/local 目录,数据文件和数据库放到 /var/www 或 /srv/www 目录。相反,如果需要用 wordpress 在线升级在线安装插件等,那么整个 wordpress 都算作数据放到 /var 目录。 |