Documentation
Exchanger Script
Last Updated: 23.02.2026 10:56
Hosting Provider Requirements

A virtual server is required for operation. The server specifications should be chosen based on the website's traffic. In most cases, a budget server (1 CPU, 1 GB RAM, 10 GB SSD) will be sufficient.

We recommend using DigitalOcean.

DigitalOcean

Purchasing a server on DigitalOcean

1) Go to the "Droplets" page and click the "Create Droplet" button.

2) In "Choose Region," select the "Frankfurt" data center.

3) In "Choose an image," select the "Debian" operating system and version "12 x64".

4) In "Choose Size," select "Droplet Type" – "Basic" and the desired plan, for example, "Regular" – "1 GB / 1 CPU".

5) In "Backups," enable the "Enable automated backups" option to create automatic backups of the server.

6) In "Choose Authentication Method," select "Password" and create a password for accessing the server.

7) In "We recommend these options," enable the "Add improved metrics monitoring and alerting" option and click the "Create Droplet" button.

Server Requirements

1) PHP 7.4.x - 8.2.x, including packages: "mysql", "mbstring", "simplexml", "gd", "curl", "gmp", "zip", "bcmath", "imagick".

2) MySQL/MariaDB with authentication using the "mysql_native_password" plugin.

3) The website root directory on the server should be "/public", with access rights set to "755", and the owner set as "www-data".

5) NGINX/Apache web server. All requests should be redirected to the "/public/index.php".

6) Connect your site to CloudFlare or use GeoIP plugin on the server to gather information about user geography.

CloudFlare

Server Installation

1) Unpack the archive with files on the server.

2) Log in to the dashboard using the data provided on the script download page in your account.

3) Go to the "Application Settings" - "Database Connection Settings" section and connect to the database.

4) Set up the task scheduler (CRON) for user "www-data" to run the command every minute:

* * * * * /usr/bin/php /var/www/YOUR.DOMAIN/public/index.php >> /dev/null 2>&1

Installation on a Control Panel Server

ISPmanager

cPanel

NGINX Virtual Host Configuration Example

server {
    listen 80;
    server_name demo.exchanger-cms.com;
    root /var/www/demo.exchanger-cms.com/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 ~ \.php$ {
        try_files $uri = 404;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

Increase NGINX & PHP Limits

We recommend increasing the default limits for NGINX and PHP, this will allow users to upload larger photos when passing verification.

nginx.conf

http {
    …
    client_max_body_size 15M;
    …
}

php.ini

upload_max_filesize = 5M
Updating

Script updates are installed automatically. Check for available updates in the "Updates" section.

Rollback of an Update

Backups are saved before each update in the website directory with the name "backup-{hash}-{version}.zip". To install a backup, extract the contents of the archive to the website root directory.

Published: 05.07.2025 05:22
© Exchanger CMS, 2018 - 2026. Currency Exchange Script. All rights reserved. Terms of Use