Purchase Now

PHP Requirements

PHP 8.2 Required

CoinTrail requires PHP 8.2 or higher. PHP 8.3 is also fully supported and recommended for best performance.

Required PHP Extensions

The following PHP extensions must be enabled on your server:

Extension Purpose Required
BCMath Arbitrary precision mathematics Required
Ctype Character type checking Required
cURL API requests and external data fetching Required
DOM XML/HTML document handling Required
Fileinfo File type detection for uploads Required
GD Image processing and manipulation Required
JSON JSON encoding/decoding Required
Mbstring Multibyte string handling Required
OpenSSL Encryption and secure connections Required
PDO Database abstraction layer Required
PDO MySQL MySQL database driver Required
Tokenizer PHP code tokenization Required
XML XML parsing Required
Zip ZIP archive handling Required
Exif Image metadata handling Recommended
Redis Redis caching (optional) Optional

Check PHP Extensions

You can check installed PHP extensions by creating a phpinfo.php file:

PHP
<?php
phpinfo();
?>

Or via command line:

Terminal
php -m
What to Look For in phpinfo()

When you run phpinfo(), check for:

  • PHP Version: Should show 8.2 or higher at the top
  • Loaded Extensions: Look for BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, GD/Imagick
  • memory_limit: Should be at least 256M
  • max_execution_time: Should be at least 60 seconds

Database Requirements

Database Minimum Version Recommended
MySQL 8.0+ 8.0.x
MariaDB 10.6+ 10.6.x or higher

Database Configuration

Ensure your database uses the following settings:

  • Character Set: utf8mb4
  • Collation: utf8mb4_unicode_ci
  • InnoDB Engine: Required for transactions

Web Server Requirements

Apache 2.4+

Required Apache modules:

  • mod_rewrite - URL rewriting (essential)
  • mod_headers - HTTP headers manipulation
  • mod_expires - Cache control headers
  • mod_ssl - HTTPS support

Enable mod_rewrite

Terminal
sudo a2enmod rewrite
sudo systemctl restart apache2

Virtual Host Configuration

Apache
<VirtualHost *:80>
    ServerName yourdomain.com
    DocumentRoot /var/www/html/cointrail/public

    <Directory /var/www/html/cointrail/public>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/cointrail_error.log
    CustomLog ${APACHE_LOG_DIR}/cointrail_access.log combined
</VirtualHost>

Nginx 1.18+

Nginx configuration for CoinTrail:

Nginx
server {
    listen 80;
    listen [::]:80;
    server_name yourdomain.com;
    root /var/www/html/cointrail/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Server Specifications

Resource Minimum Recommended Notes
RAM 512 MB 2 GB+ More RAM improves caching performance
CPU 1 Core 2+ Cores More cores help with concurrent requests
Storage 1 GB 5 GB+ SSD SSD recommended for database performance
PHP Memory Limit 128 MB 256 MB+ Set in php.ini: memory_limit = 256M
Max Execution Time 60 seconds 120 seconds For cron jobs and migrations
Upload Max Size 10 MB 50 MB For file uploads

Recommended PHP Settings

php.ini
; Memory and execution
memory_limit = 256M
max_execution_time = 120
max_input_time = 120
max_input_vars = 5000

; File uploads
upload_max_filesize = 50M
post_max_size = 50M

; Error handling (production)
display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

; Timezone
date.timezone = UTC

; Sessions
session.gc_maxlifetime = 7200

; OPcache (recommended)
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.validate_timestamps = 0
opcache.save_comments = 1

Folder Permissions

The following directories must be writable by the web server:

Directory Permission Purpose
storage/ 755 or 775 Logs, cache, sessions, file uploads
storage/app/ 755 or 775 Application files
storage/framework/ 755 or 775 Framework cache and sessions
storage/logs/ 755 or 775 Application log files
bootstrap/cache/ 755 or 775 Framework bootstrap cache
public/ 755 Public assets and uploads
Terminal
# Set ownership to web server user
sudo chown -R www-data:www-data /var/www/html/cointrail

# Set directory permissions
sudo find /var/www/html/cointrail -type d -exec chmod 755 {} \;

# Set file permissions
sudo find /var/www/html/cointrail -type f -exec chmod 644 {} \;

# Make storage and cache writable
sudo chmod -R 775 /var/www/html/cointrail/storage
sudo chmod -R 775 /var/www/html/cointrail/bootstrap/cache
Setting Permissions via cPanel File Manager

For shared hosting users without SSH access:

  1. Open File Manager in cPanel
  2. Navigate to your CoinTrail installation folder
  3. Right-click on storage folder → Change Permissions
  4. Set to 755 or 775 and check "Recurse into subdirectories"
  5. Repeat for bootstrap/cache folder

SSL Certificate

SSL Certificate Required

An SSL certificate (HTTPS) is required for payment gateways to work. Free SSL certificates are available from Let's Encrypt.

Install Let's Encrypt SSL certificate using Certbot:

Terminal
# Install Certbot
sudo apt install certbot python3-certbot-apache

# Or for Nginx
sudo apt install certbot python3-certbot-nginx

# Get SSL certificate
sudo certbot --apache -d yourdomain.com
# or
sudo certbot --nginx -d yourdomain.com

Recommended Hosting Providers

CoinTrail works well with any hosting that meets the requirements. Here are some recommended options:

VPS Hosting

DigitalOcean, Linode, Vultr, AWS EC2 - Full control over server configuration.

Managed Hosting

Cloudways, Laravel Forge, Ploi - Laravel-optimized with easy deployment.

Shared Hosting

Hostinger, A2 Hosting, SiteGround - Budget-friendly option (ensure PHP 8.2+ support).

Checking Your Server Specifications

To verify your hosting meets requirements:

  • cPanel: Check "Server Information" in the sidebar
  • Hostinger (hPanel): Go to Website → Configuration → PHP Configuration
  • Plesk: Check PHP Settings in your domain settings
  • VPS: Run php -v and php -m via SSH