Skip to content
ESC

Searching...

Quick Links

Type to search • Press to navigate • Enter to select

Keep typing to search...

No results found

No documentation matches ""

Install from Package.

Apply updates from a downloaded zip file using the admin dashboard.

Apr 3, 2026

Install from Package lets you apply updates from a zip file you've already downloaded. Place the zip on your server, and the admin dashboard handles the rest — backup, extraction, migration, and cache clearing.

This is useful when:

  • Your support license has expired (the update server requires active support, but if you have the zip you can install it)
  • You want to verify the exact version before installing
  • You prefer downloading updates separately from applying them

Important: Install from Package uses the same background updater as dashboard updates. Your server must support the exec() PHP function. If your hosting disables exec(), use Manual File Replacement instead.

How It Works

  1. You place the zip file in storage/app/manual-update/ on your server
  2. The License & Updates page detects it and shows the version
  3. You click Apply Update
  4. The system creates a full backup, extracts, copies files, runs migrations, and clears caches

The process is identical to a dashboard update — the only difference is where the zip comes from.

Step by Step

1. Download the update

Download the latest version from the purchase store. The file name doesn't matter — the system reads the version from inside the archive.

2. Upload to your server

Upload the zip file to:

storage/app/manual-update/

Use FTP, SFTP, or your hosting file manager. The file must be a .zip archive. You can place multiple zip files in this directory — the dashboard will list all of them.

💡 Tip: The directory is at the same level as storage/app/backups/. If you can find your backups directory, manual-update is right next to it.

3. Open License & Updates

Log in as an administrator and navigate to License & Updates in the sidebar. Scroll down to the Install from Package card.

The card shows each detected package with:

  • Version number extracted from the archive
  • Status badge: Upgrade, Reinstall, or Downgrade relative to your current version
  • File size of the zip

4. Apply the update

Click Apply Update next to the package you want to install. A confirmation dialog appears showing the version and update type.

After confirming, the system:

  1. Creates a full backup of your installation
  2. Extracts the package (handles the standard download structure automatically)
  3. Copies new files while preserving protected paths
  4. Clears OPcache and bootstrap cache
  5. Runs database migrations
  6. Shows a progress page with real-time status

The zip file is not deleted after installation — you manage files in this directory yourself.

Package Format

The system accepts zip files with any filename. It reads the version from config/version.php inside the archive.

Several common structures are handled automatically:

  • Direct layout: app/, public/, config/ at the root of the zip
  • Named wrapper: reward-loyalty/app/, reward-loyalty/public/, etc.
  • Download wrapper: Product-Name-vX.Y.Z/public_html/app/, etc.

If the system cannot locate a valid application structure (a directory containing both app/ and public/), the package will show as "Unrecognized" and cannot be installed.

Requirements

Install from Package has the same server requirements as dashboard updates:

  • exec() PHP function must be enabled (typically available on VPS hosting)
  • PHP ZipArchive extension for extracting the package
  • Sufficient disk space for the backup and extracted files

If your hosting provider disables exec(), this method will not work. Use Manual File Replacement instead — it requires only FTP access.

Troubleshooting

Package shows "Unrecognized"

The system couldn't find config/version.php inside the zip, or the archive doesn't contain a valid application structure. Verify you're using the correct zip file (the full product download, not a partial export).

500 Error After Update

If your site shows a 500 error after updating, delete the contents of bootstrap/cache/ on your server and reload the page. The update process clears this automatically, but in rare cases a cached file may persist.

rm -f bootstrap/cache/*.php

Update fails with "exec() disabled"

Install from Package requires the same exec() function as dashboard updates. It is not the shared-hosting fallback. Use Manual File Replacement for environments without exec().