How to Install MailWizz on cPanel: Complete Guide
Before you start
cPanel can make a MailWizz installation easier because database creation, PHP selection, SSL and cron jobs are exposed through a graphical interface. The important limitation is that shared or managed hosting may restrict PHP extensions, cron frequency, process limits or outbound networking. If your host cannot meet the MailWizz release requirements, moving to a VPS is usually more practical than trying to work around the panel.
Important: installation instructions can change between software releases. Use the version bundled with your license and compare the vendor's current requirements before copying commands into production. Where this article uses an adapted Caddy or Docker pattern, it is clearly labeled rather than presented as vendor certification.
What you need
- A cPanel account with a domain or subdomain.
- A current MailWizz license/package.
- Access to File Manager or SFTP/FTP.
- MySQL/MariaDB database creation privileges.
- A PHP version and extensions supported by your MailWizz release.
- SSL/TLS through AutoSSL or your host's certificate system.
- Cron Job access with enough frequency for MailWizz's required tasks.
Architecture
Domain → cPanel/Apache → PHP → MailWizz → MySQL/MariaDB → Delivery server
Keeping these layers separate makes troubleshooting easier. If the web dashboard works but campaigns do not send, the problem may be in cron, the queue, the delivery server or the provider rather than in the web server. Conversely, a 502 or 500 error normally belongs to the web/PHP layer.
Step-by-step installation
1. Create the domain or subdomain
In cPanel, create the domain/subdomain that will host MailWizz. Point DNS to the cPanel server and wait for the hostname to resolve. Decide whether MailWizz will run at the primary domain or under a dedicated hostname such as mail.example.com.
2. Select the correct PHP version
Use MultiPHP Manager, Select PHP Version or the equivalent tool provided by your host. Enable the PHP extensions required by your MailWizz release. Do not choose a PHP version solely because it is the newest; compatibility with the application release is the priority.
3. Create the database
Open MySQL Databases or the host's database manager. Create a database, database user and strong password, then grant the user full privileges on that database. cPanel often prefixes database and user names with your account name, so copy the exact values into the MailWizz installer.
4. Upload MailWizz
Use File Manager or SFTP to upload the vendor archive. Extract it on the server where possible to avoid slow thousands-of-files FTP transfers. MailWizz's official install notes say the contents of the release's latest folder should be placed in the document root or an application subdirectory.
5. Run the installer
Open the installation URL over HTTPS. Enter the database details and follow the installer checks. If a required PHP extension is missing, stop and ask the host to enable it rather than disabling application checks.
6. Verify routing
Test the frontend, /customer and /backend areas. If the home page works but backend/customer URLs return 404, check Apache rewrite support and the .htaccess file supplied with the application. This is a common difference between a successful upload and a working installation.
7. Enable SSL
Use AutoSSL or your host's certificate manager. Force HTTPS and make sure APP_PATH/application URLs use HTTPS. Test login, tracking links and public forms after the redirect is active.
8. Add MailWizz cron jobs
Use cPanel's Cron Jobs interface. MailWizz's official documentation provides the current commands in Backend → Miscellaneous → Cron Jobs List. Paste the full PHP path and absolute MailWizz application path required by your host. Shared hosts sometimes require a specific PHP binary such as /usr/local/bin/php.
9. Configure delivery
Add your SMTP/SES/MTA delivery server, bounce server and feedback-loop server. Then send a small test campaign. Do not treat cPanel's mail() function as a substitute for a dedicated delivery architecture.
10. Clean up and secure
Remove the installation directory as instructed by MailWizz, protect configuration files, use a strong admin password and enable account-level backups. If the host limits cron, CPU or memory enough to interfere with campaigns, move the installation to a VPS.
Post-install configuration
Once the installer finishes, resist the temptation to immediately import a large list and launch a campaign. First configure the sending layer, domain authentication, bounce handling and unsubscribe behavior. Your application can be perfectly healthy while the email infrastructure is not ready for production.
1. Configure the sending service
Use a delivery service or MTA that is appropriate for your sending volume and compliance requirements. Record the exact SMTP/API endpoint, credentials, region and encryption settings. Never publish credentials in screenshots, tutorials, public repositories or support tickets.
2. Authenticate the sending domain
Publish the SPF, DKIM and DMARC records required by your chosen delivery service. If the provider gives you DKIM CNAME records, use those exact values. Avoid creating multiple conflicting SPF records. Start DMARC in a monitoring mode when you are still mapping legitimate senders, then tighten the policy once authentication is verified.
3. Configure bounces and complaints
A campaign system should not keep treating permanently failing addresses as healthy subscribers. Configure the application's bounce/complaint workflow and monitor the resulting logs. If your provider exposes feedback-loop events, connect them where the application supports it.
4. Test with a small list
Send a controlled test to addresses you own at more than one mailbox provider. Check authentication results, rendering, unsubscribe behavior, tracking, bounce handling and queue processing. Only after the end-to-end workflow passes should you increase campaign volume.
Common mistakes to avoid
- Installing a PHP version without checking the application's current compatibility requirements.
- Using the database root account inside the application.
- Making the entire application directory world-writable.
- Putting passwords or AWS credentials into a public repository.
- Assuming a successful login means scheduled jobs are working.
- Sending a large campaign before SPF/DKIM/DMARC and bounce handling are verified.
- Treating the application as the email delivery server when it actually relies on an external SMTP/API provider.
- Skipping backups before upgrades.
Troubleshooting
Installer reports a missing PHP extension
Open the cPanel PHP extension selector or ask the host to enable the required module. The correct solution is to satisfy the application's requirements, not to bypass them.
500 error after enabling PHP
Check the cPanel error log and PHP version. A mismatch between the application and selected PHP version can cause fatal errors.
Cron works manually but not in cPanel
Use the full PHP binary path supplied by the host. Sendy's community documentation demonstrates the same general cPanel issue; MailWizz also requires the correct absolute application path.
Backend/customer URLs return 404
Check Apache rewrite support and the application's .htaccess rules. A generic PHP hosting configuration is not enough if application routes are not rewritten correctly.
Campaign processing stops
Review cron execution, account resource limits and delivery-server logs. Shared hosting may terminate long-running processes or throttle CPU.
Security checklist
- Use SSH keys where possible and disable unnecessary remote access.
- Keep the operating system, PHP runtime and application patched.
- Use a dedicated database account.
- Keep MySQL private unless remote access is explicitly required.
- Use HTTPS for the administration interface.
- Protect application configuration and secret files.
- Back up the database and uploaded/application data.
- Test restoring a backup rather than assuming it is usable.
- Monitor disk, RAM, CPU, queue depth and application logs.
When should you choose this installation method?
cPanel is a good fit when you want a familiar control panel and your host gives you enough PHP, cron and resource access. It is especially convenient for smaller installations. For large lists or heavy campaign processing, a VPS gives you more predictable CPU, RAM, queue and database performance.
Final checklist
- ☐ DNS resolves to the server
- ☐ Supported PHP/runtime is installed
- ☐ Database and dedicated user created
- ☐ Application installer completed
- ☐ Correct file permissions applied
- ☐ HTTPS works
- ☐ Cron/worker jobs execute
- ☐ Sending service connected
- ☐ SPF/DKIM/DMARC verified
- ☐ Bounce/complaint processing tested
- ☐ Unsubscribe tested
- ☐ Backup created and restore plan documented
- ☐ Small end-to-end test campaign completed
Related installation guides
- How to Install MailWizz on Ubuntu VPS
- How to Install MailWizz on Caddy
- How to Install MailWizz on Docker
- Browse all self-hosted email software installation guides
- About Abhishek Sharma
Sources & references
This guide uses the following vendor or platform documentation. Where a deployment method is an adaptation rather than vendor documentation, that distinction is stated in the article.
- MailWizz official install steps
- MailWizz official cron jobs documentation
- MailWizz official getting-started steps