I have been building WordPress websites for customers and myself for the past 10 years. Like many other web developers, I have tried a number of different hosting companies. While I’m able to configure a common VPS web server, I call myself a beginner at web server optimization. I have read numerous server admin tutorials and have tried different control panels, but it always felt like I wasn’t doing enough to maximize performance. A while ago I found ServerPilot, a company that offers a great service on the top of a Cloud VPS from DigitalOcean and a few other VPS hosting providers.
Optimized VPS hosting without trouble
First I needed a clean DigitalOcean droplet with Ubuntu 14.04 installed. Next I added the VPS to my ServerPilot account and installed the ServerPilot agent which allows me to install anything I need to run a WordPress website: Apache, MySQL, PHP-FPM and Nginx. Their server’s configuration is already optimized to run PHP applications like WordPress or Concrete5. A great feature is the possibility to choose different PHP versions (5.4, 5.5, 5.6 or 7.0) for each web application. After a few minutes my server was ready and I was able to create users, apps and databases inside the ServerPilot control panel. The native firewall is enabled by default and allows only access to necessary services like SSH, Apache/SSL and DHCP.
Your server’s control panel in the cloud
In the past years I’ve used DirectAdmin as my control panel, because it was much faster to configure new users, website and databases than from the command line. The DA control panel is even good for advanced tasks like: CRON jobs, FTP accounts, custom HTTP configurations and DNS settings. This advantage comes with high price: less performance and flexibility. The ServerPilot control panel is a web based interface that communicates with the ServerPilot agent on each connected server. This lightweight agent needs only a small amount of memory (12MB) and will not slow down your server. The control panel is a bit basic and some stuff you need, has to be done by using the command line, for example CRON Jobs or customizations to the firewall. If you need a VPS to host some WordPress websites, ServerPilot is the control panel you need to use. They offer 3 different plans:
- The “Free” plan which makes it possible to manage multiple servers and apps and is limited to a single SSH user
- The “Coach” plan which covers the “Free” features plus support for multiple SSH users, SSL/SPDY and real time server analytics
- The “Business” plan which covers the “Coach” features plus priority support, slow request stats and a log file viewer
If you host only 1-3 apps on each server, the “Free” plan with a single SSH user might be enough. If you need SSL support or multiple users, you should go for the “Coach” plan. Even if you use the “Coach” plan, your managed VPS is still affordable: Costs per month: DigitalOcean 1GB RAM VPS: $10 + ServerPilot “Coach” plan: $10 = $20
How I migrated my first WordPress website
With the plugin All-in-One WP Migration it’s very easy to migrate your WordPress. Install the plugin on your current website and create a backup. Using this WordPress plugin, you can create any backup, but the restore function is limited to 500MB for the free version. Now create inside the SP control panel a new app including WordPress.
To get access to the new WordPress hosting account I need to add the site’s host name and the new IP address to my local hosts file. With this addition I can access the new WordPress app to “Install” the backup I’ve created from my website. After I’ve tested my website, there was only one thing left: Changing the DNS records for my website.
A VPS from DigitalOcean in combination with ServerPilot is a great solution to host your WordPress websites and doesn’t create any stress. If you need more than just hosting for your WordPress website, you need to use the command line to install the advanced features or extensions. The packages of Apache, MySQL, PHP and Nginx are managed by ServerPilot and they offer support, even if you use the “Free” plan. Using the ServerPilot server setup I’ve tested my server with Load Impact and the results are amazing. A load test with “only” 50 users doesn’t slow down the server.