【问题标题】:PHP5.3 (as Apache module) unable to write into /var/www/<project-name>/<document-root>/cachePHP5.3(作为 Apache 模块)无法写入 /var/www/<project-name>/<document-root>/cache
【发布时间】:2012-01-13 21:54:38
【问题描述】:

请耐心阅读,因为问题似乎是透明的,但只是看起来。 情况是:

1.

OS:     fedora-16 (latest),
httpd:  apache-2.2.21,
php:    php-5.3.8 (works as apache's module)

2。 主机信息:

DOCUMENT_ROOT: /var/www/[site-name]/public_html
Kohana-3.2.0 (latest stable) installed this way:

$ pwd
/var/www/<site-name>

$ ls -alp
drwxr-xr-x.  6 apache apache 4096 Jan   7 20:35 ./
drwxr-xr-x.  8 apache apache 4096 Jan   7 20:08 ../
drwxr-xr-x.  9 apache apache 4096 Jul  25 03:26 application/
drwxr-xr-x. 10 apache apache 4096 Jul  25 03:26 modules/
drwxr-xr-x.  2 apache apache 4096 Jan   7 20:35 public_html/
drwxr-xr-x. 11 apache apache 4096 Jul  25 03:26 system/

$ cd application/; ls -alp
drwxr-xr-x. 9 apache apache 4096 Jul  25 03:26 ./
drwxr-xr-x. 6 apache apache 4096 Jan   7 20:35 ../
-rwxr-xr-x. 1 apache apache 3612 Jul  25 03:22 bootstrap.php
drwxrwxrwx. 2 apache apache 4096 Jan   8 20:14 cache/
drwxr-xr-x. 4 apache apache 4096 Jul  25 03:26 classes/
drwxr-xr-x. 2 apache apache 4096 Jul  25 03:26 config/
drwxr-xr-x. 2 apache apache 4096 Jul  25 03:26 i18n/
drwxrwxrwx. 2 apache apache 4096 Jul  25 03:26 logs/
drwxr-xr-x. 2 apache apache 4096 Jul  25 03:26 messages/
drwxr-xr-x. 2 apache apache 4096 Jul  25 03:26 views/

Command `top` says that Apache is really starts under `apache` user privileges.

那么我怎样才能让 application/cache 和 application/logs 目录不可写呢? - 我也检查过它们

var_dump(fopen($_SERVER['DOCUMENT_ROOT'] . '/../application/cache/something.txt', 'w+'));

同样的结果。不知道怎么可能。没有符号链接,没有安装的驱动器等。 有人遇到过这种情况吗?

【问题讨论】:

  • 如果您检查了权限:您是否收到任何错误消息?您是否查看了服务器日志以发现比浏览器中可能显示的错误报告更多?
  • 它们是 777 - 从技术上讲,任何用户都可以在这些文件夹上写字。您的系统上有 www-data 用户吗?
  • 是的——这很奇怪。我已经不希望任何人知道它是怎么回事,所以如果有人想购买我的硬盘驱动器有这个独特的错误 - 欢迎你 =)

标签: php linux apache fedora privileges


【解决方案1】:

禁用 selinux (http://www.crypt.gen.nz/selinux/disable_selinux.html)。

顺便说一句,从安全的角度来看,让 apache 拥有 .php 文件是一个非常糟糕的主意

【讨论】:

  • 您的解决方案听起来不错,但我想我不应该发生这种情况 - 没有人禁用 SELinux 来安装 httpd,对吧?任何想法如何发生?也许还有其他方法可以解决问题
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 2022-08-17
  • 2012-01-18
  • 2018-03-09
  • 2011-09-13
  • 2012-06-02
相关资源
最近更新 更多