有没有办法让Apache从RAM读取PHP文档?
我正在考虑在内存中创建虚拟磁盘,然后修改httpd.conf以将文档根目录更改为内存中的虚拟磁盘。
这可行吗?
基本上,我想要做的是将我的PHP代码分发给用户的计算机,以便他们可以运行它。但我不希望他们能够轻松地查看PHP源代码 - 代码不能以纯文本形式存储在硬盘中,相反,它们存储在数据文件中,然后由我的程序读入Apache读取它的内存。
这可行吗?用C ++在内存中创建虚拟磁盘是否容易,但是我的计算机之类的其他任何方式都无法访问虚拟磁盘?
更新
谢谢大家提出的有助于我更好地了解目标的问题,但我想我知道自己在做什么。请提出您可能满足我需求的任何解决方案。
到目前为止,困难的部分是Apache从硬盘中除普通目录以外的某个地方读取,该目录包含我项目的所有源代码。我希望它尽可能地隐藏起来。我对Windows桌面开发有一点了解,认为虚拟磁盘可能是一个解决方案,但如果你有更好的解决方案,请建议。
答案 0 :(得分:0)
理论上,您可以使用Samba共享中的Apache服务文件。您需要将服务器配置为安装用户创建的特定文件共享。如果用户位于任何类型的防火墙或NAT网关后面,则无法使用此功能。
这将是:
stat
次呼叫默认。在找到文件,传输文件然后执行文件之前,这会增加很多开销。chcon
/ setsebool
tapdance甚至让它工作。默认设置明确禁止Apache触摸通过Samba共享来到系统的任何文件。可能有更安全但仍然疯狂的替代方案。 FastCGI的。远程系统可以运行FastCGI进程并实际直接托管和执行代码。 Apache可以配置为将PHP请求传递给远程FastCGI进程。如果用户是防火墙或NAT,这仍然会中断。如果用户实际上可以运行FastCGI进程并且您不介意在他们的系统而不是服务器上实际执行代码,那么这只是一个可接受的解决方案。
这具有在服务器上下文中执行的文件的明显优势。
也许我完全误解了 - 您是否要求代码从用户系统中实时运行?因为我根据这种解释写了这个答案。