私の開発サーバーは Debian Squeeze で、ソースからコンパイルした Gearman 1.1.5 と php pecl 拡張機能 v1.1.1 を実行しています。
reverse_client.php スクリプトを実行すると、GEARMAN_COULD_NOT_CONNECT エラーが発生します。
PHP Warning: GearmanClient::do(): send_packet(GEARMAN_COULD_NOT_CONNECT) Failed to send server-options packet -> libgearman/connection.cc:430 in /home/bealers/build/gearman-1.1.1/examples/reverse_client.php on line 26
これについてここにいくつかの同様の投稿があり、それらはすべて GM が実行されていないことを示しています。
確実に走っています。
私はこれらのパラメータでそれを始めています:
PARAMS="--queue-type=MySQL --mysql-db=test_db --mysql-user=gearman --mysql-password=gearman"
Gearman_queue テーブルを test_db にドロップしてからデーモンを再起動すると、テーブルが再作成されるため、mysql 接続は問題なく、明らかに開始されます。
localhost の 4730 に telnet で接続することもできるので、ファイアウォールの問題はありません。
当初、GM は mysql の前に起動していたため起動に問題があったため、init スクリプトを編集しました
### BEGIN INIT INFO
# Provides: gearman-job-server
# Required-Start: $network $remote_fs $syslog mysql
そして、update-rd.c gearman-job-server defaults
後で開始するように設定し、起動時に正常に開始します。
私が考えることができる唯一の他のことは、最初はapt経由でインストールしたが、バージョンが古かったので削除してソースからコンパイルしたことです。/usr/sbin/gearmand は存在しません。唯一のバージョンは /usr/local/sbin/gearmand です。
ps ax | grep gearman
実行中のプロセスが 1 つだけ表示されます。
Netstat は実行中のプロセスを 1 つだけ表示します`
tcp 0 0 *:4730 *:* LISTEN 2325/gearmand
PECL ライブラリは問題ないようです。
php -i | grep gearman
/etc/php5/cli/conf.d/gearman.ini,
gearman
gearman support => enabled
libgearman version => 1.1.5
私はアイデアがありません