How to host locally

As a web developer it is imperative to have access to a decent set of tools. One of those tools is a local web server.

Here is an overview of my journey involving WAMP, DesktopServer and Local by Flywheel.

Windows

In the dim and distant past when I was developing on Windows XP I chose WampServer for local hosting. It has a UI that allows virtual hosts to be setup so multi sites can be run in parallel.

MAC

I then moved to using Apple MAC as my main development machine and had to go through the process of identifying a decent MAC compatible local web server.

In the first place I configured my MAC to natively run Apache (along with PHP and MySQL) for a nice suite of tools. However, I soon tired of having to manually edit the hosts file to define the local URLs, edit the Apache config file to define the document roots for each site, and create a new database for each WordPress site.

Looking around I quickly stumbled upon DesktopServer by ServerPress.

It’s a neat application (that also has a Windows version) which bundles Apache, PHP and MySQL with a nice UI to allow sites to be built quickly with minimal clicks. It’s aimed at hosting WordPress sites. The process of creating a new site automatically installs WordPress and even avoids the developer having to run the installation script as the database connections are pre-defined.

By dropping a zip kit into the ‘blueprint’ folder of the application any version of WordPress can be selected to be installed when a new site is created.

At site creation time all the blueprints are show for selection and even the option to create a non-WordPress site; Blank. This is ideal to develop other web apps that are non-WordPress.

DesktopServer includes phpMyAdmin it’s quite easy to create ad-hoc databases for those non-WordPress applications.

Sites can be Removed, Moved, Copied and there is also an Import and Export facility to allow sites to be moved to a different server. This is useful for deploying to a live server as it includes all the necessary database scrubbing tools required to re-configure a site for a new server/URL.

Then came along PHP 7

Great, but I was using DesktopServer v3.8.2 which didn’t support PHP V7 which is available on my live hosting server. Nothing beats using the latest version of a product. I was also developing PHP Apps with libraries that required V7 features.

So I was pushed into the position of looking for an alternative local hosting solution. At the time of writing a newer version of DesktopServer has been released and I was sure it supported PHP V7 but their website only states PHP V5.5 support.  Coupled with a renewal fee to upgrade I thought it was time to find an alternative.

One solution I had stumbled across in the past was Local by Flywheel. So I thought I’d give it a serious try as it did support PHP V7 and I would be able to continue developing that app.

On a MAC the installation is very simple. The installation includes VirtualBox. Local-by-flywheel runs an instance of Linux for the server.

And setting up a site could not be easier.  In fact Local-by-flywheel gives you two main options when creating a new site: Preferred or Custom.  The Preferred option gives you a standard WordPress installation….

Custom allows you to select (and change later) the PHP version, web server (Apache/nginx) and PHP version (5.2.0 through 7.2.0 at time of writing).

Notes

As always there are pros and cons with each system.  These are the main ones worth mentioning here noting that I am not using the latest version of DesktopServer.

Conclusion

I have used DesktopServer for many years, and I do still have some sites running on it, but I love Local-by-Flywheel.  It has a lot of features that I use to control my development environment.  Plus I have had some support issues with DesktopServer that didn’t get addresses as promptly as I would have hoped.  I don’t know what support is like for Local but I have not had reason to use it.  It just works.

As Local runs in a Virtual Box there is no clashes with DesktopServer.  I can run both systems side by side with no problems.

I sort of miss phpMyAdmin (it’s the default for my cPanel based live server) but Sequel Pro is a good alternative even if it has to be downloaded separately.  Of course, there’s no reason why phpMyAdmin couldn’t be installed separately but I’ve not really needed to do that.

Both products are geared for WordPress hosting.  You can see that from the control panels where they are looking for key files to report back version numbers etcetera.  But I don’t have an issue with creating non-WordPress sites with wither of the systems, but I think DesktopServer has the edge on that one; Local will always create a WordPress site.  But it’s easy enough to tidy up the files (delete the whole lot) and replace with your own website files and clear down the database.  Then what I’ve done is create a Blueprint from that site for future non-WordPress sites. My latest app is using CodeIgniter (MVC Framework) running on Local-by-Flywheel no problem.

Tearing down websites: DesktopServer uses the installation configuration files to determine the database to drop when a site is removed (deleted).  In the case of a non-WordPress site it’s possible to have orphaned databases but they could be tidied up with phpMyAdmin.  However, as Local uses separate database instances (I assume because the connection for each site has a different port number), when a site is deleted all instances in that setup are removed lock-stock-and-barrel.

All-in-all I have been using Local for over a month now with no problems.  I love it and would recommend it to any web/WordPress developer.  It’s free but I would be happy to make a contribution for the time and effort it has already saved my while developing web apps and WordPress sites.

Give it a go!!

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close