PHP platforms

Twelve PHP platforms, one team that knows each of them.

We install them, make them fast, lock them down, keep them updated and backed up, and move them to our servers for you.

The table of platforms we look after

Three groups: platforms that publish, platforms that sell, and platforms that run a part of your business. Choose one to see what it is for and what we do for it.

Publish · Sites and blogs

WordPress

The publishing system behind a large share of the web: company sites, blogs, news and landing pages, edited by people who never touch code.

Runs on
  • PHP
  • MySQL / MariaDB
WordPress hosting
Install
A clean install on your domain with SSL, the right PHP version, and only the plugins you need.
Speed
Full-page caching, OPcache and an object cache in Redis, and images served at the size they are shown.
Hardening
File editing from the dashboard switched off, login attempts limited, XML-RPC closed if you do not use it, and permissions set so an uploaded file cannot run.
Updates
Core, theme and plugin updates tried on a copy first, and a plugin its author has abandoned flagged to you.
Backups
The database and the uploads folder every day, kept away from the server.
Migration
Moved from any host, with the addresses inside the database rewritten so links and images keep working.

Publish · Structured sites

Drupal

A content framework for large, structured sites: governments, universities and organisations with many editors, roles and languages.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
  • Composer
Install
Built with Composer and Drush, with the configuration kept in files so every change can be tracked and repeated.
Speed
Drupal's own page and dynamic caches backed by Redis, with Varnish or a CDN in front for visitors who are not signed in.
Hardening
Advisories from the Drupal security team followed and applied, and trusted host patterns set.
Updates
Core and module updates through Composer, and database updates run with Drush, on a copy first.
Backups
The database and the files directory every day, with the configuration exported beside them.
Migration
Moves between hosts, and upgrades from older Drupal versions with the Migrate API.

Publish · Portals and members

Joomla

A content management system for company sites, portals and membership sites, with users, access levels and many languages built in.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
Install
Installed on the right PHP version, with search-engine friendly addresses on and the site's languages added.
Speed
Joomla's own caching, compressed pages and OPcache, and the extensions that slow the site found and fixed.
Hardening
Two-factor sign-in for administrators, the configuration file locked, and extensions checked against the vulnerable extensions list.
Updates
Minor updates kept current, and moves between major versions planned around the extensions you rely on.
Backups
The database and the whole site folder every day, kept away from the server.
Migration
Moved between hosts, or carried from an old Joomla version to a current one.

Publish · Wikis

MediaWiki

The wiki software behind Wikipedia, used for internal knowledge bases, documentation and community wikis.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
  • SQLite
Install
Installed with short addresses and file uploads, and with sign-up and editing rights set the way your wiki needs.
Speed
The parser cache and object cache kept in memory, and the job queue run by cron instead of on page views.
Hardening
Account creation and editing restricted as you choose, spam protection on edits, and uploads limited to safe file types.
Updates
Kept on a supported release, with the long-term support line preferred for a wiki that should stay still.
Backups
The database, the uploaded files and LocalSettings.php every day.
Migration
Moved between hosts with every page's full history, the users and the files intact.

Sell · Shops in WordPress

WooCommerce

The shop that runs inside WordPress: products, cart, checkout and orders, with payment gateways added as plugins.

Runs on
  • WordPress
  • PHP
  • MySQL / MariaDB
WordPress hosting
Install
Set up with your currency, taxes, shipping zones and a payment gateway that works in your country.
Speed
Cart, checkout and account pages kept out of the page cache so no customer sees another's basket, and everything else cached hard.
Hardening
Admin accounts reviewed, payment plugins kept current, and the checkout watched for card-testing attacks.
Updates
WooCommerce and its extensions updated together, and tested with a real order on a copy first.
Backups
Orders live in the database, so it is backed up more often than the files.
Migration
Products, customers and order history moved over, and the shop switched at a quiet hour.

Sell · Large catalogues

Magento Open Source

Heavy-duty commerce for large catalogues, several stores and languages from one admin, and complex pricing rules.

Runs on
  • PHP
  • MySQL / MariaDB
  • OpenSearch
  • Redis
  • Varnish
Install
Installed with Composer in production mode, with OpenSearch, Redis and the cron jobs Magento cannot run without.
Speed
Varnish for the full-page cache, Redis for sessions and cache, static content deployed ahead, and indexers kept on schedule.
Hardening
A custom admin address, two-factor sign-in for the admin, and security patches applied as they are released.
Updates
Version upgrades run on a copy with every extension checked, because a Magento upgrade is a project, not a click.
Backups
The database and the media folder, with the environment configuration kept safe beside them.
Migration
Moved between hosts, or brought over from Magento 1 with the data migration tool and a rebuilt theme.

Sell · Online shops

PrestaShop

An e-commerce platform born in France, with a large marketplace of modules and themes and many languages built in.

Runs on
  • PHP
  • MySQL / MariaDB
Install
Installed with the PHP extensions it needs, the install folder removed and the back office on its own renamed address.
Speed
The template cache and the combine, compress and cache settings switched on, with OPcache and a memory cache behind them.
Hardening
Modules from unknown sources avoided, known module vulnerabilities patched, and back-office access limited.
Updates
Core and module updates on a copy first, with the theme's overrides checked before anything goes live.
Backups
The database, the images and the modules folder every day, kept away from the server.
Migration
Products, customers and orders moved from another host or from another shop system.

Sell · Small shops

OpenCart

A light, straightforward shop for small and medium catalogues, quick to set up and easy to run.

Runs on
  • PHP
  • MySQL / MariaDB
Install
Installed with the storage folder moved outside the public web root, as OpenCart recommends, and the install folder removed.
Speed
OPcache, compressed output and image caching, with slow extensions found and replaced.
Hardening
The admin folder renamed, admin access limited, and extensions checked before they are installed.
Updates
Upgrades between major versions planned with care, because themes and extensions usually have to change with them.
Backups
The database and the image folder every day, kept away from the server.
Migration
Moved to our servers with its extensions and theme, and tested with a real order before the switch.

Run · Learning

Moodle

The open-source learning platform for courses, quizzes and grades in schools, universities, training centres and companies.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
Moodle hosting
Install
Installed with its data folder outside the web root, cron every minute, and email that reaches the inbox.
Speed
Caches and sessions in Redis, and the server sized for the morning a whole year sits the same quiz.
Hardening
Moodle's own security checks worked through, and plugins only from the Moodle directory or sources you trust.
Updates
Upgrades tried on a copy first and applied at a time that does not clash with exams.
Backups
The database and the data folder every day, and a single course restored when you ask.
Migration
Courses, users, grades and files moved from another host, keeping the same address and logins.

Run · Billing and clients

WHMCS

Billing, a client area and support tickets for hosting companies and resellers, with accounts set up automatically when an order is paid.

Runs on
  • PHP
  • ionCube Loader
  • MySQL / MariaDB
Install
Installed with the ionCube Loader it needs, its cron set, and the attachments, downloads and template cache folders moved outside the web root.
Speed
The cron and the database kept lean, so the client area and invoices stay quick as the history grows.
Hardening
The admin folder renamed, admin access limited by address or two-factor sign-in, and the configuration file locked down.
Updates
Updated promptly when a security release comes out, with custom templates and modules checked first.
Backups
The database every day, and configuration.php kept safe, because it holds the key that encrypts stored data.
Migration
Moved to a new server with its licence reissued for the new address, then the cron and payment gateways tested.

Run · Files and office

Nextcloud

Your own file sync and share, calendars, contacts and online office, on a server you control instead of a public cloud.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
  • Redis
Install
Installed with the data folder outside the web root, background jobs on cron, and your own domain with SSL.
Speed
APCu and Redis for caching and file locking, and PHP memory and upload limits set for large files.
Hardening
The security and setup warnings in the admin panel cleared, brute-force protection on, and server-side encryption where you need it.
Updates
Moved one major version at a time, as Nextcloud requires, with every app checked before each step.
Backups
The database, the data folder and config.php backed up together, so a restore is consistent.
Migration
Brought over from another server with every user's files, shares and calendars intact.

Run · Forums

phpBB

A long-running forum system for communities, clubs, support boards and fan sites.

Runs on
  • PHP
  • MySQL / MariaDB
  • PostgreSQL
  • SQLite
Install
Installed with the install folder removed, your style and language packs, and email for registrations working.
Speed
A memory cache for sessions and data, and search tuned so a large board stays quick.
Hardening
Anti-spam checks on registration, a second password prompt for the admin panel, and extensions only from the official database.
Updates
Updated to each phpBB release, with your style and extensions checked for compatibility.
Backups
The database and the files, images and attachments folders every day.
Migration
Moved between hosts, or converted from another forum system where a converter exists.

The care every one of them gets

Whichever platform you run, the routine around it is the same, and it is the routine that keeps a site alive for years.

  1. Before any change

    A backup, and a copy of the site to try the change on.

  2. Every day

    A backup of the database and the files, kept away from the server.

  3. When a security release lands

    It is checked on the copy and applied, not left waiting for the next visit.

  4. When something breaks

    You write to the people who installed it, and they can put back yesterday's copy if that is the quickest fix.

Not a platform, but your own code?

Custom PHP applications and framework projects get the same care, from the server up.

Tell us which platform you run

A new install, a slow site, an old version to bring up to date, or a move from another host. Every job is quoted after a short conversation.