Troubleshooting & FAQ
7 min read
- Installation problems
- Every page redirects to /install, or /install shows 404
- Pages other than the installer give 404, or "clean URLs are not rewritten"
- "This page is served over plain HTTP"
- A PHP extension is not loaded
- Every page shows "Server requirements not met"
- "Composer detected issues in your platform"
- Database test: access denied, does not exist or cannot be reached
- Database test lists missing privileges
- Binary logging and triggers
- "MariaDB … is not a certified version"
- Database test warns that strict mode is not enabled
- "That is not the current setup token" or too many attempts
- The installation was interrupted
- Starting over
- Problems after installation
- No e-mails arrive
- Results are not released, announcements are not sent, exports never finish
- The cron jobs exist but nothing happens, and the application logs show nothing
- Uploads are refused
- 503 Service Unavailable on every page
- Sign-in blocked after several attempts
- Staff pages show a software licence notice (Single Site and Multi Site)
- Mobile app problems
- Logs
- Frequently asked questions
- Does Academy & Exam OS require a VPS?
- Does Academy & Exam OS support MariaDB?
- Will Academy & Exam OS work on Hostinger shared hosting?
- What does the installer check before it installs?
- How many questions can a Mock Test have?
- Do I need Priority Support to receive updates?
- Does the Reseller / White-Label edition need a licence key?
- Still stuck?
- Related documents
Find your symptom below. Most installation problems are hosting settings that the installer names on its requirements and database pages.
Installation problems #
Every page redirects to /install, or /install shows 404 #
Before the installation completes, every page redirects to /install — that is expected. After it completes, /install answers 404 by design.
If a finished installation suddenly redirects to /install, the file Web/config/app_local.php or Web/config/installed.php is missing or unreadable. Restore them from your backup and check the file permissions.
Pages other than the installer give 404, or “clean URLs are not rewritten” #
- Apache / LiteSpeed: enable
mod_rewriteand allow.htaccess(AllowOverride All) for the application folder, then open/installagain withoutindex.phpin the address. - nginx: route every request to
webroot/index.php.
“This page is served over plain HTTP” #
Production installations require HTTPS. Install a certificate for the domain and open https://your-domain.example/install.
A PHP extension is not loaded #
Enable it for the PHP version the website uses (hosting panel → PHP extensions) and reload the requirements page. sodium is the extension most often switched off by default on shared hosting.
Every page shows “Server requirements not met” #
The site’s PHP lacks something the application needs before it can even show the installer (PHP 8.3 or newer, intl), or — on an installed site — a required extension was switched off, for example after a hosting change. The page names what is missing. Enable it for the site’s PHP version and reload. The scheduled worker prints the same message and does no work until then.
“Composer detected issues in your platform” #
The site runs a PHP version that is too old. Select PHP 8.3 or 8.4 for the site.
Database test: access denied, does not exist or cannot be reached #
Check the host (often localhost on shared hosting), port, database name, user name and password. The database must already exist and be empty.
Database test lists missing privileges #
Grant SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP, TRIGGER, REFERENCES on the application database. The migration phase needs TRIGGER; without it the installer stops safely and continues after you grant it and retry the phase.
Binary logging and triggers #
When MySQL or MariaDB runs with binary logging and the database user has no SUPER privilege, set log_bin_trust_function_creators = 1 on the server, or ask your host. The database test names this condition.
“MariaDB … is not a certified version” #
Version 1.0.2 is certified on MariaDB 10.11, 11.4 and 11.8, and on MySQL 8.0 or newer. Ask your host for one of these versions, or use another database server your host offers.
Database test warns that strict mode is not enabled #
Informational only. The server’s default sql_mode is not strict, which is common on shared MariaDB. The application switches its own connections to strict mode, so you can continue.
“That is not the current setup token” or too many attempts #
Open Web/storage/install/setup-token.txt on the server and paste its content exactly. Five wrong attempts block your address for fifteen minutes. If the file is lost, delete it; the next visit to /install creates a new one.
The installation was interrupted #
Open /install, paste the same token and continue. Completed phases are skipped and the next one resumes.
Starting over #
There is no reinstall route. To install from scratch — only on a site that holds no real data — drop and recreate the database, delete Web/config/app_local.php, Web/config/installed.php and the Web/storage/install/ folder, then open /install.
Problems after installation #
No e-mails arrive #
Send the test message under Email / SMTP and read its result. Check the provider’s port and encryption, and configure SPF and DKIM for the sending domain. See E-mail & SMTP Settings.
Results are not released, announcements are not sent, exports never finish #
The background worker is not scheduled or fails. From the Web/ folder, run php bin/console.php worker by hand and read its output, then check the cron entry and the user it runs as. See Cron Jobs & Background Worker.
The cron jobs exist but nothing happens, and the application logs show nothing #
The cron job probably runs a different PHP than the website. On shared hosting, the default php or /usr/bin/php, or a “PHP”-type cron job, can be an older version, and the command stops before the application starts. The reason (for example “Server requirements not met … sodium”) appears only in the cron job’s output in the hosting panel. Use a custom cron command with the command-line PHP binary that matches the website’s PHP 8.3 or 8.4.
Uploads are refused #
Raise upload_max_filesize (250M or more) and post_max_size (260M or more) in your hosting’s PHP settings. The installer’s requirements page shows the current values.
503 Service Unavailable on every page #
Maintenance mode is on. Delete Web/storage/maintenance.flag.
Sign-in blocked after several attempts #
Sign-in attempts are rate-limited per account and per address. Wait fifteen minutes and try again.
Staff pages show a software licence notice (Single Site and Multi Site) #
Open Software license in the staff area. The Diagnostics section names the last problem. Temporary problems clear on the next successful check; explicit rejections need action, such as activating a replaced key or releasing a slot. See Licence Activation & Deactivation.
Mobile app problems #
See the troubleshooting table in Building the Android App.
Logs #
Web/logs/error.logandWeb/logs/debug.log— application logs.Web/storage/install/install.log— the installation audit trail (it contains no secrets).- Audit / Logs in the staff area — the last 100 audited staff actions.
Frequently asked questions #
Does Academy & Exam OS require a VPS? #
No. Academy & Exam OS can run on compatible shared hosting, cloud hosting or a VPS. A VPS is not required if your hosting provides PHP 8.3/8.4 with the required extensions including sodium, MySQL 8.0+ or a certified MariaDB version (10.11, 11.4 or 11.8), the required database privileges including TRIGGER, HTTPS, URL rewriting and an every-minute cron job. The browser installer checks the hosting environment before installation.
Does Academy & Exam OS support MariaDB? #
Yes. Version 1.0.2 supports and has been certified with MariaDB 10.11, 11.4 and 11.8. Other MariaDB series are not certified and are refused by the installer.
Will Academy & Exam OS work on Hostinger shared hosting? #
It can run on compatible Hostinger shared hosting when the hosting environment meets the product requirements. It has been installed and tested on Hostinger shared hosting with PHP 8.3 and MariaDB 11.8.9. Required PHP extensions such as sodium must be enabled, and the database user must have the required privileges including TRIGGER.
The cron jobs need the same PHP version as the website. On the tested account, /usr/bin/php ran PHP 8.2 without sodium, and the hPanel “PHP” cron type also used PHP 8.2. A “Custom” cron job with the PHP 8.3 command-line binary (/opt/alt/php83/usr/bin/php there) worked. This is not a guarantee for every Hostinger plan or configuration: the installer checks the actual environment.
What does the installer check before it installs? #
The PHP version and extensions, writable folders, upload and memory limits, URL rewriting, HTTPS and outbound TLS; then the database engine and version, the character set, the privileges including TRIGGER, the binary-logging condition for triggers and that the database is empty — all before anything is written.
How many questions can a Mock Test have? #
Up to 200 questions per Mock Test attempt: every fixed section’s questions plus every random section’s draw. A random section can draw from a pool of up to 500 approved questions (for example 100 drawn from 500), and a test can have up to 20 sections.
Do I need Priority Support to receive updates? #
No. Normal software updates are available to licensed customers through the product download. Priority Support is an optional plan for personal technical help. See Support Options.
Does the Reseller / White-Label edition need a licence key? #
No. It has no licence key and no online activation. See the Reseller / White-Label Edition Guide.
Still stuck? #
See Support Options. When you contact support, include your product version (from VERSION), your edition and, for installation problems, the relevant lines of Web/storage/install/install.log.