Deploy ElmapiCMS on shared hosting

Deploy ElmapiCMS on shared hosting

This guide is for shared hosting: PHP + MySQL (or MariaDB), a document root for web files, and cron for background jobs.

You do not deploy from Git on the server. You upload elmapicmsInstaller.zip, move the public files, then run the web installer.

Menu names use cPanel as an example. On Plesk, DirectAdmin, InterWorx, or another panel, use the same ideas: file manager, database tool, and scheduled tasks (cron).

Get the package

  • Shop / GitHub access — download elmapicmsInstaller.zip from the Releases page. Do not clone the private repository onto shared hosting.
  • CodeCanyon — the file is in your product download. See For CodeCanyon buyers.

1. Prerequisites

  • Shared hosting with PHP 8.4+ and MySQL (or MariaDB)
  • Access to upload files (FTP/SFTP or the panel file manager)
  • A domain or subdomain that points to the host
  • The elmapicmsInstaller.zip file

2. Choose the document root

The document root is the public folder for your site.

Site typeTypical document root (cPanel examples)
Primary domainpublic_html (or httpdocs, www)
Subdomain at account root/home/your_username/cms.your-domain.com
Subdomain under public_html/home/your_username/public_html/cms.your-domain.com

If you install on a subdomain, create the subdomain in the panel first. Then note the document root path that the panel shows.

Example (cPanel): DomainsCreate A New Domain (or the subdomain tool).

3. Upload and extract files

  1. Log in to the hosting panel.
  2. Open File Manager (or the equivalent tool).
  3. Go to your account home directory (for example /home/your_username).
  4. Upload elmapicmsInstaller.zip.
  5. Extract the archive.

You get two folders:

  • elmapicms — the application
  • public — the web files

Keep elmapicms in the home directory (outside the document root).

4. Move public files

  1. Open the extracted public folder.
  2. Move all of its contents into the document root from step 2.

You can delete the empty public folder afterward.

The document root must include index.php, install.php, the installer/ folder, and the built assets (for example build/).

5. Create the database

Example (cPanel): MySQL® Database Wizard. On other panels, open the database tool.

  1. Create a database (for example elmapicms).
  2. Create a user with a strong password.
  3. Grant that user all privileges on the database.
  4. Save the database name, username, password, and host.

The database host is often localhost. Use the host value that your panel shows.

6. Run the web installer

  1. Open your site URL and add /install.php.
    • Primary domain: https://your-domain.com/install.php
    • Subdomain: https://cms.your-domain.com/install.php
  2. Complete the requirements check.
  3. Enter the site URL, database details, and admin account.
  4. Wait for the installer to create .env, generate APP_KEY, fix paths, migrate, and seed.
  5. On the final step, copy the cron command.
  6. Click Finish & remove installer.

The installer removes install.php and the installer/ folder. Sign in with the admin email and password that you entered.

If the installer files remain in the document root, delete them by hand.

7. Add the cron job for webhooks

Learn more about webhooks in Webhook setup.

If you use the database queue driver (usual on shared hosting), add a cron job so webhook jobs run.

Example (cPanel): Cron Jobs. Use the PHP path that your host documents (php, /usr/bin/php, or /usr/local/bin/php).

  1. Create a job that runs once per minute (* * * * *).
  2. Use the command from the installer final step, or a command like this (replace the username and PHP path):
/usr/local/bin/php /home/your_username/elmapicms/artisan queue:work --queue=webhooks --stop-when-empty >> /dev/null 2>&1

Next step

Search documentation

Find guides and reference pages