Docs Installation Installation — cPanel / Shared Hosting

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:

  1. Log in to cPanel.
  2. Look for MultiPHP Manager or Select PHP Version (the label varies by host).
  3. 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

  1. Open your purchase confirmation email and click the download link, or log into your license portal at {{PORTAL_URL}}.
  2. Download the Traffic Exchange Script ZIP file.
  3. 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.

  1. In cPanel, find and click MySQL Databases.
  2. Under Create New Database, enter a name for your database (e.g. mysite_te) and click Create Database.
  3. Scroll down to MySQL UsersAdd 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.

  1. Scroll down to Add User To Database. Select the user you just created and the database you just created, then click Add.
  2. 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)

  1. In cPanel, click File Manager.
  2. Navigate to the folder where you want to install the script. This should be above your public_html folder — 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.

  1. Click Upload in the toolbar and upload the Traffic Exchange Script ZIP file.
  2. 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/).
  3. You should now see the extracted script files including folders like app/, public/, storage/, resources/, and files like artisan and .env.example.

Option B: FTP Client

  1. Connect to your server using your FTP credentials (host, username, password, port 21).
  2. Navigate to a folder above public_html (e.g. /home/youraccount/traffic-exchange/).
  3. 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:

  1. In cPanel, go to Domains (or Addon Domains if this is a subdomain).
  2. Find your domain in the list and click Manage or Edit.
  3. Change the Document Root to the public subfolder of your script (e.g. /home/youraccount/traffic-exchange/public).
  4. 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:

  1. In cPanel, go to Subdomains.
  2. Create a new subdomain (e.g. te.yourdomain.com).
  3. 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.

  1. In cPanel File Manager, navigate to your script folder (e.g. /home/youraccount/traffic-exchange/).
  2. Right-click the storage folder and select Permissions (or Change Permissions).
  3. Set permissions to 755. Click Change Permissions.
  4. Do the same for the bootstrap/cache folder — 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:

  1. .env file exists and is readable
  2. APP_KEY is set
  3. Database connection is working
  4. Admin account was created
  5. Settings table is populated
  6. storage/ directory is writable
  7. 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:

  1. In cPanel, find and click Cron Jobs.
  2. Scroll down to Add New Cron Job.
  3. Set the frequency to Once Per Minute (select “Every Minute” from the Minute dropdown, leave other dropdowns as *).
  4. 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).

  1. 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.

  1. In cPanel, look for SSL/TLS or Let’s Encrypt SSL (the label varies by host).
  2. If your host uses AutoSSL, find the AutoSSL section and check that your domain is listed as covered. AutoSSL renews automatically.
  3. If your host uses a manual Let’s Encrypt tool, click Issue next to your domain.
  4. 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:

  1. Open your browser and visit:

https://yourdomain.com/admin

  1. Log in using the admin username and password you set in Step 6, Step 3 of 7.
  2. 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.

  1. Check the document root: Confirm in cPanel Domains that the document root ends in /public, not in the script root.
  2. Check PHP version: Confirm you are running PHP 8.3+ via MultiPHP Manager.
  3. Check file permissions: storage/ and bootstrap/cache/ must be writable (755 or 775).
  4. Check the error log: In cPanel, go to Errors or look in storage/logs/laravel.log via 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 localhost on 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, and INDEX privileges (granted via All Privileges in cPanel).
  • Check storage/logs/laravel.log for 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.log for scheduler-related errors.

“I cannot access /admin after installation”

  • The admin path is set during installation and defaults to admin. Try https://yourdomain.com/admin.
  • If you changed TE_ADMIN_PATH in 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

  1. In cPanel, go to MultiPHP INI Editor or Select PHP Version.
  2. Look for an Extensions tab. Enable any missing extensions (pdo_mysql, gd, zip, etc.) from the list.
  3. 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

Traffic Exchange Script member-facing homepage after cPanel installation
Your traffic exchange site as members see it after a successful cPanel installation.
Traffic Exchange Script admin general settings panel
The General Settings panel where you configure your site name, URLs, and basic options.

Screenshots

Traffic Exchange Script admin dashboard — overview of members, credits, traffic and revenue
After a successful cPanel installation, your admin dashboard will look like this.
Previous Getting Started — Quickstart in 30 Minutes Next Installation — DirectAdmin Hosting