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.zipfrom 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.zipfile
2. Choose the document root
The document root is the public folder for your site.
| Site type | Typical document root (cPanel examples) |
|---|---|
| Primary domain | public_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): Domains → Create A New Domain (or the subdomain tool).
3. Upload and extract files
- Log in to the hosting panel.
- Open File Manager (or the equivalent tool).
- Go to your account home directory (for example
/home/your_username). - Upload
elmapicmsInstaller.zip. - Extract the archive.
You get two folders:
elmapicms— the applicationpublic— the web files
Keep elmapicms in the home directory (outside the document root).
4. Move public files
- Open the extracted
publicfolder. - 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.
- Create a database (for example
elmapicms). - Create a user with a strong password.
- Grant that user all privileges on the database.
- 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
- Open your site URL and add
/install.php.- Primary domain:
https://your-domain.com/install.php - Subdomain:
https://cms.your-domain.com/install.php
- Primary domain:
- Complete the requirements check.
- Enter the site URL, database details, and admin account.
- Wait for the installer to create
.env, generateAPP_KEY, fix paths, migrate, and seed. - On the final step, copy the cron command.
- 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).
- Create a job that runs once per minute (
* * * * *). - 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