I have moved a lot of my sites over to Dreamhost and have been pretty satisfied so far. The control panel is very good and you can do some neat one-click installs of popular open-source packages like WordPress.
Today I had my first PHP Gotcha on Dreamhost.
I am working on a site that uses Google Maps and I decided to try out Phoogle Maps, a PHP script that integrates Google Maps with your PHP application and also does GeoCoding based on an address. I tested the script on my dev server and everything worked great. I then started working on the rest of the app.
After uploading the scripts to Dreamhost I got an error that file_get_contents() was not allowed. After looking into it I found out that Dreamhost has disabled file_get_contents() for security reasons. Phoogle calls the Yahoo Geocoding API (since Google doesn’t provide one) and used the file_get_contents() method of doing the REST call to Yahoo. I checked out Yahoo’s developer site and found out that they also support curl() but after banging my head against the wall trying to retrofit Phoogle to use that method I looked elsewhere.
First I tried using XML-RPC to call the geocoder.us database but that was extremely slow. Then I stumbled upon ontok.com which provides a geocoding API. I grabbed their example code using SOAP and it was pretty fast and I then proceeded to hack Phroogle to call ontok.com for it’s geocoding.
So, I’m still on Dreamhost until something else doesn’t work.