There were a few subtle points in how it was built that meant you could write bad scripts and not crash the server. There were commercial alternatives, some pretty spiffy, but they were expensive and risky (you could test PHP for yourself or you go up the chain of command to pay $5000 for a Cold Fusion license then be stuck with it if you don't like it.)
Other communities working on blub languages thought that the good properties of PHP were not important. They might have been minimal but they were not viable.
For Python, it's really a phenomenon of trends. It's got all the right pieces (easy to learn and use, good community, good library ecosystem), but lots of languages have that. Like so many other things... It became more popular because it was popular.
Runtime performance is only one factor in the programming language game. Many other equally important factors are purely emotional. We are human, after all.
Also, JavaScript has long had a monopoly on the worlds most popular deployment platform.