moore82 wrote:
1. What sort of hosting will I need for the following website...Will I need dedicated hosting, a normal package or my own server?
Because of the many options and versions of PHP, I'd strongly recommend dedicated hosting (or a virtual dedicated server which allows you to run your own version and configuration of PHP).
Otherwise, you're at the mercy of whenever the shared hosting provider decides it's a good time to upgrade, without testing your software first.
2. What's the best hosting platform? Apache?
Probably, yes. Certainly not IIS.
- First choice - Apache.
- Second choice - Anything else except IIS
- Third choice - if absolutely required for nontechnical reasons - IIS
3. Basic security advice so my database doesn't get hacked!
Assuming you write your application correctly:
- Don't share your server with any untrustworthy applications (PHPBB, *Nuke, most other OS PHP apps etc). This of course precludes shared hosting, as they often host these.
- Don't give anyone you don't trust to secure their own machine, any access to the production server. If a developer's workstation is compromised, so is the production server - this is one of the most common routes.
How do I go about doing this in PHP? Is it the best language to do this in?
Depends how you want to tackle it. You could store all the images in a database and serve them from PHP, or you could keep them in directories (per-user for example).
Either way, you could sum the size of the files to limit their quota.
If you're going to allow them to upload files, make sure that they can't upload any kind of executable that could be executed either on the client or server (for example, PHP, Javascript, Windows exes etc).
I'm expecting to use A LOT of disk space as each user is given 100mb on sign up.
But most users will probably never use any of it.
So what's the best hosting option? (and cheapest option also...)
Those things are clearly contradictory.
Should I buy my own server? Get dedicated or pay a monthly fee to normal hosts??
This depends largely on your level of expertise. If you're happy to manage the OS yourself, you can have a dedicated server - these are ideal.
If you can't manage the OS yourself (or hire someone to do so, or get someone on your team to do so), then your only options are either
- Shared - which has inherent security problems (see above) or
- Dedicated fully managed - which costs an arm and a leg.
If you're looking at dedicated fully managed, it might even be cheaper to hire someone part time to manage the system (they can probably do most of it remotely) and be on call.
Mark