Installation — cPanel / Shared Hosting
Before You Begin: Server Requirements
Your hosting account must meet these requirements before installation can proceed. The installer checks these automatically and will block you from continuing if any required item fails.
Required:
| Requirement | Minimum |
|---|---|
| PHP version | 8.3 or higher |
| MySQL | Any version supported by your host |
| PHP extension: bcmath | Enabled |
| PHP extension: ctype | Enabled |
| PHP extension: curl | Enabled |
| PHP extension: dom | Enabled |
| PHP extension: fileinfo | Enabled |
| PHP extension: gd | Enabled |
| PHP extension: json | Enabled |
| PHP extension: mbstring | Enabled |
| PHP extension: openssl | Enabled |
| PHP extension: pdo_mysql | Enabled |
| PHP extension: tokenizer | Enabled |
| PHP extension: xml | Enabled |
| PHP extension: zip | Enabled |
| PHP setting: allow_url_fopen | On |
| PHP memory_limit | 128M or higher |
Optional (recommended but not required):
| Extension | Why it helps |
|---|---|
| imagick | Better image processing |
How to check your PHP version in cPanel:
- Log in to cPanel.
- Look for MultiPHP Manager or Select PHP Version (the label varies by host).
- You will see the current PHP version for your domain. If it is below 8.3, switch it from the dropdown and save.
Note: Most shared hosts offer PHP 8.3 in their MultiPHP selector. If yours does not, contact your host’s support — do not attempt to install on an older version. The installer will not let you continue.
Step 1: Download the Script
- Open your purchase confirmation email and click the download link, or log into your license portal at
{{PORTAL_URL}}. - Download the Traffic Exchange Script ZIP file.
- Keep the ZIP file on your local computer — you will upload it in the next step.
Step 2: Create a MySQL Database
The installer needs a database to install into. Create one in cPanel now so you have the credentials ready.
- In cPanel, find and click MySQL Databases.
- Under Create New Database, enter a name for your database (e.g.
mysite_te) and click Create Database. - Scroll down to MySQL Users → Add New User. Enter a username and a strong password. Click Create User.
Important: Store this username and password somewhere safe. You will need them during installation.
- Scroll down to Add User To Database. Select the user you just created and the database you just created, then click Add.
- On the permissions screen, tick All Privileges and click Make Changes.
At the end of this step you should have:
– A database name (e.g. youraccount_mysite_te)
– A database username (e.g. youraccount_dbuser)
– A database password
Note: cPanel prefixes database names and usernames with your account name. The full database name is what you will enter in the installer, not just the part you typed.
Step 3: Upload the Script Files
You can upload using cPanel’s File Manager or an FTP client. Choose whichever you are more comfortable with.
Option A: cPanel File Manager (no FTP client needed)
- In cPanel, click File Manager.
- Navigate to the folder where you want to install the script. This should be above your
public_htmlfolder — for example, in your home directory (/home/youraccount/). Create a new folder if needed (e.g.traffic-exchange).
Important: Do not upload the script files directly into public_html. The script has its own public/ subfolder that becomes the web root. See Step 4 for how to connect it to your domain.
- Click Upload in the toolbar and upload the Traffic Exchange Script ZIP file.
- Once the upload finishes, right-click the ZIP file and choose Extract. Extract it into the folder you created (e.g.
/home/youraccount/traffic-exchange/). - You should now see the extracted script files including folders like
app/,public/,storage/,resources/, and files likeartisanand.env.example.
Option B: FTP Client
- Connect to your server using your FTP credentials (host, username, password, port 21).
- Navigate to a folder above
public_html(e.g./home/youraccount/traffic-exchange/). - Upload all extracted script files and folders.
Step 4: Point Your Domain to the /public Folder
The script serves everything from its public/ subfolder. Your domain’s document root must point to this folder, not to the script root.
How to do this in cPanel:
- In cPanel, go to Domains (or Addon Domains if this is a subdomain).
- Find your domain in the list and click Manage or Edit.
- Change the Document Root to the
publicsubfolder of your script (e.g./home/youraccount/traffic-exchange/public). - Save the change.
Note: The exact location of this setting varies by cPanel version. If you cannot find “Document Root” or “Manage” for your domain, check your host’s knowledge base for “change document root cPanel” or open a ticket with your host. This is a standard shared hosting feature.
If you are installing on a subdomain:
- In cPanel, go to Subdomains.
- Create a new subdomain (e.g.
te.yourdomain.com). - Set the Document Root field to the
public/path of the script (e.g./home/youraccount/traffic-exchange/public).
After this step, visiting your domain in a browser should redirect you to the installer at yourdomain.com/install. If you see a blank page or a 500 error instead, check Step 5 first.
Step 5: Set Folder Permissions
The installer checks that two directories are writable. If they are not, the installer will stop on the requirements screen with a red “Not Writable” status.
- In cPanel File Manager, navigate to your script folder (e.g.
/home/youraccount/traffic-exchange/). - Right-click the
storagefolder and select Permissions (or Change Permissions). - Set permissions to 755. Click Change Permissions.
- Do the same for the
bootstrap/cachefolder — set it to 755.
Note: Some hosts need 775 instead of 755 if the web server runs under a different group. If the installer still reports “Not Writable” after setting 755, try 775.
Step 6: Run the Web Installer
The installer is a 7-step wizard that configures everything for you. Open your browser and visit:
https://yourdomain.com/install
Work through each step:
Step 1 of 7 — Requirements Check
The installer runs all requirement checks automatically. You will see a table showing Pass/Fail for each item.
- All green: Click Next to continue.
- Red failure: Fix the issue shown (usually PHP version or a missing extension via cPanel’s MultiPHP Manager), then click Re-check or reload the page.
- Yellow warning: These are optional items (like
imagick). You can proceed without fixing them.
Step 2 of 7 — Database Configuration
Enter the database credentials you created in Step 2:
- Database host:
localhost(correct for almost all shared hosting) - Database name: The full database name including the cPanel prefix (e.g.
youraccount_mysite_te) - Database username: The full username including the cPanel prefix (e.g.
youraccount_dbuser) - Database password: The password you set when creating the database user
Click Next. If the connection fails, double-check the database name and username — cPanel prefixes are a common mistake here.
Step 3 of 7 — Site Configuration
Fill in your site details:
- Site name: The name of your traffic exchange (e.g. “My Traffic Exchange”)
- Site URL: Your full domain with
https://(e.g.https://yourdomain.com). No trailing slash. - Admin email: The email address for your admin account
- Admin username: Your chosen admin username (letters and numbers only)
- Admin password: A strong password — store it securely
- Timezone: Select your timezone from the dropdown (the installer auto-detects your browser timezone)
- Language: Select your preferred language
- Currency: Select the currency your TE will operate in
Click Next.
Step 4 of 7 — License Validation
Enter your license key from your purchase email. The installer will contact the license server to validate it.
- Your license key is in your purchase confirmation email from trafficexchangescript.com.
- The validation requires your server to make an outbound HTTPS connection. This works on virtually all shared hosting.
- If validation fails, check that you have copied the key correctly and that the domain you entered in Step 3 matches your purchase.
Click Next once validation succeeds.
Step 5 of 7 — Database Migration
The installer runs all database migrations to create the tables your TE needs. This happens automatically — you do not need to do anything.
You will see a progress bar or a list of completed migrations. Wait for it to finish, then click Next.
Step 6 of 7 — Environment Setup
The installer writes your .env configuration file based on the information you provided in the previous steps. It also generates a secure APP_KEY automatically.
For shared hosting, the installer sets TE_HOSTING_MODE=shared which configures the script to use file-based caching and database queues — both of which work without Redis or any server software beyond PHP and MySQL.
Click Next.
Step 7 of 7 — Final Verification
The installer runs 7 checks to confirm everything is working:
.envfile exists and is readableAPP_KEYis set- Database connection is working
- Admin account was created
- Settings table is populated
storage/directory is writable- Encryption is working
Click Run Verification. If all checks pass, the installer writes storage/installed.lock and clears framework caches. The /install route becomes inaccessible after this — you cannot re-run the installer.
If a check fails: The installer shows a remediation hint next to the failed check. Fix the issue and click Run Verification again.
Step 7: Set Up the Cron Job
The scheduler handles all background tasks — newsletters, subscription downgrades, credit expiry, site health checks, and more. Without the cron job, these tasks will not run.
Set up the cron job in cPanel:
- In cPanel, find and click Cron Jobs.
- Scroll down to Add New Cron Job.
- Set the frequency to Once Per Minute (select “Every Minute” from the Minute dropdown, leave other dropdowns as
*). - In the Command field, enter:
cd /home/youraccount/traffic-exchange && php artisan schedule:run >> /dev/null 2>&1
Replace /home/youraccount/traffic-exchange with the actual path to your script root (not the public/ folder — the root).
- Click Add New Cron Job.
How to find the correct path: In cPanel File Manager, navigate to your script root folder and look at the path shown in the address bar at the top. It will look like /home/youraccount/traffic-exchange.
Important: This single cron entry runs all background tasks. Do not add separate cron entries for individual commands — the scheduler handles the timing for each task automatically.
Step 8: Set Up SSL
Your TE site should run over HTTPS. Most shared hosts offer free SSL via cPanel.
- In cPanel, look for SSL/TLS or Let’s Encrypt SSL (the label varies by host).
- If your host uses AutoSSL, find the AutoSSL section and check that your domain is listed as covered. AutoSSL renews automatically.
- If your host uses a manual Let’s Encrypt tool, click Issue next to your domain.
- Once the certificate is issued, your site will be accessible at
https://yourdomain.com.
Note: If you set APP_URL to https://yourdomain.com during the installer, SSL must be active for the site to work. If you installed without SSL and need to add it later, you will need to update APP_URL in your .env file to match your current URL.
Step 9: Log In to Your Admin Panel
Once installation is complete:
- Open your browser and visit:
https://yourdomain.com/admin
- Log in using the admin username and password you set in Step 6, Step 3 of 7.
- You should see the admin dashboard.
From here you can configure payment gateways, set membership levels, customise your site appearance, and manage all aspects of your traffic exchange.
Troubleshooting — Common cPanel Issues
“Blank white page” or 500 error after uploading files
This usually means either the document root is not pointing at the public/ folder, or there is a file permissions problem.
- Check the document root: Confirm in cPanel Domains that the document root ends in
/public, not in the script root. - Check PHP version: Confirm you are running PHP 8.3+ via MultiPHP Manager.
- Check file permissions:
storage/andbootstrap/cache/must be writable (755 or 775). - Check the error log: In cPanel, go to Errors or look in
storage/logs/laravel.logvia File Manager for a specific error message.
“Could not connect to database” in the installer
- Confirm you are using the full prefixed database name and username (cPanel adds your account name as a prefix).
- Confirm All Privileges were granted to the database user.
- The host should almost always be
localhoston shared hosting.
“The installer keeps redirecting me back to /install”
The installer locks itself after completion by creating storage/installed.lock. If the wizard is looping, one of the final checks failed. Look at Step 7 of 7 in the installer — it shows exactly which check is failing.
“Migrations failed” or stuck on the migration step
- Confirm the database user has
CREATE,ALTER, andINDEXprivileges (granted via All Privileges in cPanel). - Check
storage/logs/laravel.logfor a specific SQL error.
“License validation failed”
- Check that you copied the license key exactly as shown in your purchase email (no leading or trailing spaces).
- Confirm the domain you entered in the Site Configuration step matches the domain on your license.
- If your server blocks outbound HTTPS connections, contact your host — this is uncommon on shared hosting.
“Cron job is not running” or newsletters / tasks not working
- In cPanel Cron Jobs, confirm the entry is listed and uses the correct script path.
- Run the command manually by pasting it into cPanel’s Terminal (if available) or testing via SSH to confirm there are no path errors.
- Check
storage/logs/laravel.logfor scheduler-related errors.
“I cannot access /admin after installation”
- The admin path is set during installation and defaults to
admin. Tryhttps://yourdomain.com/admin. - If you changed
TE_ADMIN_PATHin your.env, use that path instead. - Confirm the site is loading at all — if the homepage also 404s, the document root may not be pointing to
public/.
PHP extensions missing — “Not Writable” or extension check fails in installer
- In cPanel, go to MultiPHP INI Editor or Select PHP Version.
- Look for an Extensions tab. Enable any missing extensions (pdo_mysql, gd, zip, etc.) from the list.
- Save and reload the installer page.
For issues not listed here, check storage/logs/laravel.log first. Most errors are logged there with a specific message and stack trace that makes diagnosis much faster. If you are still stuck, contact support at support@trafficexchangescript.com with the relevant log lines and a description of what you have already tried.
— The Traffic Exchange Script Team


Screenshots
