Server Requirements
Make sure your server meets these requirements before installing CoinTrail.
PHP Requirements
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
phpinfo();
?>
Or via command line:
php -m
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 manipulationmod_expires- Cache control headersmod_ssl- HTTPS support
Enable mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2
Virtual Host Configuration
<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:
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
; 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 |
# 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
For shared hosting users without SSH access:
- Open File Manager in cPanel
- Navigate to your CoinTrail installation folder
- Right-click on
storagefolder → Change Permissions - Set to 755 or 775 and check "Recurse into subdirectories"
- Repeat for
bootstrap/cachefolder
SSL Certificate
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:
# 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).
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 -vandphp -mvia SSH