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
    • 最新
    • 标签
主页 / user-35402

user35402's questions

Martin Hope
user35402
Asked: 2010-02-20 06:30:50 +0800 CST

Apache 服务服务器恶魔特权(关于 Web 目录结构、权限和安全性)

  • 0

我已经在 Ubuntu 9.10 上安装了 Apache。

我已经安装了一个 web 框架 (Symfony),它要求服务器能够:

  1. 在名为“cache”的文件夹下创建一个目录结构。如果缓存目录不存在,软件(大概是apache下的用户会尝试创建缓存文件夹和需要的子目录结构。

    外部用户应该不能访问这个文件夹——它只是框架库本身需要的

  2. 能够在名为 log 的子目录中创建文件

    外部用户应该不能访问这个文件夹——它只是框架库本身需要的

我的 /etc/apache2/sites-enabled/000-default 文件内容是:

<VirtualHost *:80>
  ServerName testproject.localhost
  DocumentRoot "/home/morpheous/work/websites/testproject/web"
  DirectoryIndex index.php
  <Directory "/home/morpheous/work/websites/testproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
  <Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

目前,当我尝试通过浏览器访问此页面时,我得到一个空白页面。当我检查错误日志 (/var/log/apache2/error.log) 时,我看到以下错误:

[Fri Feb 19 14:05:01 2010] [error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'sfCacheException' with message 'Failed to make cache directory "/home/morpheous/work/websites/testproject/cache/frontend/dev/config" while generating cache for configuration file "config/config_handlers.yml".' ....

我对 Ubuntu(一般是 Linux)比较陌生。我查看了文件夹属性(使用 sys admin GUI 工具),但是当我尝试将文件夹的组所有权更改为“www-data”(apache2 守护程序用户所属的组)时,我发现组在可以拥有“缓存”文件夹的组列表中不可用。

更一般地说,我的 testproject 目录下可能有文件夹,我希望 apache2 守护进程可以访问,但外部用户不能直接访问这些文件夹 - (例如包含数据库密码的文件或特定下载等),如何以这种方式明确管理对文件夹的访问?

在我看来,它是 linux 用户/组以及 apache 配置的(相当混乱的)组合。如果有人能解释一下,我将不胜感激

  • 向特定文件夹的 apache 守护进程授予 r|rw|rwx 权限的一般问题,同时禁止外部用户访问该文件夹

  • 如何解决当前允许 apache 守护进程创建缓存文件夹(如果需要)和任何所需的子目录/文件的问题的具体问题,同样,在 testproject/log 文件夹中创建日志文件。

[编辑]

卡尔:我在这里输入了我对你的评论,因为有更好的格式......

当我尝试在浏览器中访问该页面时,我现在得到一个 493 禁止页面。我检查了 apache 日志文件并看到了这个错误:

[Fri Feb 19 17:23:33 2010] [crit] [client 127.0.0.1] (13)Permission denied: /home/morpheous/work/websites/testproject/.htaccess pcfg_openfile: 无法检查 htaccess 文件,确保它是可读

这是 web 文件夹的属性 drwxr-xr-x 16 morpheous morpheous 4096 2010-02-19 00:51 web

我怀疑 apache 守护程序用户无权访问 web 文件夹,这就是导致问题的原因。在这种情况下,这意味着我必须手动将组所有权(用于读|写访问)更改为 www-data 我希望 apache 守护进程可以访问的所有文件夹(这在直觉上是有意义的,但我'希望得到确认)

apache-2.2 security permissions
  • 1 个回答
  • 1794 Views
Martin Hope
user35402
Asked: 2010-01-17 11:24:57 +0800 CST

apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.1.1 作为 ServerName

  • 73

当我(重新)启动 Apache 时,我不断收到此警告。

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]

这是我的etc/hosts文件的内容:

#127.0.0.1  hpdtp-ubuntu910
#testproject.localhost  localhost.localdomain   localhost
#127.0.1.1  hpdtp-ubuntu910

127.0.0.1   localhost
127.0.0.1   testproject.localhost
127.0.1.1   hpdtp-ubuntu910



# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

这是我的/etc/apache2/sites-enabled/000-default文件的内容:

<VirtualHost *:80>
  ServerName testproject.localhost
  DocumentRoot "/home/morpheous/work/websites/testproject/web"
  DirectoryIndex index.php
  <Directory "/home/morpheous/work/websites/testproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
  <Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

当我转到 时http://testproject.localhost,我得到一个空白页。

谁能发现我做错了什么?

ubuntu apache-2.2 ubuntu-9.10
  • 11 个回答
  • 83680 Views

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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