0

我在 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文件的完整路径)”。

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

4

1 回答 1

0

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

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

于 2014-07-22T02:09:27.117 回答