I am looking for a message broker (like Apache ActiveMQ for Java) that works with PHP, preferably open-source. Any ideas?
You can use Stomp (http://stomp.codehaus.org), it has a client for PHP that you can use to communicate with any of the brokers (includes ActiveMQ, http://stomp.codehaus.org/Brokers).
There's also Memcacheq (http://memcachedb.org/memcacheq/), there's an example about how to use it on that page.
You could also use Apache ActiveMQ and use a library like Zend_Queue (part of the Zend Framework, http://framework.zend.com/manual/en/zend.queue.html). It also supports a few other queue systems.
I've had great luck with ActiveMQ. We were connecting Java to .NET, both sides had no problem. As scriptha mentions, any environment that can speak STOMP can speak to ActiveMQ.
http://stomp.codehaus.org/PHP links to a STOMP PHP client.
We ran thousands of messages per hour on ActiveMQ, and had the timing down to under 200ms including application time. It's fast, flexible, extensible and connects to lots of different environments. Definitely worth looking in to.
Besides what's written above you can also try Beanstalkd if you want a very simple message queue with clients in many languages.