Skip to content

Magento 2 Server Installation - MagenX e-commerce stack on Ubuntu 20/22.04 | Debian 11/12

Notifications You must be signed in to change notification settings

magenx/Magento-2-server-installation

Repository files navigation

Magento 2 installation - Magenx e-commerce webstack

Debian 11 12 | Ubuntu 20.04 22.04

Production ready + AWS Graviton2 ARM support

get your $100 credit and deploy on DigitalOcean

🚀 Installation:

curl -Lo magenx.sh https://magenx.sh && bash magenx.sh
magenx_magento_installation_intro.mp4

you can run in screen to have indestructible session:

apt install -y screen
screen
bash magenx.sh

System requirements:

Dedicated server / Container
8Gb RAM
*like DigitalOcean cloud servers

💾 MagenX ecommerce webstack for Magento 2 Open Source

Get a fully pre-configured server with Magento and LEMP stack in just 10 minutes! 🚀

  • Linux system packages with automatic updates
  • Initial system optimization and hardening
  • Varnish HTTPS cache setup
  • MariaDB my.cnf optimization
  • Nginx optimized config with security
  • OpenSearch 2.x latest
  • PHP-FPM (apcu, opcache, lzf, snappy, redis)
  • Redis Magento Cache and Sessions (2 instances)
  • RabbitMQ message queue
  • Letsencrypt/certbot configuration
  • Separate Magento files owner and php-fpm user
  • Advanced ACL linux permissions, read/write protection
  • Chroot configuration: jailed ssh and php user (optional)

Extra premium options available:

  • Multiple environments
  • Webmin control panel
  • SFTP advanced configuration
  • SSH private key access ready
  • ConfigServer Security and Firewall advanced configuration
  • Nginx and CSF Firewall DDOS mitigation
  • Nginx and CSF Firewall Carding Attack mitigation
  • MariaDB database optimization
  • Mytop database monitoring
  • Proxysql split database / custom port
  • n98-magerun2 Magento 2 cli management
  • PhpMyAdmin custom path with http auth
  • Goaccess nginx log visualization
  • Malware scanner (maldet) with email alerts
  • Auditd Magento 2 files monitoring
  • Automatic nginx images optimization
  • Magento 2 logs rotation
  • PWA Studio ready
  • Hyva Theme ready
  • Ready for production.

Complete linux stack including:

  • linux and webstack settings optimization
  • letsencrypt
  • iotop
  • sysstat
  • git/svn
  • strace
  • python-pip
  • iptraf
  • nginx images optimization
  • geoip
  • logs rotation
  • separate permissions for nginx and php user
  • nodejs for development
  • and many more

🔡 Environment / Magento mode:

You can select the type of environment and Magento mode respectively. By installing 3 environments on one server at the same time - developer, staging and production, or one type only if you use simple development or even different servers per environment. The script configures users, folders, and all settings for a given environment.

📄 Get config:

All configuration parameters saved in sqlite database.

sqlite3 -line /opt/magenx/config/magenx.db "SELECT * FROM magento;"
sqlite3 -line /opt/magenx/config/magenx.db "SELECT * FROM system;"

🛡️ SSL / HTTPS:

Once up and running, set up SSL with certbot (already installed):
certbot certonly --agree-tos --no-eff-email --email {EMAIL} --webroot -w /home/{USER}/public_html/pub
and uncomment the lines for SSL in:

  • /etc/nginx/nginx.conf
  • /etc/nginx/sites-available/{DOMAIN_NAME}.conf
  • /etc/nginx/conf_m2/varnish_proxy.conf

🛠️ DevOps idea:

You have the opportunity to install a new Magento 2, and it is best to do this in a developer environment. Push the code to your Github repository and from there develop and deploy to production and staging environment using Github Actions.
This is the safest and most productive approach. There are few configuration files available for Github Actions [paid extra] deployments:

  • ~/deploy.sh - basic script to catch Github Actions deployment input and run git and magento commands
  • ~/.env - magento 2 environment variables
  • ~/.ssh/authorized_keys - pre-configured ssh keys

🧰 Tools:

you can use the following:

  • sudo cacheflush - to flush magento cache and restart php-fpm / nginx
  • mysqltuner - to see mysql metrics and parameters
  • mytop - database query monitoring / management
  • n98-magerun2 - magento 2 extented cli
  • magento profiler built in nginx - ?developer=xxx Magento-nginx-config/magento2/conf_m2/maps.conf

😻 Support the project

You can use this for free. But its not free to create it. This takes time and research.
If you are using this project, there are few ways you can support it:

deniszokov_paypal_qrcode

❤️ Opensource