I don't have too much experience with web apps, but I've done a little PHP (and I've used Ruby for non-web stuff). PHP has an amazing amount of resources out there, and it's ubiquitous, which are two large plusses. But its capabilities are rather elementary, and while this can be fine, it often isn't. For instance, PHP doesn't have real closures, and it doesn't have first-class functions. (When C's functions are more first-class than yours, you know you have a problem.) You have to pass their names around in strings. Ruby, on the other hand, is a nicer language to work in--it has the things I mentioned, and even more. And when the language isn't fighting with you, you don't necessarily need as many resources; nevertheless, Ruby has them.
Javascript, though, I feel is a better language. Real first-class functions and closures, innumerable examples and tutorials (though not always good ones), and more. Its problem is that every browser understands it slightly differently.
So between PHP and other things, I feel that the difference is within the language itself, not in the modules and prebuilt things (as all of the mentioned languages have these). But working in PHP felt confining when I was using it, and that's something I took away. (It reminded me of Java in that regard—the same feeling of being confined, as though I couldn't do what I wanted to.)