2015-05-04 23 views
-2

在此SO answer之后,运行Apache的用户不应允许写入任何文件。从安全角度来看,这是非常好的,但是如何允许文件上传的PHP网络应用程序可以使用这种设置?VPS上的Apache沙箱和文件上传

虚拟化工具,如linux-vserver,或OpenVZ(如建议here)会是一个选择,但我不知道对性能的影响,因为我的linux盒已经是一个virtual machine内运行。

我想到的另一种方法是使用在uploads文件夹上具有写权限的用户下运行的进程,并通过IPC与我的PHP脚本进行通信。

我倾向于朝向第二解决方案,但是在我开始开发应用程序,并打了我的头撞在墙上前几次我让工作的权利,没有崩溃,我想知道是否有更简单解决方案。

回答

1

给用户或组php代码是通过写访问单个上传文件夹来执行的,并禁用该目录的php执行。

如果您使用mod_php,它将是Apache用户。

如果你正在使用PHP-FPM它可能默认到Apache的用户,但它绝对可以改变(甚至每池,如果你有不同的应用程序/站点的多个池)

+0

嗯..简单而有效:) – Cristik