Last updated on 7th March 2026

Deploy OpenCart with DeployHQ

Prerequisites:

  • PHP 8.0+ with required extensions (gd, curl, zip, mbstring)
  • MySQL or MariaDB
  • SSH or SFTP access to your server
  • A DeployHQ account

What is OpenCart?

OpenCart is a free, open-source PHP e-commerce platform. It's file-based and straightforward — no Composer, no build tools, no Node.js required for the default installation. This makes it ideal for SFTP-based deployment.

OpenCart powers over 400,000 online stores and is popular with merchants who want a simple, self-hosted e-commerce solution.

Project Structure

opencart/
├── admin/               # Admin panel
│   ├── controller/
│   ├── model/
│   ├── view/
│   └── index.php
├── catalog/             # Storefront
│   ├── controller/
│   ├── model/
│   ├── view/
│   └── language/
├── image/               # Product images and assets
│   ├── cache/           # ⚠️ Exclude from deployment
│   └── catalog/         # Product images
├── system/              # Core framework
│   ├── config/
│   ├── library/
│   └── storage/         # ⚠️ Exclude from deployment
├── config.php           # ⚠️ Environment-specific, exclude
├── admin/config.php     # ⚠️ Environment-specific, exclude
└── .htaccess

Version Control Setup

.gitignore: gitignore config.php admin/config.php image/cache/ system/storage/

These files are environment-specific or generated. They should not be in Git or deployed.

Deploy with DeployHQ

Server Configuration

  • Protocol: SSH or SFTP
  • Deployment Path: /var/www/html/ (or your web root)
  • Excluded Files: config.php, admin/config.php

No Build Commands Needed

OpenCart is pure PHP — no compilation or bundling required. Files are deployed as-is.

Shared Paths (Zero-Downtime Mode)

If using zero-downtime deployments: - config.php — database credentials and paths - admin/config.php — admin configuration - image/catalog/ — product images uploaded by merchants - system/storage/ — cache, logs, sessions

Post-Deployment

Clear OpenCart's cache after deployment: bash rm -rf /var/www/html/system/storage/cache/*

Extension and Theme Deployment

Custom OpenCart themes live in: catalog/view/theme/my-theme/

Custom extensions follow the OCMOD or VQMod pattern. Deploy extension files to their respective directories — OpenCart's modification system handles the rest.

Troubleshooting

File Permission Issues

OpenCart requires write access to specific directories: bash chmod 755 image/ image/cache/ image/catalog/ system/storage/

Modification System (OCMOD)

After deploying new OCMOD extensions, refresh modifications in admin: ExtensionsModificationsRefresh

Or via CLI if available: bash php /var/www/html/system/storage/vendor/bin/ocmod refresh

Configuration Mismatch

If config.php paths don't match the deployment directory, OpenCart will show errors. Ensure the config files on the server reference the correct paths.

Conclusion

OpenCart's file-based architecture makes it a natural fit for SFTP deployment. No build tools, no package managers — just PHP files deployed to your server.

Sign up for DeployHQ — free for one project.

Questions? Contact support@deployhq.com or on Twitter/X.