Skip to content

SpawnWP 0.5.18

Choose a tag to compare

@tts-empire tts-empire released this 11 Jul 10:27
· 31 commits to main since this release

description: SpawnWP 0.5.18 release notes — the PHP image now ships FTP/FTPS and the common extensions sites were missing (pdo_mysql, soap, sockets, pcntl, gmp, calendar).

SpawnWP 0.5.18

WordPress sites could not perform outbound FTP or FTPS transfers — plugins and core reported
"ftp and ftps are not available". The PHP image was missing the ftp extension. While fixing it
we also found pdo_mysql was absent, and added the other extensions a WordPress platform is
expected to have.

Reported by @wpeasy, with a precise diagnosis that saved a lot of
digging — thank you.

FTP and FTPS now work

ftp is installed, and FTPS is enabled on every PHP version we build (7.4, 8.2, 8.3, 8.4).
ftp_connect() and ftp_ssl_connect() are both available.

Getting FTPS on took two things beyond installing the extension:

  • The base image ships the OpenSSL runtime but not its headers, so ext/ftp compiled without
    SSL. The image now installs libssl-dev.
  • FTPS must be explicitly opted into when the extension is built standalone (which is how these
    images build extensions). The flag was renamed in PHP 8.4--with-openssl-dir up to 8.3,
    --with-ftp-ssl from 8.4 — and passing the wrong one aborts the build, so the image now picks
    the right one per version.

Extensions added

Alongside ftp: pdo_mysql, soap, sockets, pcntl, gmp, calendar.

pdo_mysql deserves a special mention: the image previously had only pdo_sqlite. WordPress
itself was unaffected (it uses mysqli), which is exactly why the gap went unnoticed — but any
plugin using PDO with MySQL was failing.

What you need to do

  • New sites: nothing. They get the new image automatically.
  • Existing sites: they keep running their current container, so they do not pick this up on
    their own. To get FTP on an existing site, rebuild its PHP image (System → refresh PHP images,
    or set SPAWNWP_REBUILD=1) and then recreate the site's containers (Down, then Up).
  • The first deploy on each PHP version after updating rebuilds that image — a one-off of about
    five minutes, which the cockpit announces while it happens. Later deploys are back to their usual
    speed.