Hi,
buying a UPS is a good first step.
But I think in your case where millions of $ will come and go the first step at all would be to think about what to use for your application depending on what you want to do.
This is a task that goes far beyond what can be discussed in this forum (I think) 🙂
Some suggestions (it's hard to suggest anything without knowing a little bit more):
If any of the servers (web server, database server ...) crash the site would be down until the problems are solved. Even if no data is lost it might take hours or maybe days depending on what happened. Money would go during this time but no money would come in.
So I'd suggest to use at least two of each servers, like two MySQL databases replicating and two web servers, load balanced by e.g. a Local Director (or even two).
This depends mainly on how high you expect the load to be or how many hits per day you expect.
The problem with replication on MySQL is that it might be some kind of unstable. We had some projects where several MySQL servers where used with replication enabled. But on certain circumstances the replication broke down (e.g. certain types of INSERT statements). I don't know how stable replication is with more recent versions of MySQL but we had problems with some older 3.23.x releases. Someone told me that they had also problems with newer MySQL 4.x releases but to be honest I didn't test it myself so far.
The most "mission critical" projects I had to do with used Oracle as database. It is slower than MySQL when using pure SELECT's but it is more feature rich (like stored procedures ...) and is more stable at replication and some other features.
It depends a lot on what exactly you want to do and how you want to do it.
It is a lot more expensive to use Oracle but the whole application might be more stable.
Whether to use PHP also depends on what you want to do or how you want to do it. Many of the e-commerce projects I had to do with were developed in PHP and ran stable and reliable without any problems (using MySQL). But some of them were written in jsp with an underlying application server because there were some proprietary external systems we had to interface to which could be done best with java and the application needed to be transaction safe.
One of the more complex projects we developed finally ran on 16 web servers, 4 SQL servers, 2 NFS servers and some servers running backend services.
The two most common combinations we used so far were php/MySQL or php/Oracle.
These are only a few points to think of, not all ... hope this helps you a little bit.
Please correct me if I wrote anything stupid or wrong 🙂
Thomas