Installation FAQ
Blank Pages and White Screens
Q: I uploaded the files and navigated to my domain, but I just see a blank white page. What is wrong?
A: A blank white page almost always means PHP is not producing any output — usually because of a configuration error that is being silently swallowed. Work through these in order:
1. Check that APP_DEBUG is enabled.
Open your .env file and confirm APP_DEBUG=true. With debug mode on, PHP errors will display in the browser instead of showing a blank page. Once you see the error, you can diagnose and fix it, then set APP_DEBUG=false before going live.
2. Check that your document root points to the /public directory.
The script’s entry point is public/index.php. If your web server is serving the root of the script (not /public), it will either show a directory listing or a blank page.
– cPanel / Shared Hosting: Set the domain’s document root to public_html/public (if you uploaded to public_html) or use the cPanel subdomain tool to point the domain at the /public subfolder.
– VPS / Nginx: Your server block’s root directive must point to /path/to/script/public.
– VPS / Apache: Your DocumentRoot directive must point to /path/to/script/public.
3. Check that APP_KEY is set.
A missing or empty APP_KEY causes a blank page. See the question below.
4. Check your PHP version.
The script requires PHP 8.2 or higher. If your hosting runs PHP 7.x or an older PHP 8.x, you will get a blank page. Check PHP version in cPanel under Select PHP Version or via SSH with php -v.
5. Check the Laravel log file.
Even if the browser shows nothing, errors are logged. Look at storage/logs/laravel.log. On cPanel, you can view this via the File Manager. Search for [ERROR] or [CRITICAL] entries.
Q: I see “No application encryption key has been specified.” What do I do?
A: Your .env file has an empty APP_KEY= line. The script cannot run without an encryption key. Generate one using this command in your script’s root directory:
php artisan key:generate
This will write the key directly into your .env file. If you do not have SSH access (shared hosting), you can generate a key manually:
- Run this PHP snippet locally or in an online PHP sandbox:
php echo 'base64:' . base64_encode(random_bytes(32)); - Copy the output (it looks like
base64:abc123...==). - Paste it into your
.envfile:APP_KEY=base64:abc123...==
Migration and Database Errors
Q: Migrations failed during installation. What should I check?
A: Migration failures are almost always caused by database credential or permissions issues. Check these:
1. Verify your database credentials in .env.
Confirm DB_DATABASE, DB_USERNAME, and DB_PASSWORD exactly match the database and user you created in cPanel (or via your VPS MySQL setup). Database names and usernames are case-sensitive.
2. Confirm the database user has the right privileges.
The database user needs ALL PRIVILEGES on the target database. In cPanel → MySQL Databases, scroll to “Add User To Database” and grant All Privileges.
3. Check that DB_HOST is correct.
On most shared hosting, this should be 127.0.0.1. On some hosts it is localhost. If you are connecting to a remote MySQL server, use its IP address.
4. Run migrations manually to see the exact error. If you have SSH access:
php artisan migrate --force
The output will show exactly which migration failed and why.
5. Check that the database is empty before re-running.
If a previous migration run partially succeeded, you must either drop and recreate the database, or run php artisan migrate:rollback before retrying.
Q: The installer ran, but now I get a “SQLSTATE” database error on every page. What is wrong?
A: This usually means migrations completed but the database connection credentials in .env are not being picked up correctly. Try:
- Confirm there are no trailing spaces in your
.envvalues — copy them carefully from cPanel, not from a document that might add smart quotes or invisible characters. - Clear the config cache:
php artisan config:clear - If on shared hosting without SSH, delete
bootstrap/cache/config.phpmanually via File Manager.
License Validation Errors
Q: The admin panel shows a license error or my site is in “grace period” mode. What should I do?
A: The script validates your license key daily against the Traffic Exchange Script license server. If validation fails, the script enters a grace period — the site remains fully functional for up to 14 days while validation retries.
Step 1 — Verify your license key in .env.
TE_LICENSE_KEY=your-license-key-here
Make sure there are no extra spaces or quotes around the key. The key is case-sensitive.
Step 2 — Check outbound HTTPS from your server. License validation requires your server to make an outbound HTTPS request to the Traffic Exchange Script license server. On some shared hosts, outbound requests are blocked by a firewall. Test this via SSH:
curl -I https://trafficexchangescript.com
If this fails, contact your hosting provider and ask them to allow outbound HTTPS requests.
Step 3 — Confirm your APP_URL is set correctly.
License validation ties the license to your domain. If APP_URL does not match the domain your license was issued for, validation will fail.
APP_URL=https://yourdomain.com
Do not include a trailing slash.
Step 4 — Run validation manually.
php artisan te:validate-license
This will output the result of the validation attempt and log details to storage/logs/laravel.log.
Step 5 — Contact support. If you have confirmed all of the above and validation still fails, contact support with your license key and domain. Your license may need to be re-issued or transferred.
Q: I transferred the script to a new domain. My license is now failing. What do I do?
A: Licenses are tied to a specific domain. To move the script to a new domain:
- Update
APP_URLin your.envfile to the new domain. - Contact Traffic Exchange Script support with your original and new domain so your license can be transferred.
- After the license is updated, run
php artisan te:validate-licenseto confirm validation succeeds.
cPanel-Specific Issues
Q: I set up cron jobs in cPanel but the scheduler does not seem to be running. How do I verify?
A: The scheduler requires one cron job to run every minute. In cPanel → Cron Jobs, the entry should look like:
* * * * * /usr/local/bin/php /home/youraccount/public_html/artisan schedule:run >> /dev/null 2>&1
Replace /home/youraccount/public_html/ with the actual path to your script’s root (not the /public folder — the artisan file is in the root).
To confirm the scheduler is running:
Check storage/logs/laravel.log after a minute or two — you should see log entries from scheduled commands.
Common cron issues on shared hosting:
– The php binary path may be different — try /usr/local/bin/php82 or ask your host for the PHP 8.2+ binary path.
– Some hosts require you to use the full path to artisan.
– Some hosts have a minimum cron interval of 5 or 15 minutes — this will cause delayed processing but the site will still function.
Q: File permissions are causing errors after upload. What permissions should I set?
A: Two directories need write permissions:
| Directory | Recommended Permission |
|---|---|
storage/ |
775 (recursively) |
bootstrap/cache/ |
775 (recursively) |
In cPanel File Manager, right-click each directory → Change Permissions → set to 775 and check “Apply to all subdirectories.”
All other files and directories should remain at their defaults (644 for files, 755 for directories).
For issues not listed here, check storage/logs/laravel.log first. Most errors are logged there. If you are still stuck, contact support with the relevant log lines.

Screenshots
