1

我希望从 ruby​​ 脚本中检查正确的 php fastcgi 操作。这样做,我只是想向套接字发送一个简单的 PHP 脚本并检查正确的返回值。

现在,我对红宝石和套接字都很陌生,所以我尝试了

require 'socket'

s = UNIXSocket.new("/var/run/php/php.socket")
s.send('<?php print "Hello World"; ?>', 0)
puts s.recv(11)

但我明白了

test.rb:5:in `recv': Connection reset by peer - recvfrom(2) (Errno::ECONNRESET)
          from test.rb:5:in `<main>'

谷歌的帮助不大,因为“PHP”触发了太多关于如何使用 php 中的套接字的教程。

我知道 php 套接字工作正常(因为它为我的网站供电)。我怎样才能让我的脚本正确接收“Hello World”?

4

1 回答 1

3

FastCGI 有一个你需要实现的二进制协议。所以最后你最好使用已经为你实现它的库。

毕竟,您可能会更好地使用 bash 脚本和 libfcgi 库(apt-get install libfcgi-dev在 Debian 上)安装的程序,例如

SCRIPT_FILENAME=/path/test.php cgi-fcgi -bind -connect /var/run/php/php.socket

(Jens 在评论中为他的环境纠正了我原来的例子,谢谢)

于 2013-05-15T10:30:53.927 回答