I’ll second that, second hand: all the people I turn to for recommendations like this seem to recommend Slicehost.
Recommended hosting?
When I built my first personal website almost 10 years ago, I signed up for hosting with GoDaddy. Yes, I can hear the groans. I know.
I’ve been too lazy to switch hosting providers, mostly because I really wasn’t using it for more than my WordPress-based site. But as I am working on expanding my programming skills, I need more support.
What hosting providers would you recommend?
I am looking for these criteria, in addition to low cost, reliability and 24/7 support:
PHP 5
Perl 5
Python
Ruby / Ruby on Rails
MySQL 5 / PostgreSQL Database Server
I’ve looked at bluehost and DreamHost, but want to do my research this time around!
Thanks!
Leave a Reply
You must be logged in to post a comment.
9 Answers
I've certainly done well with WebFaction* and pretty much anything that ranks well on this list is worth looking at.
Really, it depends what you need. If you're just going to run Wordpress, Bluehost or Dreamhost are probably fine. Dreamhost has the added bonus of gobs of space for static files if you just want some backup storage.
If you want to run Django or Rails apps, go with something on that list (or another provider recommended in those frameworks' respective users groups). The key is making sure you have access to the full stack, because deploying either framework generally means configuring Apache, and possibly re-installing it with extra modules (like mod_wsgi or Passenger). I've been really happy with WebFaction's support, and their one-click installs did me well when I just needed something to work.
At the far end of the spectrum is Amazon EC2 or Rackspace. If you're just mucking around, that's probably more startup work (and possibly cost) than you want to deal with right away, but something to keep in mind for down the road.
*Yes, that's an affiliate link.
Leave a Reply
You must be logged in to post a comment.
I've been using Slicehost for a while, and am loving it. You get a sturdy VPS with the Linux distro of your choice, and can configure it however you'd like for $20/month. I got the LAMP stack for PHP and Movable Type (Perl) and also a Ruby/Rails/Sinatra stack running on the same instance. They also have a pretty big library of tutorials and a 24 hour chat room, and are super friendly and Ruby/Rails-oriented (in fact the system for provisioning slices itself is a Rails app).
Leave a Reply
You must be logged in to post a comment.
I use DreamHost: Their support and backend are great, but their servers are on the slow side.
I've also got personal experience with Linode* which is a bit of effort to setup, but is rock-solid, great for Rails, and very fast. (Also: pricier).
- Not an affiliate link :P
Leave a Reply
You must be logged in to post a comment.
I've written a couple of scrapers in PHP.
<?php
function get_closer($string,$location){ // Takes a String and a Location. Cuts the String at the End of the Location and returns the remainder.
$location_length=strlen($location);
$break_point=strpos($string,$location);
$break_point=$break_point+$location_length;
$string=substr($string,$break_point);
return($string);
}
function get_next($string,$location,$delim){ // Takes a String and a finds the next occurance of the Location. Cuts it there and return what is between the Location and the Delim
$location_length=strlen($location);
$break_point=strpos($string,$location);
$break_point=$break_point+$location_length;
$string=substr($string,$break_point);
$to_return=substr($string,0,strpos($string,$delim));
return($to_return);
}
function cutter($string,$start,$end){ //Cuts a string between 2 deliminators but does not include the deliminator. Good when the start is unique and the end is known. Useful with get_closer
$start_place=strpos($string,$start)+strlen($start);
$new_string=substr($string,$start_place);
$end_place=strpos($new_string,$end);
$new_string=substr($new_string,0,$end_place);
$new_string=trim($new_string);
return($new_string);
}
function tailfinder($string,$start,$end){ //cuts a string between 2 deliminators but uses the end as a reference. Good when the end is unique and the start is known.
$best_start=0;
while (strpos($string,$start)>0){
$start_place=strpos($string,$start)+strlen($start);
$end_place=strpos($string,$end);
if ($start_place<$end_place){
$best_start=$start_place;
$string=get_closer($string,$start);
}
else{
break;
}
}
$new_string=substr($string,0,$end_place);
$new_string=trim($new_string);
return($new_string);
}
function curl_login($url,$data,$proxy,$proxystatus){ ///Used to start a session on a username and password site. Questions ask Jeremy
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, TRUE);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
ob_start(); // prevent any output
return curl_exec ($login); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($login);
unset($login);
}
function curl_grab_page($site,$proxy,$proxystatus){ ///Used to grab information from a user login site
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start(); // prevent any output
return curl_exec ($ch); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($ch);
}
?>
Leave a Reply
You must be logged in to post a comment.
Depending on what you mean by "I need more support." it sounds like Dreamhost or Slicehost would be a good fit. If you want to tackle the sysadmin end of learning things -- installing an OS, fine tuning your hosting software or PHP configuration -- Go with Slicehost (or Linode -- diffs are nominal as far as I could tell when I was last looking.)
If what you want is a working server where you can do some PHP/MySQL development work, Dreamhost shared hosting is a great fit. No idea what their Ruby or Python support looks like, though.
Also: depends a bit on whether you mean "MySQL or Postgres" or "MySQL and Postgres."
Leave a Reply
You must be logged in to post a comment.
As a flip side comment to those recommending Dreamhost, I bought an account to use for backup space and version control a couple of years ago. I have never dealt with a less professional company in the hosting field (they overbilled by a factor of 12, then made jokes about it on their blog - they then proceeded to mess up the refunds twice, all the while joking about their incompetence. see http://consumerist.com/2008/01/dreamhost-is-very-very-sorry-for-75-million-billing-error.html ).
I've had many good experiences with Slicehost, and lots of good experiences with Rackspace Cloud (with one hiccup). They're both backed by the same company and servers, but Rackspace's pricing policy is better for those who don't use much bandwidth (and Slicehost better if you do).
Leave a Reply
You must be logged in to post a comment.
I also use DreamHost, and I've also been noticing pretty slow performance.
On the other hand, I don't expect all that much from my personal hosting, so my motivation to switch is low.
Somewhat as an aside, I'm skeptical that many people need PHP, Python, Perl, and Rails all for personal hosting. Pick one, or two at the most. While I haven't shopped around all that much, I suspect you'll find some places that excel at Rails and others which are better than the competition at Django. PHP is pretty universal, and frankly, I'd steer almost anyone interested in Perl away from it at this point unless they have a specific reason (and I was a Perl/CGI developer for about five years).
Leave a Reply
You must be logged in to post a comment.
Lots of good technical feedback on web hosts. Another angle to consider is country of origin. For example, what are the implications of hosting your website in the United States? Canada? U.K.? For example, DCMA takedown notices apply only to websites hosted in the U.S. No such thing if you're hosting in another country. Same is true for the Patriot Act (not to pick on U.S laws, but they make good examples). Any data held by you on your customers can be seized by the authorities when it's hosted in the U.S.
Of course, this angle may mean little depending on what you're hosting, but it's something to consider nonetheless.
Leave a Reply
You must be logged in to post a comment.
I'm throwing my support to Rackspace Cloud. It's not too bad to get a basic slice going with the packages to run any PHP-based CMSs. Full tuning for Python or Ruby is a harder. $10/mnth and lighting quick.
Leave a Reply
You must be logged in to post a comment.
We haven't used shared hosting in years. Too often the shared environment places too many limits on what and how you can do.
I've heard that hostway has been good. We've got many small news clients that use BlueHost and DreamHost.
Has anyone looked at cloud based services as an alternative to shared hosting?
Leave a Reply
You must be logged in to post a comment.
Your Answer
Please login to post questions.

Another +1 for WebFaction, like you, Megan, I signed up for GoDaddy for the personal WordPress site, but added Webfaction as I started to get into Django. I’ve been extremely happy with the site itself, as well as the support/customer service.
+1 for WebFaction, but I currently just use it for my blog.