让Apache从RAM /内存中读取PHP文档?

时间:2011-03-27 02:35:20

标签: php c++ apache

有没有办法让Apache从RAM读取PHP文档?

我正在考虑在内存中创建虚拟磁盘,然后修改httpd.conf以将文档根目录更改为内存中的虚拟磁盘。

这可行吗?

基本上,我想要做的是将我的PHP代码分发给用户的计算机,以便他们可以运行它。但我不希望他们能够轻松地查看PHP源代码 - 代码不能以纯文本形式存储在硬盘中,相反,它们存储在数据文件中,然后由我的程序读入Apache读取它的内存。

这可行吗?用C ++在内存中创建虚拟磁盘是否容易,但是我的计算机之类的其他任何方式都无法访问虚拟磁盘?

更新

谢谢大家提出的有助于我更好地了解目标的问题,但我想我知道自己在做什么。请提出您可能满足我需求的任何解决方案。

到目前为止,困难的部分是Apache从硬盘中除普通目录以外的某个地方读取,该目录包含我项目的所有源代码。我希望它尽可能地隐藏起来。我对Windows桌面开发有一点了解,认为虚拟磁盘可能是一个解决方案,但如果你有更好的解决方案,请建议。

1 个答案:

答案 0 :(得分:0)

理论上,您可以使用Samba共享中的Apache服务文件。您需要将服务器配置为安装用户创建的特定文件共享。如果用户位于任何类型的防火墙或NAT网关后面,则无法使用此功能。

这将是:

  • 比1月的糖蜜慢......在阿拉斯加的 Apache对每个请求进行{em>批次的stat次呼叫默认。在找到文件,传输文件然后执行文件之前,这会增加很多开销。
  • 难以配置。在服务器级别添加挂载是一项非常重要的任务,而且双方的Samba可能相当挑剔。此外,如果您使用RHEL / CentOS或运行SELinux的任何其他发行版,您将不得不执行chcon / setsebool tapdance甚至让它工作。默认设置明确禁止Apache触摸通过Samba共享来到系统的任何文件。
  • 安全噩梦。您将允许Apache从不受您直接控制的计算机向任何人提供文件。恶意的可能性是无止境的。这是一个可怕的想法,你不应该认真考虑。

可能有更安全但仍然疯狂的替代方案。 FastCGI的。远程系统可以运行FastCGI进程并实际直接托管和执行代码。 Apache可以配置为将PHP请求传递给远程FastCGI进程。如果用户是防火墙或NAT,这仍然会中断。如果用户实际上可以运行FastCGI进程并且您不介意在他们的系统而不是服务器上实际执行代码,那么这只是一个可接受的解决方案。

这具有在服务器上下文中执行的文件的明显优势。


也许我完全误解了 - 您是否要求代码从用户系统中实时运行?因为我根据这种解释写了这个答案。