2013-02-14 12 views
8

私のdevのサーバーは、Debianのスクイズであると私はreverse_clientを実行した場合、私はPHPのPECL拡張モジュールv1.1.1デベロッパーgearmanは私にGEARMAN_COULD_NOT_CONNECTを与え、それは間違いなく

と一緒にソースからコンパイルGearman 1.1.5を実行しているが実行されています.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でそれを始めている:

PARAMS="--queue-type=MySQL --mysql-db=test_db --mysql-user=gearman --mysql-password=gearman"

私はTEST_DBにgearman_queueテーブルをドロップする場合は、テーブルがその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のは、PECL libには罰金だrunning`

tcp 0 0 *:4730 *:* LISTEN 2325/gearmand

一つだけのプロセスを示しています

php -i | grep gearman

/etc/php5/cli/conf.d/gearman.ini, 
gearman 
gearman support => enabled 
libgearman version => 1.1.5 

私は私が持っていたアイデア

+0

私も実際に古いパッケージを試して、最終的にGM 1.1.5を手でビルドしてPECL拡張をビルドしました。 – Eno

答えて

15

の外です同じ問題と最近ゾル

GearmanClient :: addServer()とGearmanWorkerのPHPドキュメントは、(少なくとも私の場合は)表示されています。 :addServer()が正しくありません。具体的には、ドキュメントはホスト名とポート番号がオプションであり、指定しない場合はlocalhostとポート4730をデフォルトとして使用することを暗示しているようです。このは決してです。今日、クライアントとワーカープロセスの両方に対して明示的に指定しようとすると、突然私に現れ、すべてが動作し始めました。

ホスト名とポートのすべての値を指定し、これが機能するかどうかを確認してください。場合

+1

ところで、私はPHPサイト上の間違ったドキュメントのバグをオープンしました。 – Eno

+3

ビンゴ!私は明示的にaddServer( "localhost"、4730)を呼び出さなければなりませんでした。大いに。 –

+2

+1000これは、すべての私のために働いた(クライアント、サーバ、ワーカー、Macbook上のローカル) – Asciiom

2

あなたはこの

ます。$ client-> addServers( '127.0.0.1'、4730)のようなものを使用している場合。

または

ます。$ client-> addServers();

使用この

ます。$ client-> addServers( '127.0.0.1:4730')のようなもの。

PS - 私はIPローカルホストを使用しているが、これは実際のホストIPに置き換えることができます。

関連する問題