如何configurationApache文档根目录?

我正在迁移到一个新的Web服务器的过程中,我想为Apache和我的Web应用程序有一个干净和安全的文件体系结构。

服务器将服务于一个单一的PHP / MySQL应用程序。 此应用程序从FTP和Web服务接收文件并生成日志文件。

服务器操作系统是CentOS 5.4。

默认的Apache文档根目录是/var/www/html

我应该把我的Web应用程序目录下:

  • /var/www/html/myWebApp
  • /www/myWebApp
  • /home/www/myWebApp
  • 别的地方?

应用程序目录应该由root用户或apache用户或其他用户拥有?

谢谢你的帮助。

假设您启用了SELinux,由于SELinux拒绝通过httpd进程访问非标准文件夹,因此并非所有这些选项都能正常工作。

IIRC,在CentOS上手动添加Web应用程序的首选方法是安装到/var/www/<myappname>并在/etc/httpd/conf/httpd.conf文件中创build一个别名到你的应用程序(我通常将我的模式设置为类似于/var/www/icons文件夹的现有别名)。

CentOS上/var/www下的任何文件的所有权是root

这真的取决于你,我个人会select在/var/www/html/myWebApp使用CentOS的默认DocumentRoot ,因为它为未来的维护者维护一个干净,可扩展和明显的结构。

您可以自己拥有这些应用程序文件,但是它们应该是可读的(但不是应用程序必须覆盖/编辑应用程序所拥有的),并且apache被configuration为运行的用户和组。 这通常是nobody:nobody – 并且该用户应该是非特权的(即只能够读取文档根目录中的文件,没有其他)。

更多信息在这里 。

编辑:对于SVN checkout,你可以保留SVN用户拥有的文件( SVNroot我假定 – 只要它与apache运行的用户不同),权限应该是644 (-rw-r--r--) – 我相信这是SVN默认使用的,如果不是chmod post-commit钩子中的目录。

…并确定您是否有SELinux问题,请尝试禁用它并重新testing。 如果httpd_disable_trans , 收集日志并修改HTTPD策略 (可能只是启用httpd_disable_trans )。 或者使用Ophidian的方法 🙂

(这个应该是对Ophidian的一个评论,但是它不适合留言的空间,所以我把它作为回复发表)

你可以在selinux下使用适当的上下文/types来查找想要使用的目录/文件。

要找出正确的上下文,最简单的方法是检查已经正确标记的目录。 例如

[root @ somehost〜]#ls -ldZ / var / www / html drwxr-xr -x root root system_u:object_r:httpd_sys_content_t / var / www / html

然后在你的新内容目录中设置正确的se linuxtypes。 例如,如果你想用/ home / myapp作为你的doc根目录:chcon -t httpd_sys_content_t / home / myapp

chcon只会持续到下一个文件系统重新标记为止。 如果你这样做,不要忘记使用semanage fcontext,以便新的上下文将通过文件系统的重新映射持续下去!

semanage fcontext -at httpd_sys_content_t / home / myapp