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.
Web Services and the associated HTTP headers are relatively slow, but browsers can make them, so are kind of necessary.
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/