Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Installing Gearman on windows

Gearman can be installed on Windows through cygwin.

Install Cygwin packages

Install cygwin packages (through setup.exe):

  • gcc
  • make
  • libuuid1-devel
  • libiconv
  • boost
  • libboost-devel
  • libmpfr4

Install libevent

Download and unpack libevent 1.4 sources (to a directory without spaces, e.g. C:\cygwin\tmp), then run:

cd libevent-1.4.14b-stable
./configure
make
make install

Now libevent should be installed on /usr/local/lib, but this path is not in the library path and GCC will not find it automatically.

You can copy the generated libraries to /usr/lib:

cp /usr/local/lib/libevent* /usr/lib

(this is not the cleanest solution, you are welcome to propose an alternative)

Install Gearman

Download gearmand C server sources (to a directory without spaces, e.g. C:\cygwin\tmp). Attention, because of this bug you can' install a version higher than V0.14. Here is a direct link to download V0.14.

Run:

cd gearmand-0.14
./configure
make
make install

Now the server is installed and you can launch it from a cygwin terminal:

/usr/local/sbin/gearmand.exe

Or if you want it to be ultra verbose:

/usr/local/sbin/gearmand.exe -vvv

You can also start the process and detach it from the terminal:

gearmand -d

Test

Open 3 terminals.

In the 1st, start the Gearman server:

/usr/local/sbin/gearmand.exe

In the 2nd, start a worker:

gearman -w -f wc -- wc -l

In the 3rd, send a task to the Gearman server. It will be dispatched to the worker which will process it and return the result to the server, which will return it to you 3rd terminal.

gearman -f wc < /etc/passwd
@jeffblack360

This comment has been minimized.

Copy link

@jeffblack360 jeffblack360 commented Aug 22, 2013

Thanks pal. You saved my chops.

@pavelkucera

This comment has been minimized.

Copy link

@pavelkucera pavelkucera commented Jan 29, 2014

Thank you very much for this!

@vguptabpl

This comment has been minimized.

Copy link

@vguptabpl vguptabpl commented Oct 6, 2014

my question is how we can work with windows. What changes will required in PHP.ini file?

which DLL is required?

@likenson

This comment has been minimized.

Copy link

@likenson likenson commented Mar 12, 2015

When I start gearmand.exe, i got these errors:
ERROR 2015-03-11 19:53:19.997184 [ main ] pthread_attr_setscope(Not supported) -> libgearman-server/thread.cc:389
FATAL 2015-03-11 19:53:19.997184 [ main ] gearman_server_thread_init(NULL) -> libgearman-server/gearmand_thread.cc:197
ERROR 2015-03-11 19:53:20.012784 [ main ] poll(Bad file descriptor) -> libgearman-server/timer.cc:77
Do you know how to fix that?

@yairpe

This comment has been minimized.

Copy link

@yairpe yairpe commented Apr 24, 2015

Thank you. Even now, two years later, and one cannot deploy the latest gearmand on Windows.....

I spent almost two days trying to tweak and solve compilation issues with the current 0.41 version, and eventually had to use the old 0.14 version just to make it work.

I would suggest others to do the same or maybe install the Java version of the server and use it with PHP.

Why do I need gearman on windows? simple. I develop on windows and deploy on Unix.

Thanks again

@naillizard

This comment has been minimized.

Copy link

@naillizard naillizard commented May 6, 2015

In my case is the other way around, develop on mac and deploy to Windows "yuck"... having a go installing latest version of gearman 1.1.12 on Windows Server 2012. Will let you guys know if I succeed... fingers crossed.

@rlacerda83

This comment has been minimized.

Copy link

@rlacerda83 rlacerda83 commented May 7, 2015

@yairpe, which dll are you using? I am running the server with java, but I do not have the PHP extension to connect.

@sandy-gitty

This comment has been minimized.

Copy link

@sandy-gitty sandy-gitty commented Jul 16, 2015

Hi, thanks for this tutorial, i have installed gearman on windows but I'm unable to use this on my php script getting Fatal error: Class 'GearmanClient' not found'. any help? thanks in advance!

I'm asking like @vguptabpl

@mchurichi

This comment has been minimized.

Copy link

@mchurichi mchurichi commented Aug 9, 2015

Thanks, worked like a charm! Just for the records, in the latest versions of cygwin you can install libevent, so you don't need to download and compile it manually.

@jiby-seamedia

This comment has been minimized.

Copy link

@jiby-seamedia jiby-seamedia commented Sep 1, 2015

Thanks, I followed these steps. But I have one doubt what is gearmand? is it same as gearman? I am a beginer, sorry for this stupid question

@thongvo

This comment has been minimized.

Copy link

@thongvo thongvo commented Apr 7, 2016

/usr/local/sbin/
This location didn't exist on Windows.

@poojapathak7

This comment has been minimized.

Copy link

@poojapathak7 poojapathak7 commented Mar 9, 2017

Hi ,
I followed the steps as per given above . but when I try to run the gearman command its give me error $ gearmand -d
-bash: gearmand: command not found.Kindly help me out

@maulikkanani1

This comment has been minimized.

Copy link

@maulikkanani1 maulikkanani1 commented Jun 3, 2017

when i try to install libevent-2.1.8-stable
this error will occur
$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking whether make supports nested variables... (cached) no
checking for style of include used by make... none
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in /tmp/libevent-2.1.8-stable': configure: error: no acceptable C compiler found in $PATH See config.log' for more details

@lexandr

This comment has been minimized.

Copy link

@lexandr lexandr commented Sep 26, 2017

Here is the compiled version of gearmand for windows

@ivanzor

This comment has been minimized.

Copy link

@ivanzor ivanzor commented Jan 21, 2019

Fatal error: Class 'GearmanWorker' not found'. any help? thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment