# Exams.fit cPanel installation

## Requirements

- PHP 8.2 or newer
- MySQL 8 or MariaDB 10.4+
- PDO MySQL, mbstring, JSON, ZIP, Fileinfo, SimpleXML and OpenSSL extensions
- Apache or LiteSpeed with rewrite support
- HTTPS certificate

## Install

1. Create an empty MySQL database and database user in cPanel. Grant all privileges on that database.
2. Open the document root for `exams.fit` in cPanel File Manager. Upload `ExamsFit_USA_Education_Platform_v3.1.0_cPanel.zip` and extract it directly there.
3. Ensure `storage`, its child directories, `uploads/pdf` and `uploads/media` are writable (normally 755; use 775 only if your host requires it).
4. Open `https://exams.fit/install/` and keep the Website URL exactly `https://exams.fit`.
5. Sign in at the admin path chosen during installation (default `/adminji`).
6. The installer locks automatically after creating `config.php`; deleting the physical `install` directory is an optional extra precaution.
7. Add the exact tokenized cron command shown under Admin → Cron. Do not share its token.
8. Open Admin → Templates, download the example ZIP and run Validate Only. Import it to confirm the workflow; it remains draft/noindex.

This release is configured for the root of `exams.fit`. Do not place it inside an additional `/exam` subfolder.

## First production steps

Configure the site description and Search Console verification. Add only permitted official RSS/Atom feeds. Import reviewed, original content. Keep AdSense disabled until policy, consent and valuable-content requirements are satisfied.

If upgrading an existing v2 installation, first back up the database and files, upload v3 without overwriting `config.php` or user uploads, then use Admin → System → “Back up and upgrade to v3.”

## Database access denied troubleshooting

If the installer shows MySQL error 1045, the database username/password or privileges are incorrect; cron cannot fix it. In cPanel → MySQL Databases, confirm the full prefixed database and username (for example `account_examsfit`), add that user to that database with All Privileges, then enter the same credentials in `/install/`. Keep DB host as `localhost` unless the host provides a different value.
