Version 2.158 to 2.162: setup tested on every common hosting panel and server type, a step-by-step setup wizard, and one import engine for the WordPress plugin package, a direct database connection and WordPress's own export file.
The October releases, 2.158 to 2.162, were about the first hour with jekcms: installing it on whatever hosting you already have, and moving an existing WordPress site into it. Below is what changed and where to find it.
Installing on any hosting panel
Most of our customers use shared hosting, and the panels differ more than they look. cPanel and DirectAdmin run Apache, aaPanel, CloudPanel and HestiaCP run nginx, Plesk puts nginx in front of Apache, CyberPanel uses OpenLiteSpeed, and some servers use Caddy. Each of them treats the .htaccess file differently, and the same installation behaved differently on each.
We built a test laboratory with those server types, PHP 8.0 to 8.5, MySQL 5.7, 8.0 and 8.4, and MariaDB 10.3 to 11.4. It also covers the restrictions shared hosts apply: disabled PHP functions, low memory, a session folder PHP cannot write to, installation in a subfolder, a domain without an SSL certificate, Cloudflare's Flexible mode, a database user without permission to create databases and a read-only folder. The full set is 38 configurations and about 1,050 checks. The release gate runs 25 of them before every release.
The fixes that came out of it:
- A site without an SSL certificate yet installs and opens over http instead of being sent to an https address that does not work. Behind Cloudflare and other proxies, https is recognised and there are no redirect loops.
- Setup runs in short steps, so it finishes on hosts that stop a request after 30 seconds, and continues where it stopped if the connection drops.
- Database details and the licence key are kept in PHP files that a web server never hands out, so they stay private on nginx and Caddy even before any server rules are added.
- Setup no longer deletes tables that belong to another application in the same database. It stops and asks for an empty database.
At the end of setup your browser tries the site the way a visitor would: do page addresses work, are the log, backup and cache folders closed, would a script in the uploads folder run. If something is open, you get instructions for your server and panel with the rules filled in for your site. The same check is in Settings → Security → Security Center → Server Check, and after you install a certificate, Settings → General → Redirect to HTTPS moves the site to https after testing that the certificate works.
A setup wizard in clear steps
You pick the language on the first screen, and the site and the admin panel follow it. The database step has short instructions for cPanel, Plesk, DirectAdmin, Hostinger, aaPanel, CloudPanel, HestiaCP and CyberPanel. The theme has its own step: all fifteen themes with a preview, a one-line description and a link to the live demo. Site details and the admin account follow on separate screens, the password shows its strength and one click generates a strong one, and the install screen marks each stage as it completes. The last screen lists the site address, the admin address and the admin email with copy buttons.
Moving from WordPress
There are now three main ways to bring a WordPress site across, and they use the same import engine:
- the jekcms Migrator plugin, which packs the site into one file,
- the setup wizard's database connection, which reads WordPress's database directly,
- WordPress's own export file from Tools → Export, uploaded in Admin panel → Import → WordPress XML.
Content arrives the way it looked on the old site. Galleries become jekcms galleries you can edit, YouTube, Vimeo, Spotify and SoundCloud embeds become players, image captions stay captions, and paragraphs written in the classic editor are kept. Plugin shortcodes such as contact forms are removed from the text, while ordinary text in square brackets stays.
Menus come across with their items linked to the pages, posts and categories they point to. Comments keep their reply threads. Scheduled, private and draft posts keep their status, and sticky posts become featured posts. SEO titles, descriptions, focus keywords, canonical addresses and noindex settings from Yoast, Rank Math and All in One SEO are carried over, and old post, page, category and tag addresses get 301 redirects. Images and files arrive in the media library with their alt text, in a folder named WordPress.
A package of any size can be uploaded: it goes in parts sized to your host's upload limit, and the import runs in short steps that continue after a dropped connection or a closed page. Importing the same site twice does not create duplicate posts or comments. We tested these paths against a real WordPress 6.8 site with block and classic content, galleries, embeds, Yoast and Rank Math fields, nested menus and threaded comments, on PHP 8.0, 8.3 and 8.5.
The jekcms Migrator plugin is now at version 1.1.0. It expands reusable blocks, includes the images used in cover and gallery blocks, linked files, your logo and site icon, and can include the whole media library.
Smaller fixes
A full backup no longer stops when the server's virus scanner locks a file in the uploads folder; that file is left out and the rest of the backup is completed. If the setup wizard is asked to finish before the installation is complete, it no longer deletes its own files. The Import screen's tabs now fit on one line and say what each one uses.
The itemised list is in the release notes, and the migration paths are described step by step in Migrating from WordPress.