I strongly advocate that you develop your entire site using just your personal computer or other development environment that you have readily available. You can install all the necessary tools - a web server, PHP, and MySQL - on your own computer, then develop the database, write the code, test, and so on. Developing on your personal computer is faster (because you don’t have to upload files), cheaper (because you’re not paying for hosting during this time), and more secure (because incomplete, potentially unsecure code won’t be online).
After getting the project nearly complete, you’ll need to move it to your web host. Let’s look at how you choose one.
With regard to hosting, you can generally say that you get what you pay for, and I say that as a person who’s inclined to go the cheapest route whenever possible. Over the years, I’ve used probably five or six hosts for my own websites and dealt with many others for clients. The old adage says that you have to spend money to make money; selecting a cheap host is a bad way to go about making money.
Hosting plans vary based on
- Amount of control
The price is directly related to the quality of the other three attributes. If you spend more, you’ll get more.
To be honest, the features don’t really matter. Well, some do and many don’t. Most hosting plans will offer some 56 features, of which you’ll need 10. This even goes for disk space and bandwidth limitations: Hosting plans will offer you more of these than you’ll ever need, thereby tempting you with trivialities. The minimally required features are PHP, MySQL, a mail server (to send and receive email), and security software, such as a firewall, a virus detector, and so forth. Additionally, beneficial features include regular backups and excellent—truly excellent—customer support. When it comes time to compare one hosting option to another, decide what really counts—like uptime, backups, security, and customer service—and ignore the rest.
The performance of a server will depend on the type of hosting involved, the server’s specific hardware—amount of RAM, disk types, processor types, the number of processors, and the server’s network connection. As I mentioned earlier, the site’s performance is hugely important, but it’s unfortunately something that’s not easily determined in advance.
The amount of control you have over the server will depend on the hosting type. Different web-hosting companies offer different plans, but the basic hosting options are
- Virtual private server (VPS)
- Dedicated or colocation (colo)
Free hosting plans are harder to come by now than they used to be, but you shouldn’t even consider them for an e-commerce site. You may have a free site possibility with some account you have, or from your ISP, but you probably can’t even use your domain name on them.
Shared hosting plans are the most common and the cheapest (of the paid choices). Shared hosting involves putting tens of clients and possibly hundreds of websites on a single server. Shared hosting is inexpensive—decent plans range from $10 to $20 per month and may be a reasonable way to start. However, because there are multiple users on each server, your website will only be as secure as the weakest security link in any site on the server. The performance of the site will also suffer, as the demands are so high. Finally, you’ll have little to no control over how the server runs. You won’t be able to use a particular version of PHP, enable certain PHP settings or features, or tweak how MySQL runs. Shared hosts aren’t likely to make any changes that might adversely impact the other clients on the same server. Still, shared hosting may be appropriate for smaller, less demanding sites without higher security concerns.
A happy medium between shared hosting and dedicated is the virtual private server (it’s what I’ve personally used for several years). Instead of having tens of clients on a single server, there may be only a couple or a handful, with each client running her own virtual operating system. Although all the servers’ hardware is still being shared, limitations can be placed so that you’ll always get a minimum amount of RAM, thereby guaranteeing some performance no matter what happens to the other sites on the server. From a security perspective, each virtual server is a separate entity: The actions that the other clients take on their VPS instances can’t impact yours. And since the VPS is yours alone, you can do whatever you want with it in terms of installing and configuring software. VPS hosting plans run from as cheap as $30 per month to around $100 per month.
A dedicated or colocated server is on the other end of the hosting spectrum. This kind of hosting puts an entire computer—its software and hardware—under your command, but the server is physically housed at the hosting company’s location. That location should have multiple, fast connections to the Internet; redundant power supplies with battery backups; secure physical access to the server rooms; climate control; and so on. (The technical difference between dedicated and colocated hosting is that the host typically owns a dedicated server, whereas you typically own a colocated one.)
The other hosting types can’t match the amount of control, the number of features, or possibly the performance of running your own entire server. But the cost of a dedicated or colocated server will be much, much higher—from a couple of hundred dollars per month to several hundred. Just as important is the fact that, depending on the particulars of the hosting plan, you may be responsible for all the maintenance and security of the server. You’ll need to decide if you think you’re better suited to handle server security than someone who does that full time and has likely been doing it for years. Also, the web-hosting company will have people monitoring your server 24 hours a day, whereas you’ve got to sleep sometime.
Another hosting option has come up in the past few years: cloud hosting. Cloud computing sounds ethereal, but it’s just moving some server functionality—processing of data, storing of data, handling of emails, or whatever—to a different computer (or bank of computers) not under your control and on a different network. One benefit to cloud computing is that it can automatically scale to your needs without you having to take extra steps. If, for some freak, benevolent reason, you go from processing an average of 100 sales per day to 10,000, the cloud will be able to handle the increased traffic, which might otherwise have crashed a basic hosting plan. But there are extra security concerns with cloud computing, and you’d need to be prepared to pay the price. For example, if your site gets hit with a denial-of-service (DoS) attack, you’ll have to foot the bill for the extra cloud computing, but the attack itself will have generated no extra revenue.
A cloud hosting option, such as Amazon’s Web Services, is fantastic in many ways. You can expand easily and still only pay for what you use. But cloud hosting is implemented differently than any other type of hosting, and those differences present another hurdle to overcome when you’re just starting out. On the other hand, you can start with a traditional hosting scenario and later add extended networking (for example, a content delivery network) to gain some of the benefits of cloud hosting.
This blog doesn’t discuss cloud computing beyond what I’ve just said. But be aware of this potential avenue, and you may want to look into vendors and pricing if you suspect that cloud computing could be a good fit for your site and situation.
My Hosting Recommendation
As a reader, you’re probably looking for as many definitive answers as possible, so my recommendation is to select a quality shared or VPS hosting plan to begin, depending on the project itself and your budget. You absolutely don’t want to host the site on your personal computer; you absolutely don’t want to use free hosting; and you most likely shouldn’t go with dedicated hosting to start, unless you have money to waste.
One important thing to know is that you’re not permanently locked into a given hosting plan or even a web host. A good web host should be able to upgrade or expand your hosting plan with little or no downtime. Start with a plan that’s reasonably basic, and should you have the good fortune of profound success, you can scale up your plan to meet the increased demands over time.
It’s possible to change web hosts as well, just not as easily. It’s best to start with a great host that you’ll be able to stick with for years and years. This means not only someone reliable, but also a host that’s established in such a way to allow for your site’s expansion. For example, a really cheap host probably does only shared hosting. You’d never be able to move to a dedicated server with them, and you probably wouldn’t want to. Conversely, the hosting company I use provides only VPS and dedicated hosting plans. The VPS works for me for now, and I can move to one or more dedicated servers with this same company when I have that need.
My final piece of advice is not to spend dramatically more than you need to earlier than you need to. By that I mean, you many think you’ve got a site that will someday have millions of users, and therefore you’ll need dozens of servers, but today you’ve got no site and no users, so a single server (or hosting plan) will be more than sufficient.
Finding a Good Host
The final question, then, is how do you know if a web host is good? First, go online and search using terms like web host review or best web host. In the search results, ignore every site whose sole purpose is to rate and review web hosts. Yes, that’s right: ignore those. They’re unreliable and built on advertising, and you’ll never know what kind of relationship they may have with the companies they’re “ranking.” Plus, in my experience, such sites are ranking web hosts for the masses, for those who don’t know any better. If you want to find a couple of recommendations this way, mostly as a basis of comparison, that’s fine, but these rankings should not be used to make a decision.
All of the lousy web hosts I’ve used over the years were found by listening to “official” rankings of the best web hosts!
The best way to find a good host is to get real-world feedback and comments from real people. One way to do so is by finding forums where people talk about their hosting experiences. In the past, I’ve also emailed people to ask them if they’re happy with their host, prior to making a decision. You can also get recommendations through mailing lists and the like.
Once you’ve got a few potential candidates, start by excluding those that are really cheap. You don’t want to try to save money by skimping on web hosting. It’s not a good long-term plan. Cheaper hosting options than the one I use are out there, but my site is always available. I’ve got peace of mind, and you can’t put a price on that. Interestingly, my current host doesn’t even offer a free month of hosting, as many companies do. Their argument, which I buy into, is that providing a free month invites malicious people to temporarily get a server just to send spam or do other harmful or annoying activities. You don’t want to be part of a network where that’s happening.
You should also rule out those companies that try to do too much: better to have a host that excels at one or two things than one that is average at several. One of the worst hosting experiences I ever had, if not the worst, was with a company whose primary function was as a domain registrar. They were fine as registrars but terrible as hosts.
Don’t let your registrar host your site, and don’t let your host register your domain name!
As I already said, all web hosts will offer tons of features and more disk space, bandwidth, and add-ons than you’ll ever need. And it’s almost impossible to compare performance from one host to the next. For me, then, I focus on a host’s security approach and customer service. If your hosting company strives for top-level security, that minimizes the chances of a problem occurring in the first place. If your hosting company also offers great customer service, they’ll provide a quick fix should a problem arise.