是否可以将 Apache 写入重定向到另一个目录?

是否可以将 Apache 写入重定向到另一个目录?

我正在使用 Centos 5.5

假设我有两个目录:

/var/www/读取

/var/www/写入

如果在 /var/www/read 中创建了一个文件,是否可以将其“重定向”以便它实际上是在 /var/www/write 中创建,而不是在 /var/www/read 中创建?

例如尝试创建 /var/www/read/directory/directory/newfile.txt 实际上最终会创建 /var/www/write/directory/directory/newfile.txt

为什么?

我希望任何 Apache 写入都位于不同于其读取的目录中。我无法直接在 php 代码中执行此操作,因为它已加密。

答案1

一般情况下不会。Apache 只会运行您的 php(或其他)代码。应用程序可以写入运行用户有写入权限的任何目录(如果您使用 mod_php,则此用户与运行 Web 服务器的用户相同)。

答案2

好吧,您可以让 cron 作业定期将新文件从读取目录移动到写入目录。

或者,您可以为 apache 构建一个 chroot 环境,除了将写入目录挂载到读取目录之外,其他一切都相同。您现在可以将写入目录绑定挂载到读取目录,但如果您必须更改许多设置,请直接转到完全 chroot,而不是稍后再进行。

更新:在 apache 上使用 chroot 只有 apache 可见,而执行绑定挂载时只有写入覆盖读取才对整个系统可见。

答案3

听起来你想要/var/www/read只读。该技术类似于用于 Linux LiveCD 的技术。使用 unionfs 或奥夫斯在文件系统级别转移写入。CentOS 的兄弟版本 Scientific Linux 附带一个kernel-module-aufs软件包。

相关内容