Finding a Joomla 3.10 backup after your old host deleted the account is stressful — especially if your new host blocks installing older Joomla versions via Softaculous or similar installers. This guide gives a practical, step-by-step roadmap you can follow safely: what to gather, how to perform a manual restore (files + database) on a new host or on your local machine, how to use an Akeeba archive if you have one, common troubleshooting, and how to prepare a migration to Joomla 4.
Notes: follow each step carefully, keep copies of everything, and verify compatibility details with official Joomla and Akeeba documentation before making production changes.
Quick checklist: what to gather before you start
Before attempting any restore, collect all available artifacts and credentials. A short, complete inventory avoids mid-process surprises.
Checklist details: files, database dump, configuration.php, extension list
- Site files archive (ZIP, TAR) that contains the Joomla root structure (index.php, configuration.php, /administrator, /templates, /media, /components, /modules).
- Database dump (.sql or compressed .sql.gz). This is essential — the site content (articles, users, menus) lives in the DB.
- The configuration.php file (if available). It contains database connection parameters and some path settings.
- List of installed extensions and templates. Export or write down items from the #__extensions table if possible; this helps plan compatibility and replacements later.
- Credentials: DB name, DB user, DB password, DB host, FTP/SFTP access, and control panel login details for both the old and target hosts.
- Any host or environment notes you have: approximate PHP version, MySQL/MariaDB version, web server (Apache/Nginx).
How to verify the backup type (Akeeba vs raw files)
- Akeeba archives typically use extensions like .jpa, .jps, or .zip with an Akeeba structure. If you see a single large archive and a kickstart.php or akeeba folder, you likely have an Akeeba backup.
- Raw backups will contain Joomla folders and files directly (index.php, configuration.php, /administrator etc.).
Practical example checklist
- Expected file set: site-files-2022-06-01.zip, site-db-2022-06-01.sql.gz, configuration.php, extensions-list.txt.
- Manifest sample line: Backup date: 2022-06-01 • PHP (if known): 7.3 • Custom template: mytheme.
- Do not upload an end-of-life Joomla installation to a public site without isolating it (use a staging subdomain or local machine) because of security risks.
- Do not share the contents of configuration.php publicly — it contains database credentials.
Option 1 — Ask the old host: how to request a final backup or account snapshot
Contact the original host first — they may still have snapshots or backups even after an account was deleted. Quick polite requests can recover the missing pieces.
How to ask for server-side backups: sample info to request from support
- Provide the account email, domain name, username, and approximate deletion date.
- Request the full home directory as a compressed archive and a raw MySQL dump for each database associated with the account.
- If Akeeba was used by the previous admin, ask whether an Akeeba archive or cPanel full backup is available.
- Ask for a secure delivery method: a password-protected download link or temporary FTP access.
Practical examples
Example request content: "Please provide a compressed copy of the account home directory and a MySQL dump for database 'example_db' associated with domain your production domain. Prefer a secure download link or temporary FTP access."
- Hosts may have strict retention policies; do not assume deleted accounts are recoverable.
- Avoid sending passwords over insecure channels — use the host's support portal or encrypted message if available.
Option 2 — Manual restore to a new host (step-by-step)
When installers like Softaculous are blocked, a manual restore of files and database is a reliable fallback. Follow this sequence carefully.
Why manual restore is a reliable fallback
Manual restore does not depend on host installers; it uses basic hosting features: file upload, database creation, and SQL import — all available on nearly every host.
Step 1 — Create the target site (domain/subdomain, new database, user)
- In cPanel: create a subdomain or add-on domain for staging, then create a new MySQL database and user and assign the user to the database with all privileges.
- Record the exact DB name, DB user, and password. Note the DB host (often localhost but confirm with your host).
Step 2 — Upload files via cPanel File Manager or FTP
- If you have a zip/tar archive, upload it to the target folder (for example public_html/staging) and use cPanel File Manager to extract.
- If the archive is large, upload via SFTP and extract on the server if your host permits, or extract locally and upload the file tree via SFTP.
Step 3 — Import the database with phpMyAdmin or CLI
- Use phpMyAdmin's Import tab for .sql or compressed .sql.gz files. Watch for upload size limits — if too small, split the SQL, use BigDump, or import via SSH CLI: mysql -u user -p database < backup.sql (advanced users).
Step 4 — Edit configuration.php (DB credentials and path settings)
Open configuration.php and update the database connection lines with your new credentials. Typical variables to check include: public $host, public $user, public $password, public $db, and any $log_path or $tmp_path values.
Important: verify exact variable names and the file format against official Joomla documentation before making production changes.
Step 5 — File permissions and ownership basics
- After upload, ensure folders and files have safe permissions. Common guidance is folders 755 and files 644, but some hosts have different ownership settings. Verify recommended permissions for your hosting environment before applying CHMOD commands.
Step 6 — Testing the restored site and reading error logs
- Visit the staging URL. If you see errors, check server logs (error_log), enable temporary error display in a private environment, or enable Joomla debug on staging only.
- Typical first errors are database connection problems (wrong credentials), missing files, or PHP version incompatibilities.
Manual restore practical example
- Upload site-files.zip to public_html/staging and extract.
- Create DB joomla_db and user joomla_user with a secure password in cPanel.
- Import site-db.sql via phpMyAdmin into joomla_db.
- Edit configuration.php to set DB credentials and, if necessary, update paths.
- Visit the staging URL and check for errors.
- Never reuse an old configuration.php on a host with different paths or ownership without verifying and updating paths — this can cause errors.
- Avoid restoring an EOL Joomla site to a live production domain unless it is protected (maintenance mode, HTTP auth, or staging).
Option 3 — Restore locally (recommended for migration and testing)
Restoring your Joomla 3.10 site locally is the safest way to test the site, validate extensions, and prepare a migration to Joomla 4 without exposing security risks.
Tools and local environment notes
- Common tools: XAMPP, WampServer, Local by Flywheel, or Docker-based stacks. Choose one you are comfortable with.
- Match PHP and MySQL/MariaDB versions as closely as possible to the production server for realistic testing. Verify compatible versions against official Joomla documentation before proceeding.
Setting up XAMPP for Joomla 3.10 (high-level)
- Install XAMPP and start Apache and MySQL.
- Place site files in htdocs/your-site and import the SQL via local phpMyAdmin.
- Edit configuration.php to use DB host localhost and local DB credentials.
Restoring locally and checking extensions
- If the site breaks because of an extension, you can disable that extension directly via the database by setting the enabled column to 0 in the #__extensions table (always back up the DB before direct edits).
- Produce a list of installed extensions from the database to plan replacements or updates before migrating to Joomla 4.
- Local environments can behave differently from hosting environments — always confirm PHP extensions and versions match production.
- Be careful when editing your OS hosts file. Mistakes can disrupt network access.
If your backup is an Akeeba archive: how to use Kickstart
Akeeba Backup archives simplify the restore process. If you have a JPA/JPS archive, Kickstart can extract and run the installer without relying on Softaculous.
Using Akeeba Kickstart: upload, run, and restore notes
- Upload kickstart.php and the Akeeba archive (.jpa, .jps, or .zip) to the target folder.
- Run https://your production domain/kickstart.php in your browser. Follow the extraction steps and then use the web installer to configure the database and site settings.
- After a successful restore, remove kickstart.php and the archive from the public folder immediately.
Practical tips and common issues
- If PHP upload limits prevent using Kickstart, upload the archive via SFTP and use Kickstart’s extraction feature or extract locally and upload the extracted files.
- Always remove Kickstart and the archive after restoration — leaving them in a public folder is a security risk.
- Do not leave kickstart.php or backup archives in a public folder after the restore — attackers could reuse them.
- Check Akeeba and Joomla compatibility if you are unsure about the archive or Akeeba version; verify with Akeeba docs.
Common restore errors and how to troubleshoot them
Below are frequent problems and the immediate checks to help you isolate and fix issues quickly.
Quick troubleshooting checklist for the most frequent issues
- Database connection error: Re-check DB host, DB name, DB user and password in configuration.php. Confirm the database exists and that the user has privileges. Test access with phpMyAdmin.
- Blank page or 500 error: Enable PHP error display on a private staging environment or check the server error log (error_log) to find fatal PHP errors.
- Missing media or 404s: Verify file paths and permissions. Confirm the $live_site setting or any path overrides in configuration.php are correct.
- Extension fatal errors: Disable the offending extension via the database (set enabled = 0 in #__extensions) or remove its files temporarily.
How to disable a broken extension using phpMyAdmin
- Open phpMyAdmin and select your Joomla database.
- Open the #__extensions table (table prefix varies; it might be jos_extensions or similar).
- Find the extension row and set enabled to 0. Save the change.
Always create a copy of the database before making direct SQL edits.
- Editing the database directly can break the site if done incorrectly — always take a DB copy before changes.
- Enable debug mode only on staging or local sites to avoid exposing error details publicly.
Plan the safe migration path to Joomla 4
Restoring the old site is step one. Upgrading to Joomla 4 is strongly recommended for long-term security and support, but it requires careful preparation.
Extension compatibility checklist before upgrading
- List all installed third-party extensions and templates from the #__extensions table.
- Check each vendor for a Joomla 4-compatible release or an advised migration path. Prioritize security, payment, and SEO/SEF extensions.
- Plan replacements for extensions that have no Joomla 4 equivalent.
Recommended sequence to migrate from Joomla 3.10 to Joomla 4
- Restore and test your Joomla 3.10 site on staging or locally.
- Update Joomla 3.10 to the latest 3.x security release and update any compatible extensions.
- Run an extension compatibility audit and address incompatible items.
- Do a full backup of the tested staging site.
- Perform the Joomla 4 upgrade on staging, test thoroughly, and fix issues.
- Schedule and execute the production upgrade once staging is fully validated.
- Do not perform the Joomla 4 upgrade directly on an untested live site.
- Some templates and custom code may require rewriting — allocate time for testing and fixes.
After recovery: secure the site and set up reliable backups
Once restored, lock the site down and create a backup policy to prevent future data loss.
Immediate security actions
- Change all passwords (hosting, database, Joomla admin) and remove any temporary accounts.
- Remove installation and archive files from public directories (kickstart.php, full backups, etc.).
- Enable HTTPS and consider two-factor authentication for admin users.
Backup strategy
- Use automated scheduled backups with offsite copies. Options: host backups (verify retention), Akeeba Backup to remote storage, or custom cron jobs that upload to remote storage (S3, FTP).
- Test backups periodically by restoring locally or to a staging site.
Practical backup schedule example
- Daily DB dump, weekly full site archive, monthly full offsite archive kept for 6 months.
- Do not store backup archives in public_html without proper protections.
- Offsite backups reduce risk if a host account is deleted; confirm retention limits with the host.
When to hire a Joomla professional
Some restores and migrations are straightforward, but others require experienced help. Consider hiring a professional if:
- You have complex custom components or heavy customizations.
- Restores fail after reasonable troubleshooting and you need a reliable recovery under a deadline.
- You run e-commerce or sites that store sensitive customer data.
How to prepare before contacting a professional
- Gather backup files, extension list, admin access to the target host or staging, and any error messages you encountered.
- Define the scope clearly: restore-only, restore+upgrade, or full rebuild.
- Ask potential providers for their rollback plan and whether they will take a backup before work begins.
- Ensure any professional documents changes and tests on staging before touching production.
- Avoid providers that do not provide a rollback plan or refuse to take backups before work.
FAQ
Can I restore a Joomla 3.10 backup on a host that refuses to install Joomla 3?
Yes. If you have the raw site files and a database dump, you can perform a manual restore (upload files and import the DB) or restore locally and then migrate. If installers are blocked, manual upload and SQL import or using Akeeba Kickstart (if you have an Akeeba archive) usually work. Do not restore to a public live site without isolation.
How do I restore a Joomla backup manually using cPanel?
Create the database and user in cPanel, upload and extract your site files to the target folder, import the SQL backup using phpMyAdmin, update configuration.php with the new database credentials and path settings, fix file permissions, and test in staging.
Should I restore the site on a live public server or locally first?
Restore locally or to a staging subdomain first. This reduces risk and lets you check extensions and compatibility before exposing an older Joomla installation to the public internet.
What compatibility checks do I need before restoring?
Check PHP and MySQL/MariaDB versions and required PHP extensions for Joomla 3.10 and for any target Joomla 4 migration. Verify these details against official Joomla documentation before making production changes.
How can I recover files if the original host deleted the account?
Contact the old host immediately and request a home directory snapshot and MySQL dump. If the host cannot help, check for local developer backups, email attachments, third-party backup services, or cached copies like the Wayback Machine. In some cases, full recovery may not be possible.
What should I do about extensions no longer supported from 2022 backups?
Audit installed extensions, disable unknown or untrusted extensions, search for maintained replacements, and plan to rebuild custom functionality if necessary. Test replacements on staging before deploying to production.
Conclusion
Restoring a Joomla 3.10 backup when a host blocks older installers is usually possible if you have the site files and database. Prefer a local or staging restore, use manual file + DB restore or Akeeba Kickstart if available, and follow a cautious migration path to Joomla 4. Secure the recovered site and implement reliable, offsite backups to prevent future losses. When in doubt or if the restore becomes complex, engage a Joomla professional and make sure they document a rollback plan before changes.
Verify technical details such as PHP/MySQL compatibility, configuration.php variable names, and Akeeba compatibility against official documentation before making production changes.



Add comment