看一下/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 ,我应该在哪里放置它们? 感谢提前!
再读一遍,恕我直言,把你的文件根目录放在/ usr下是无稽之谈。 这是你的数据,而不是nginx的。 所以,/ var中的某个地方显然是正确的。 考虑备份。 你的数据在/ var,网站是它的一部分。 / usr不是,/ usr包含软件包数据 (软件系统数据)。
现在,我试图“为什么这个Debian的政策”
在Web服务器上默认暴露一个通用path是有风险的。 通过将默认设置设置为/ usr / share / nginx /,Debian确保web服务器不会开始提供它不应该提供的文件。
例
你已经有了一个在/ var / www中有一个docroot的apache,并且你为nginx安装了一些比apache作业更好的东西(例如提供一些静态文件来提高速度)。 所以你使用没有PHP的“裸”nginx或htaccess支持:你不希望看到nginx开始提供由Apache处理的文件:PHP源文件和应该由htaccesses保护的文件。
所以对我的理解来说,Debian策略并不是“在/ var / www (或者更确切地说/ var / www /)中拥有docroot是不好的做法 ,但更多的是”httpd软件包开始服务/ var / www默认情况下“ 。
这个信息/行为只是一个(安全的)包装政策。 不是系统pipe理员的好习惯
根据http://lintian.debian.org/tags/dir-or-file-in-var-www.html
Debian软件包不应该在/ var / www下安装文件。 这不是文件层次结构标准中的/ var目录之一,并在本地pipe理员的控制之下。 软件包不应该假定它是Web服务器的文档根目录; 用户更改默认文档根目录是非常常见的,软件包不应该假定用户将保留任何特定的设置。
所以,对于软件包作者来说,这只是一个警告,不能假定/var/www是文档根目录,而不是在那里安装文件。 事实上,在我的Debian系统上,它甚至不是默认的根目录,默认的根目录是/usr/share/nginx/html (如果我从Debian集合或者直接从nginx.org安装nginx不要回想起来)。
我没有看到任何阻止您将生产站点放置在/var/www 。
/ srv / www是我保存我的Web应用程序文件的地方。 我离开/ var / www的networking包,我安装如WordPress的apt。 如果我手动设置wordpress,我会把它放在/ srv / www。
说了这么多,我有一个问题与debian不创build/ var / www目录默认,尽pipe设置该目录作为www数据用户的家。 安装nginx也不会创build目录。 安装Apache。 这是任意的。