AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 113757
Accepted
benjisail
benjisail
Asked: 2010-02-18 04:43:46 +0800 CST2010-02-18 04:43:46 +0800 CST 2010-02-18 04:43:46 +0800 CST

如何配置 Apache 文档根目录?

  • 772

我正在迁移到新的 Web 服务器,我希望为 apache 和我的 Web 应用程序提供一个干净且安全的文件架构。

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

服务器操作系统为 CentOS 5.4。

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

我应该把我的网络应用程序目录放在:

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

应用程序目录应该归root用户或apache用户或其他用户所有?

谢谢你的帮助。

centos apache-2.2 documentroot
  • 3 3 个回答
  • 36416 Views

3 个回答

  • Voted
  1. Best Answer
    Ophidian
    2010-02-18T06:37:34+08:002010-02-18T06:37:34+08:00

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

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

    /var/wwwCentOS 上任何东西的典型文件所有权是root.

    • 4
  2. Andy
    2010-02-18T04:59:47+08:002010-02-18T04:59:47+08:00

    这完全取决于你,我个人会选择 CentOS 的默认DocumentRoot,/var/www/html/myWebApp因为它为未来的维护者等维护了一个干净、可扩展和明显的结构。

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

    更多信息在这里。

    编辑:对于 SVN 结帐,您可以保留 SVN 用户拥有的文件(SVN或者root我假设 - 只要它与运行 apache 的用户不同)并且权限应该是644 (-rw-r--r--)- 我相信这是 SVN 默认使用的,如果不是 chmod 提交后挂钩中的目录。

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

    • 3
  3. Jason Tan
    2010-02-18T12:14:14+08:002010-02-18T12:14:14+08:00

    (这应该是 Ophidian 的评论,但它不适合发表评论的空间,所以我将其发布为回复)

    您可以在 selinux 下通过 chcon'ing 使用适当的上下文/类型来使用您想要使用的目录/文件。

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

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

    然后在您的新内容目录上设置正确的 se linux 类型。例如,如果你想使用 /home/myapp 作为你的文档根: chcon -t httpd_sys_content_t /home/myapp

    chcon 仅持续到下一个文件系统重新标记。如果您这样做,请不要忘记使用 semanage fcontext,这样新的上下文将通过文件系统重新标记而持续存在!

    semanage fcontext -at httpd_sys_content_t /home/myapp

    • 1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve