【问题标题】:executing suphp from memory从内存中执行 suphp
【发布时间】:2014-07-22 01:34:47
【问题描述】:

我在 linux 上管理一个服务器,该服务器具有 apache 和 php 和 suphp。像大多数设置一样,所有程序文件当前都存储在磁盘上。

我想从 ram 运行 suphp。然后,我将 suphp 文件夹中的所有内容(配置文件、文件夹和程序总计约 2.8MB)复制到 ram。然后在磁盘上,我重命名了文件夹,这样旧版本就不会被访问。我使用带有 cp 的 -a 开关来保留权限等。

然后我做了两次尝试,都失败了。

首先,我创建了一个名为 suphp 的链接(使用 ln -s),它指向 ram 中的 suphp 文件夹。然后,当我浏览文件/文件夹结构时,其他所有内容看起来都一样,就好像设置已准备好工作一样。

由于这不起作用,我再次尝试删除 suphp 符号链接,然后创建一个空的 suphp 文件夹并将其挂载绑定(使用 mount --bind)到 ram 中的 suphp 文件夹。那甚至没有用。

然后我查看了我的 apache error_log,在我尝试这些步骤的过程中,直到我恢复了原始设置,我收到了各种错误消息,其中所有的错误消息都与此类似:

“(2)没有这样的文件或目录:无法创建子进程:(suphp文件夹位置)/sbin/suphp for(网站上php文件的完整路径)”。

让我困惑的是,为什么它会报告没有这样的文件或目录而不是其他一些错误...

【问题讨论】:

    标签: php linux ram suphp


    【解决方案1】:

    suPHP 将被 Apache 加载到 RAM 中,因为它是一个 Apache 模块 (mod_suPHP)。没有理由将实际文件/可执行文件移动到系统的“ram”目录并像您所做的那样设置符号链接。

    如果您的目的是将 PHP 脚本保存在内存中,请考虑使用 5.5 或 apc 中内置的 opcache,请参阅 How to use PHP OPCache?

    【讨论】:

    • 我实际上为网站的频繁访问部分实现了页面缓存,这些页面的 TTFB(到第一个字节的时间)在 100 到 200 毫秒之间。在缓存开启之前,他们的 TTFB 在 400 到 600 毫秒之间。我想把它移到 ram 中的原因是每次有人访问 php 脚本时都会调用 suphp 可执行文件,而且每天至少会发生几百次。
    猜你喜欢
    • 2011-12-12
    • 2017-06-27
    • 2013-10-30
    • 2017-11-23
    • 2012-06-20
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2014-07-18
    相关资源
    最近更新 更多