查看该/usr/share/doc/nginx/README.Debian
文件,我们可以看到以下警告:
README for Debian
-----------------
Files under /var/www/ are not supported as per Debian Policy.
Please see: http://lintian.debian.org/tags/dir-or-file-in-var-www.html and,
http://www.pathname.com/fhs/pub/fhs-2.3.html#THEVARHIERARCHY for more
details and explanations.
经过一些不成功的研究(我可能看错了地方......),我想知道:
- 此警告是一般性建议(“不要将您的文件放入
/var/www
”),或者它仅意味着标准 Debian 包安装不应该在 下安装文件/var/www
。 - 如果我们实际上不愿意将生产网站放在
/var/www
,那么我应该把它们放在哪里?
提前致谢!
答案1
再读一遍,恕我直言,将 docroot 放在 /usr 下是无稽之谈。这是您的数据,不是 nginx 的。因此,/var 中的某个位置显然是正确的位置。考虑备份。您的数据位于 /var,并且网站是其中的一部分。 /usr 不是,/usr 包含包裹数据(软件系统数据)。
现在,我来谈谈“为什么 Debian 会制定这样的政策”
在 Web 服务器上默认公开通用路径是有风险的。通过将默认设置设为 /usr/share/nginx/something,Debian 可确保 Web 服务器不会开始提供不应提供的文件。
例子
您已经有一个 apache,其 docroot 位于 /var/www,并且您安装 nginx 是为了执行 apache 以外的任务(例如,为提高速度而提供一些静态文件)。因此,您使用“裸”nginx,不支持 PHP 或 htaccess:您不希望看到 nginx 开始为 apache 处理的文件提供服务:PHP 源文件和应受 htaccess 保护的文件。
因此,据我了解,Debian 的政策不是“将文档根目录放在 /var/www 中是一种不好的做法(或者更确切地说是 /var/www/),但还有更多“默认情况下,httpd 包开始为 /var/www 提供服务是一种不好的做法”。
此消息/行为只是一种(安全)包装策略。不是系统管理员的良好做法
答案2
根据http://lintian.debian.org/tags/dir-or-file-in-var-www.html
Debian 软件包不应将文件安装在 /var/www 下。这不是文件层次结构标准中的 /var 目录之一,并且由本地管理员控制。软件包不应假定它是 Web 服务器的文档根目录;用户更改默认文档根目录是很常见的,软件包不应假定用户会保留任何特定设置。
因此,这似乎只是对软件包作者的一个警告,不要假设这/var/www
是文档根目录,也不要在那里安装文件。事实上,在我的 Debian 系统上,它甚至不是默认根目录,默认根目录在哪里/usr/share/nginx/html
(不记得我是nginx
从 Debian 集合安装的还是直接从 nginx.org 安装的)。
我认为没有什么可以阻止您在 建立生产基地/var/www
。
答案3
/srv/www 是我保存 Web 应用程序文件的地方。我将 /var/www 留给使用 apt 安装的 Web 软件包,例如 wordpress。如果我手动设置 wordpress,我会将其放在 /srv/www 中。
话虽如此,但我对 debian 默认不创建 /var/www 目录感到不满,尽管将该目录设置为 www-data 用户的主目录。安装 nginx 也不会创建该目录。安装 apache 会创建。这只是随意的。