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

让Apache从RAM/内存读取PHP文档?,php,c++,apache,Php,C++,Apache,有没有办法让Apache从RAM读取PHP文档 我正在考虑在内存中创建一个虚拟磁盘,然后修改httpd.conf,将文档根目录更改为内存中的虚拟磁盘 这是否可行 基本上,我想做的是将我的PHP代码分发到用户的计算机上,以便他们可以运行它。但我不希望他们能够轻松查看PHP源代码——代码不能以纯文本形式存储在硬盘中,而是存储在数据文件中,然后由我的程序读取到Apache读取的内存中 这是否可行?在C++中,在内存中创建虚拟磁盘是否容易,但虚拟磁盘不能被任何其他方式访问,例如我的计算机? 更新: 谢谢

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

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

这是否可行

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

这是否可行?在C++中,在内存中创建虚拟磁盘是否容易,但虚拟磁盘不能被任何其他方式访问,例如我的计算机? 更新:

谢谢大家提出的问题,这些问题将帮助我更好地理解我的目标,但我想我知道我在做什么。请就我的需要提出任何解决方案


到目前为止,Apache最难的部分是从硬盘中的普通目录以外的其他地方读取,该目录包含我的项目的所有源代码。我希望它尽可能隐蔽起来。我对windows桌面开发略知一二,并认为虚拟磁盘可能是一种解决方案,但如果您有更好的解决方案,请建议。

理论上,您可以让Apache从Samba共享中提供文件。您需要将服务器配置为装载用户创建的特定文件共享。如果用户在防火墙或任何种类的NAT网关后面,这将不起作用

这将是:

  • 比一月份的糖蜜慢。。。在阿拉斯加。默认情况下,Apache会对每个请求执行大量的
    stat
    调用。在找到文件、传输文件并执行之前,这将增加大量开销
  • 很难配置。添加装载在服务器级别是一项非常重要的任务,Samba在这两方面都非常挑剔。此外,如果您使用的是RHEL/CentOS或任何其他运行SELinux的发行版,则必须执行
    chcon
    /
    setsebool
    tapdess才能使其正常工作。默认设置明确禁止Apache接触通过Samba共享进入系统的任何文件
  • 一场安全噩梦。您将允许Apache从您不直接控制的计算机向任何人提供文件。恶意的可能性是无穷无尽的。这是一个可怕的想法,你不应该认真考虑。

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

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



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

为什么要对本地应用程序使用web服务器堆栈?为什么不把它放在服务器上呢?如果你的程序可以读取代码,那么一个有决心的用户就可以读取代码。如果你偷了你的代码,让他们签个合同并起诉他们。至少使用为这个目的而创建的东西,而不是创建你自己的Rube Goldberg机器对于这个问题更有效。我的公司从来没有在没有这种加密的情况下部署到外部服务器。根据我的经验,100%的非技术用户已经被一个.php文件搞糊涂了