Installation

RuntCMS installs in minutes. Upload the files, visit the installer, fill in a few fields, and you're done.

Server requirements

RequirementMinimumRecommended
PHP8.28.3
DatabaseMySQL 8.0 / MariaDB 10.6MySQL 8.4
Web serverApache with mod_rewriteApache with mod_rewrite
PHP extensionspdo, pdo_mysql, mbstring, json, openssl
Shared hosting: Most cPanel and Plesk hosts running PHP 8.2+ will work out of the box. Check that mod_rewrite is enabled and .htaccess overrides are allowed.

Database user privileges

The database user you provide during installation needs these privileges on the RuntCMS database:

  • SELECT, INSERT, UPDATE, DELETE
  • CREATE, INDEX, ALTER (needed during installation to create tables)

After installation you can remove CREATE, INDEX, and ALTER if your host allows it — day-to-day operation only needs the first four.

Uploading files

  1. Download the latest RuntCMS release archive (runtcms-0.9.zip).
  2. Extract it locally.
  3. Upload all the contents to your public_html directory (or whichever directory your domain points to) via FTP or SFTP.

The directory layout after uploading should look like this:

public_html/
  index.php
  install.php
  .htaccess
  cms/
    pages/
    css/
    js/
    uploads/
  app/
  vendor/
Tip: Upload the vendor/ directory as-is — it contains the PHP dependencies and is included in the release archive. You do not need Composer on the server.

Running the installer

Once files are uploaded, visit https://yourdomain.com/install.php in your browser.

RuntCMS installation wizard — step 1, database credentials

The installer walks you through three steps:

Step 1 — Database

Enter your database connection details:

  • Database host — usually localhost
  • Database name — the database you created for RuntCMS
  • Database username
  • Database password

The installer tests the connection before proceeding. If it fails, double-check the credentials in your hosting control panel.

Step 2 — Site details

  • Site name — shown in the admin panel and outgoing emails
  • Site URL — the full URL including https://, no trailing slash

Step 3 — Admin account

  • Your name
  • Email address — used to log in
  • Password — minimum 12 characters recommended

Click Install RuntCMS. The installer creates the database tables, writes config.php, and creates an install.lock file.

Successful installation confirmation screen

After installation

Once the installer completes, a confirmation screen appears with:

  • A checklist of what was created (database tables, admin account, config.php, install.lock)
  • Whether install.php was deleted automatically — if not, a red warning shows the exact path so you can delete it manually via FTP or your hosting file manager
  • A security checklist of steps to complete before going live (HTTPS, display_errors, 2FA)
  • The exact REVOKE SQL command to strip elevated database privileges — see Hardening database privileges below

Click Log In to RuntCMS to go to the login page.

Security: Make sure install.php is deleted. Until it is, a red banner will appear on every admin page as a reminder. If anyone could visit that file, they could reset your database.

Hardening database privileges

After installation, the database tables have been created and the install user no longer needs CREATE, ALTER, INDEX, or DROP privileges. The success screen shows the exact REVOKE SQL command to run — something like:

REVOKE CREATE, ALTER, INDEX, DROP ON your_database.* FROM 'your_user'@'localhost';

On cPanel hosts, you can reduce privileges in MySQL Databases → Current Users → Edit Privileges — uncheck everything except SELECT, INSERT, UPDATE, DELETE.

This is optional but recommended. Day-to-day RuntCMS operation only needs SELECT, INSERT, UPDATE, and DELETE.

Troubleshooting

500 error after upload

Usually a .htaccess issue. Make sure:

  • mod_rewrite is enabled on the server
  • The directory has AllowOverride All (not AllowOverride None) in the Apache config

Blank white page

Enable PHP error display temporarily by adding this to the top of index.php:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

The error message will tell you what's wrong. Common causes: missing PHP extension, wrong file permissions.

Database connection failed

  • Verify the database exists in your hosting panel
  • Check that the user is assigned to the database with the correct privileges
  • On some shared hosts the database host is not localhost — check your hosting documentation

File permissions

The web server needs write access to cms/uploads/ and cms/pages/. Set these directories to 755 or 775 depending on your server setup.

RuntCMS 0.9 Documentation