我正在尝试使用PHP Resque(通过redisent使用Redis),但我一直收到此错误:
Warning: fsockopen() expects parameter 2 to be long, string given in
/home/***/public_html/codes/ao/resque/lib/Redisent/Redisent.php on line 56
Fatal error: Uncaught exception 'Exception' with message ' - ' in
/home/***/public_html/codes/ao/resque/lib/Redisent/Redisent.php:58 Stack trace: #0
/home/***/public_html/codes/ao/resque/lib/Redisent/Redisent.php(52): Redisent-
>establishConnection() #1 /home/***/public_html/codes/ao/resque/lib/Resque.php(38):
Redisent->__construct('redis', '//***') #2 /home/***/public_html/cons/db.php(6):
Resque::setBackend('redis://***...') #3 {main} thrown in
/home/***/public_html/codes/ao/resque/lib/Redisent/Redisent.php on line 58
我无法弄清楚出了什么问题。请帮帮我!
答案 0 :(得分:2)
错误转储的第一行显示问题。
fsockopen() expects parameter 2 to be long, string given in
in /home/***/public_html/codes/ao/resque/lib/Redisent/Redisent.php on line 56
fsockopen()的第二个参数应该是端口号。不知何故,你将一个字符串传入其中。
接下来的其余错误仅仅是由于连接失败。
在查看Redisent.php source code时,您似乎必须将无效参数传递给Redisent对象的构造函数。
在您的源代码中,您可以使用以下内容:
$foo = new Redisent('hostname', '32323'); // See the bug?
...确保第二个参数不是字符串。
以下是正确的:
$foo = new Redisent('hostname', 32323); // no quotes around port number!