我有 CentOS 的 vps 托管。该服务器上有 Apache、PHP、MySql。 我安装了memcached。 有时(3-4 天一次)memcached 停止 - 我不知道为什么,日志文件中缺少必要的信息。
我找到了解决方案 - 当 memcached 已经崩溃时,每 10 分钟运行一次 cron,验证 memcached 是否已启动(通过命令 memcached-tool) - 我发送电子邮件并通过服务器命令行启动 memv=cached
但是我会自动启动memcached,但我不能这样做。
我尝试了这样的命令
system("/etc/init.d/memcached start");
exec("service memcached start");
system("service memcached start");
但我还没有结果。
最佳答案
我只想指出,为这样的事情创建一个实际的 cronjob 会更安全。
请在此处阅读有关 exec()
函数的更多信息:http://php.net/manual/en/function.exec.php
此外,如果 safe_mode
开启,您将无法在 safe_mode_exec_dir
之外执行命令。这些是在 php.ini 或自定义 php 配置中设置的。
正如另一位回答者所指出的,最好隔离崩溃的原因,而不是重复启动它。当 memcached 崩溃时,您会遇到什么类型的错误?显然你有某种方式知道它已经崩溃了,否则你就不会问这个问题。最明显的答案可能是缓存已满,并且您的脚本对缓存的访问过于频繁/频繁,以至于无法调出页面。
关于php - 如何从 PHP 重新启动 memcached,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874877/