Shared Host Installation
Hosting requirements
Section titled “Hosting requirements”Before uploading KubikLMS, confirm the hosting account provides:
- PHP 8.x
- MariaDB or MySQL-compatible database access
- HTTPS support for the final domain
- a writable storage area for runtime files
- the ability to upload and extract the KubikLMS release package
You also need the database connection details in advance:
- host
- port
- database name
- username
- password
Download the release package
Section titled “Download the release package”After purchase, sign in to your KubikLMS dashboard and download the latest release ZIP from the purchaser area.
Extract the ZIP locally before uploading it to your hosting account.
Inside the extracted package you should see:
public_html/app/sql/storage/
Upload layout
Section titled “Upload layout”Upload the extracted release package so that:
public_html/becomes the web rootapp/,sql/, andstorage/stay outside the public web root when the host allows it
If the host only supports a single deployable tree, keep the package structure exactly as shipped in the downloaded release.
Writable directories
Section titled “Writable directories”PHP must be able to write to these paths:
storage/config/storage/logs/storage/sessions/storage/cache/storage/uploads/storage/backups/storage/plugin-packages/
If these paths are not writable, installation or runtime behavior will fail.
Run the browser installer
Section titled “Run the browser installer”Open the installer in the browser:
/install.phpThe setup wizard runs in three stages:
DatabaseSite & AdminInitialize
On a fresh install, provide:
- DB host
- DB port
- DB name
- DB username
- DB password
- site name
- first admin full name
- first admin email
- first admin password
There is also an optional Install demo content checkbox. Keep it unchecked for production unless you intentionally want sample records.
What the installer writes
Section titled “What the installer writes”The installer:
- applies
sql/schema.sql - applies
sql/seed.sql - optionally applies
sql/demo_seed.sql - creates the first admin account
- writes
storage/config/kubik.config - marks the site as installed
If storage/config/kubik.config already contains valid database details, KubikLMS can skip directly to the site and admin setup step.
First login
Section titled “First login”After installation:
- Open the LMS homepage.
- Sign in with the admin email and password created during setup.
If login fails, verify:
- the installer completed without database errors
storage/config/kubik.configexists- the database user has create, update, and insert privileges
SEO and runtime notes
Section titled “SEO and runtime notes”KubikLMS public pages are server-rendered for SEO, including:
- homepage
- course listing
- course detail
- article listing
- article detail
- CMS page detail
If the public pages do not behave like a normal installed KubikLMS site, recheck that the packaged release was uploaded correctly and that the web root points at public_html/.
Common installation failures
Section titled “Common installation failures”The most common causes of installation issues are:
- wrong database credentials
- the web root not pointing at
public_html/ - missing write permissions on
storage/ - stale files from a previous deployment
- SMTP not being configured later, which breaks password reset and email workflows