Installation — DirectAdmin 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 and set your PHP version in DirectAdmin:
- Log in to DirectAdmin.
- In the left sidebar, click Extra Features → PHP Selector (or navigate directly to Your Account → PHP Selector depending on your host’s DirectAdmin version).
- You will see the current PHP version for your domain. If it is below 8.3, select a newer version from the dropdown and click Save.
- To enable or disable individual PHP extensions, look for an Extensions tab within PHP Selector. Enable any missing extensions from the list and save.
Note: If PHP Selector is not visible, your host may manage PHP versions differently. Contact your host and request PHP 8.3 with the extensions listed above. 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 DirectAdmin now so you have the credentials ready.
- In DirectAdmin, click MySQL Management (found under Your Account or in the main dashboard panel depending on your host’s layout).
- Click Create New Database.
- Enter a database name (e.g.
mysite_te). DirectAdmin will automatically prefix it with your account username (e.g.youraccount_mysite_te). - Enter a database username and a strong password. Click Create.
Important: Store the username and password somewhere safe. You will need them during installation.
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: DirectAdmin 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 DirectAdmin’s File Manager or an FTP client. Choose whichever you are more comfortable with.
Option A: DirectAdmin File Manager (no FTP client needed)
- In DirectAdmin, click File Manager (under Your Account or the main navigation).
- 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) by clicking New Folder in the toolbar.
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 Files in the toolbar and upload the Traffic Exchange Script ZIP file.
- Once the upload finishes, select the ZIP file and click Extract (or right-click the 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 (FileZilla)
- In DirectAdmin, go to FTP Management to create an FTP account or retrieve your credentials.
- Open FileZilla and connect using: Host = your domain or server IP, Username and Password from DirectAdmin, Port = 21.
- In the remote panel, navigate to a folder above
public_html(e.g./home/youraccount/traffic-exchange/). Create the folder if it does not exist. - On your local computer, extract the script ZIP file first.
- Select all extracted files and folders in FileZilla’s local panel, then drag them to the remote
traffic-exchange/folder to upload.
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 DirectAdmin:
- In DirectAdmin, click Domain Setup (under Your Account).
- Find your domain in the list and click on it to manage it.
- Look for a Public HTML path or Document Root field. Change it to the
publicsubfolder of your script (e.g./home/youraccount/traffic-exchange/public). - Save the change.
Note: The exact location of the document root field varies by DirectAdmin version and host configuration. If you cannot find it under Domain Setup, look under Subdomain Management (for subdomains) or contact your host and ask them to set the document root for your domain to /home/youraccount/traffic-exchange/public.
If you are installing on a subdomain:
- In DirectAdmin, click Subdomain Management (under Your Account).
- Create a new subdomain (e.g.
te.yourdomain.com). - When prompted for the root directory, enter the
public/path of the script (e.g./home/youraccount/traffic-exchange/public). If DirectAdmin creates the subdomain automatically with a default path, edit it afterward via Subdomain Management to update the document root.
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 DirectAdmin File Manager, navigate to your script folder (e.g.
/home/youraccount/traffic-exchange/). - Select the
storagefolder. Click Permissions in the toolbar (or right-click and choose Change Permissions). - Set permissions to 755. Click Change or Save.
- 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 DirectAdmin’s PHP Selector), 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 DirectAdmin prefix (e.g.
youraccount_mysite_te) - Database username: The full username including the DirectAdmin prefix (e.g.
youraccount_dbuser) - Database password: The password you set when creating the database
Click Next. If the connection fails, double-check the database name and username — DirectAdmin 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 DirectAdmin:
- In DirectAdmin, click Cron Jobs (under Your Account or Extra Features depending on your host’s layout).
- Click Create Cron Job or Add Cron Job.
- Set the schedule to run every minute:
- Minute:
* - Hour:
* - Day:
* - Month:
* - Weekday:
* - 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 Save or Add.
How to find the correct path: In DirectAdmin File Manager, navigate to your script root folder. The path shown in the address bar at the top (e.g. /home/youraccount/traffic-exchange) is what you need.
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. DirectAdmin supports free SSL via Let’s Encrypt.
- In DirectAdmin, click SSL Certificates (under Your Account or Advanced Features).
- Select the Let’s Encrypt tab.
- Confirm your domain is listed. If it is, click Save or Issue Certificate. DirectAdmin will obtain and install the certificate automatically.
- 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: Configure Email Sending
Your TE site sends transactional emails (member registration, password resets, notifications). You need to configure an outgoing mail method.
Option A: DirectAdmin SMTP (via your hosting account’s mail server)
- In DirectAdmin, go to Email Accounts and note your hosting email credentials (host, port, username, password).
- Open your
.envfile in DirectAdmin File Manager (located at the script root, e.g./home/youraccount/traffic-exchange/.env). - Update the mail settings:
MAIL_MAILER=smtp
MAIL_HOST=mail.yourdomain.com
MAIL_PORT=587
MAIL_USERNAME=noreply@yourdomain.com
MAIL_PASSWORD=your-email-password
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME="Your Traffic Exchange Name"
MAIL_ENCRYPTION=tls
- Save the file.
Option B: External SMTP (SendGrid or Brevo — recommended for deliverability)
- Sign up for a free account at SendGrid or Brevo (both offer free tiers sufficient for most new TE sites).
- Generate an SMTP API key or password in your account dashboard.
- Update your
.envfile with the credentials provided:
For SendGrid:
MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your-sendgrid-api-key
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME="Your Traffic Exchange Name"
MAIL_ENCRYPTION=tls
For Brevo:
MAIL_MAILER=smtp
MAIL_HOST=smtp-relay.brevo.com
MAIL_PORT=587
MAIL_USERNAME=your-brevo-login-email
MAIL_PASSWORD=your-brevo-smtp-key
MAIL_FROM_ADDRESS=noreply@yourdomain.com
MAIL_FROM_NAME="Your Traffic Exchange Name"
MAIL_ENCRYPTION=tls
- Save the file.
Recommendation: External SMTP services offer much better email deliverability than hosting mail servers. If members are not receiving registration or notification emails, switching to SendGrid or Brevo usually resolves the issue.
Step 10: 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.
Post-Install Verification Checklist
Before announcing your site to members, confirm these items work end-to-end:
- [ ] Admin panel loads at
https://yourdomain.com/admin - [ ] Homepage loads correctly with no PHP errors
- [ ] Member registration completes without errors
- [ ] Registration confirmation email is received (tests your mail config)
- [ ] Member can log in and access the surf bar
- [ ] At least one ad can be submitted and approved by the admin
- [ ] Cron job runs without errors (check
storage/logs/laravel.logafter one minute)
If any item fails, refer to the troubleshooting section below.
Troubleshooting — Common DirectAdmin 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 DirectAdmin Domain Setup that the document root ends in
/public, not in the script root. - Check PHP version: Confirm you are running PHP 8.3+ via PHP Selector.
- Check file permissions:
storage/andbootstrap/cache/must be writable (755 or 775). - Check the error log: In DirectAdmin, look under Error Logs (under Your Account or Advanced Features), or open
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 (DirectAdmin adds your account name as a prefix).
- Confirm the database user has full privileges on the database (set during database creation in Step 2).
- 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. - 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 DirectAdmin Cron Jobs, confirm the entry is listed and uses the correct script path.
- Check
storage/logs/laravel.logfor scheduler-related errors. - Make sure you used the full path to
phpif needed — on some DirectAdmin hosts you may needphp8.3instead ofphp. If the cron runs silently with no output but tasks still do not execute, try:cd /home/youraccount/traffic-exchange && php8.3 artisan schedule:run >> /dev/null 2>&1
“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 — extension check fails in installer
- In DirectAdmin, go to PHP Selector.
- Look for an Extensions tab. Enable any missing extensions (pdo_mysql, gd, zip, etc.) from the list.
- Save and reload the installer page.
“Permission denied” errors in logs
- In DirectAdmin File Manager, select the
storagefolder, click Permissions, and set it to 755 (or 775 if 755 does not work). - Do the same for
bootstrap/cache. - If you still see permission errors, contact your host — some DirectAdmin servers run PHP as a different user and require specific ownership settings that only the host can configure.
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
