Apache Thrift Library
thrift.apache.org
thrift.apache.org
I think if I wanted to implement RPC I'd use thrift again in a second, and if I was sure I wanted only message passing/serialization, I'd go with protobuf again.
The other main factor is language support - while they are both very good at this, they have slightly different support, and if native PHP support is important to you, Thrift is a better choice, as well as for a few other languages as well.
I work with it every day and it is a pleasure every single day.
If I can write my web service in C++ and call it in Javascript, that would be amazing.
If you want to develop a web service in C++, you could check out the available web frameworks, like OKWS[1], CppCMS[2] or TreeFrog[3].
[1]: http://okws.org/doku.php?id=okws [2]: http://cppcms.sourceforge.net/wikipp/en/page/main [3]: http://www.treefrogframework.org/
Web Services and the associated HTTP headers are relatively slow, but browsers can make them, so are kind of necessary.