For proper operation and better performance, it is recommended to use VDS (Virtual Dedicated Server) and avoid virtual hosting. The server power should be chosen based on the website traffic. Even the most budget-friendly server can handle up to 1,000 daily visitors without any issues.
One of the largest and most reliable hosting providers on the international market is DigitalOcean.
1) PHP 7.4, including packages: "mysql", "mbstring", "simplexml", "gd", "cur", "gmp", "zip", "bcmath".
2) MySQL/MariaDB 5.7 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) All web server requests should be redirected to the "/public/index.php" file.
6) Use the GeoIP plugin or connect your site to CloudFlare to gather information about user geography.
Nginx:
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; } }
Apache:
<VirtualHost *:80> <Directory /var/www/demo.exchanger-cms.com> Options -Indexes AllowOverride All Require all granted </Directory> ServerAdmin [email protected] ServerName demo.exchanger-cms.com DocumentRoot /var/www/demo.exchanger-cms.com/public </VirtualHost>
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) to run the command every minute:
* * * * * /usr/bin/php /var/www/YOUR.DOMAIN/public/index.php >> /dev/null 2>&1
5) Go to the "Application Settings" - "General Application Settings" section and disable the task scheduler URL. This option disables the outdated method of task scheduling via "wget".
Installation on a Control Panel Server
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.
1) Unpack the archive with files on the server.
2) Install dependencies:
cd /var/www/YOUR.DOMAIN rm composer.lock composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev composer run-script post-root-package-install
3) Fill in the ".env" configuration file. Additional setup information is available inside the file.
4) Migrate the database:
php artisan migrate:fresh
5) Set up the Telegram webhook:
php artisan telegram:webhook main --setup
The Telegram bot and automatic payout module are based on the Laravel framework. More detailed installation information can be found on the framework official website.