PHP Memcached请求空密钥引发500服务器错误

PHP Memcached请求空密钥引发500服务器错误,php,memcached,cgi,Php,Memcached,Cgi,我的网站托管在Web派系上,运行php5.4 我试图让memcached启动并运行,但遇到了一个非常奇怪的错误 非常感谢任何帮助,托管公司正与我一起努力解决这个问题,但是。。。请看下面 下面的代码可以工作 error_reporting(E_ALL & ~E_NOTICE); $mc = new Memcached(); $mc->addServer('localhost', 32323); echo "Setting foo to Hello! <Br />"; $

我的网站托管在Web派系上,运行php5.4

我试图让memcached启动并运行,但遇到了一个非常奇怪的错误

非常感谢任何帮助,托管公司正与我一起努力解决这个问题,但是。。。请看下面

下面的代码可以工作

error_reporting(E_ALL & ~E_NOTICE);

$mc = new Memcached();
$mc->addServer('localhost', 32323);
echo "Setting foo to Hello! <Br />";
$mc->set("foo", "Hello!");
echo "Setting bar to Memcached.. <Br />";
$mc->set("bar", "Memcached...");

echo "dumping values <br />";
$arr = array(
$mc->get("foo"),
$mc->get("bar")
);
var_dump($arr);
它实际上抛出了这个错误

500 – Internal Server Error
The page you requested is currently unavailable. Please try again later.

If you are the website owner, please see Error: 500 Internal Server Error documentation for more information and possible steps to resolve the problem.
这里有一些我已经尝试过的东西需要记住

  • 是的,它是memcacheD而不是memcache

  • 我已经创建了隔离环境来测试这一点,但在所有情况下,如果 我在设置之前请求值,我甚至无法尝试/捕获任何值 错误(不会传播那么高)。几乎就好像它没有达到PHP级别一样

从我的PHP错误日志中,我得到

[Sat Feb 02 19:55:33 2013] [error] [client 209.29.54.55] Premature end of script headers: php54.cgi

这是我从网络主机那里得到的答案,以防其他人遇到同样的问题

好的,我们终于确定了问题的确切原因:

php53-c。
php53之前的index.php:符号查找错误: ~/php53 exts/memcached.so:未定义的符号: memcached\u last\u error\u errno

具体来说,所发生的事情是您构建memcached的基础 libmemcached 1.0.15,但我们的服务器已经有了旧版本的 已安装libmemcached,版本为0.31

需要更新版本的libmemcached;memcached 2.1.0将 不针对旧版libmemcached生成。但是当你的PHP 运行时,它试图链接到共享libmemcached,而不是您安装到~/lib中的共享libmemcached

好的,可以重建PHP memcached PECL模块 静态地针对libmemcached,但它还需要构建 memcached自身也针对相同的libmemcached。那么,你有 确保您的PHP在运行时调用适当的~/bin/memcached 在PHP代码中执行“newmemcached()”

这是一个有点太多的工作,所以我正在考虑有版本 在我们所有的服务器上升级了memcached和libmemcached。新的 memcached+libmemcached将允许新版本的memcached 无需本地安装即可安装PHP PECL模块 二进制文件的libmemcached和静态链接


“脚本头过早结束”错误是由多种原因引起的,可能需要您测试每个可能的原因(加上一些猜测)以进行诊断。尽量缩小可能的原因,因为对这类问题缺乏帮助。看看:
[Sat Feb 02 19:55:33 2013] [error] [client 209.29.54.55] Premature end of script headers: php54.cgi