PHP and MySQL on Windows Server

PHP and MySQL on IIS, wired the way the manuals say

WordPress, Laravel, Joomla, Drupal or a hand-written PHP site run perfectly well on Windows Server, as long as PHP is the right build, FastCGI is configured properly, php.ini is a production one and the database is not listening to the whole internet. ServerMaid gets every one of those right, from official packages it has verified, in one click.

Part of the Server setup module, £99 £49.50 per server for twelve months. Extra PHP lines and staging sites are optional add-ons.

PHP

The official build, installed and configured for production

Verified downloads

The current release of the PHP line you choose, from windows.php.net, checked against the published SHA-256 before it is unpacked. Nothing ServerMaid cannot verify is ever installed.

The runtime PHP needs

The Visual C++ runtime that Windows builds of PHP depend on is installed or updated first, so you never see "FastCGI process exited unexpectedly" on your first page load.

FastCGI done right

Registered in IIS with instance limits, request recycling, timeouts and PHPRC set, and a php.ini watched for changes, so the handler restarts cleanly instead of serving a stale configuration.

Production php.ini

Built from php.ini-production, never edited by hand: ServerMaid appends a managed block with the directives a production server wants, sized to your server, with each directive journaled and reversible.

Extensions and OPcache

OPcache on, and the extensions common PHP applications need (database drivers, cURL, mbstring, OpenSSL and more) enabled in the right order, dependencies first. Sessions, uploads and temp folders live outside the PHP folder so an update never touches your data.

Several PHP versions side by side

With the Multiple PHP lines module you can run PHP 8.4 and 8.5 (or the next line) at the same time and pick one per website, so an older application and a new one share a server without a fight.

Choose the PHP line before the build

Advanced Setup asks which PHP line should be the server default, with each one explained in a sentence: PHP 8.4 (recommended: the line most themes, plugins and frameworks are tested against), PHP 8.5 (the latest line, for new applications that already support it) or PHP 8.3 (security fixes only, for an older application that is not ready to move). Whichever you pick, ServerMaid fetches the newest build of that line from windows.php.net, verifies it and installs it with the runtime, FastCGI settings and production php.ini described above. Quick Setup keeps PHP 8.4. Extra lines can be added later, per website, with the Multiple PHP lines module.

MySQL or MariaDB

A database that only your websites can reach

Signed packages

MySQL 8.4 LTS from Oracle's Authenticode-signed installer, or MariaDB 11.8 LTS verified against the SHA-256 that MariaDB publishes for every file. You choose the engine in Setup.

Local only, root secured

Bound to localhost, a generated 32-character root password stored in an encrypted vault, anonymous accounts and remote root removed, the sample database dropped.

One account per website

Adding a website creates its schema and an account with rights on that schema only. The credentials are written to the site's private folder for your application to read, never into wwwroot.

Sized and logged

A managed my.ini with sensible buffer sizes, the error and slow-query logs in a known place, and the data directory on the drive you chose for your websites.

Backed up and proven

With the Backups module every database is dumped on a schedule and replayed into a scratch schema to prove it restores. More on backups.

Staging sites

The Staging sites module clones a live website and its database to a staging hostname, hidden from search engines, so changes can be tried safely before they go live.

* Free SSL certificates need the Websites and SSL module (included in Agency and Enterprise licences) on a licence within its twelve-month period. Certificates come from Let's Encrypt; new websites get one while the licence is in date, and certificates already issued keep renewing.

Proven on every deployment

A real PHP page, tested before you are told it works

At the end of every build ServerMaid creates a temporary diagnostic website on a random local port with its own throw-away database account, and runs a PHP page that checks the version, the extensions, sessions, file uploads, temp writes, mysqli and PDO connections and an outbound HTTPS request. Then it removes all of it. If anything real fails, the deployment fails and tells you why in plain English.

Questions about PHP and MySQL on Windows Server

Does WordPress run properly on IIS?

Yes. ServerMaid's website wizard applies a WordPress rewrite profile for pretty permalinks, PHP gets the extensions WordPress needs, and the database account has rights on its own schema only. Laravel and other front-controller applications have their own profile.

Which PHP versions can I install?

PHP 8.4 (recommended), PHP 8.5 (latest) or PHP 8.3 (security fixes only), chosen as the server default in Advanced Setup; Quick Setup uses 8.4. ServerMaid installs the newest build of the chosen line from windows.php.net. Only releases the feed publishes a fingerprint for are installable; ServerMaid never installs an unverified archive. The Multiple PHP lines module adds further lines side by side.

Can ServerMaid install WordPress into a site?

Yes. Tick "Install WordPress (latest) into this site" on the add-website form and the current release is downloaded from wordpress.org, checked against its checksum, connected to the site's own database user and hardened before you choose the admin user. Needs the WordPress module (included in every Agency licence). What the one-click WordPress install does.

MySQL or MariaDB?

Either. MySQL 8.4 LTS or MariaDB 11.8 LTS, chosen in Setup. Both are installed local-only with the same security steps, and you can choose no database at all for a static or API-only server.

Can I reach the database from my desktop?

Not by default, and that is deliberate. Advanced Setup can open the database port to a chosen list of addresses if you need it; otherwise use the tools on the server or a tunnel.

How are updates handled?

PHP patch releases and database updates are managed: the previous version is parked, the new one installed and verified, and rollback puts the old one back if anything fails.

Your PHP stack on Windows, done properly

One click installs and configures PHP and the database, and every website you add gets its own database, account, pretty URLs and free certificate*.