Installation Guide

Deploy Centmin Mod on a fresh server with a single command.

Infographic showing Centmin Mod installation guide including prerequisites, one-liner install command, and supported operating systems

Prerequisites

System Requirements and Low Memory Servers

Minimum

  • 2 GB RAM + 4 GB swap
  • 40 GB disk space

Recommended

  • 4 GB+ RAM + 4 GB swap
  • 60 GB disk, SSD preferred

Run the centmin.sh installer from centminmod.com to install Centmin Mod. The minimum supported RAM is 2 GB. Servers with 512 MB or 1 GB RAM cannot run the centmin.sh installer — upgrade to at least 2 GB RAM first. The installer automatically creates 4 GB swap if none is detected, so manual swap setup is not required.

curl -O https://centminmod.com/installer83.sh && chmod 0700 installer83.sh && bash installer83.sh

On low memory servers (2–4 GB RAM), consider disabling unused services after the centmin.sh installer finishes (e.g. MariaDB MySQL, Memcached, Pure-FTPD) to free memory. Use centmin.sh menu options to manage these services.

Supported Linux Operating Systems

AlmaLinux 8 AlmaLinux 9 AlmaLinux 10 Rocky Linux 8 Rocky Linux 9 Rocky Linux 10 CentOS 7 (EOL)

AlmaLinux 10 and Rocky Linux 10 require 141.00beta01 (beta channel).

Centmin Mod supports three Linux distributions (x86_64 architecture only):

  • AlmaLinux — versions 8 and 9 (all branches: 132.00stable, 140.00beta01, 141.00beta01); version 10 via 141.00beta01 (early beta)
  • Rocky Linux — versions 8 and 9 (all branches: 132.00stable, 140.00beta01, 141.00beta01); version 10 via 141.00beta01 (early beta)
  • CentOS 7 — 132.00stable branch only; EOL June 2024, migration to AlmaLinux or Rocky Linux strongly recommended

CentOS 7 is End of Life — Migration Strongly Recommended

CentOS 7 reached EOL on June 30, 2024 and no longer receives security updates. We strongly recommend migrating to AlmaLinux 8/9 or Rocky Linux 8/9 for continued OS-level security patches. There is no in-place upgrade path from CentOS 7 — install Centmin Mod on a fresh AlmaLinux/Rocky Linux server and use Menu Option 21 backup and migration tools to transfer your sites. See CentOS 7 EOL migration guide for details.

Which Centmin Mod version supports EL10 (AlmaLinux 10, Rocky Linux 10)?

Only 141.00beta01 supports EL10 — AlmaLinux 10 and Rocky Linux 10. The 132.00stable and 140.00beta01 branches do not support EL10 or AlmaLinux 10 or Rocky Linux 10. Use the EL10 installer below for AlmaLinux 10 and Rocky Linux 10 distributions.

Branch Comparison: 132.00stable vs 140.00beta01 vs 141.00beta01

Feature 132.00stable 140.00beta01 141.00beta01
Stability Production (stable) Beta Beta (latest)
PHP support 7.4 – 8.3 7.4 – 8.3 8.0 – 8.5
EL8 / EL9 (AlmaLinux, Rocky)
EL10 (AlmaLinux 10, Rocky 10) ✓ (141.00beta01 only)
CentOS 7 (EOL)
Recommended for Production servers Newer PHP/MariaDB on EL8/9 EL10 or latest features

Which Centmin Mod version should I use for a new server?

  • 132.00stable — recommended for production servers requiring maximum stability. Supports AlmaLinux 8/9, Rocky Linux 8/9, PHP 7.0–8.3.
  • 140.00beta01 — beta branch with newer PHP/MariaDB versions. Supports PHP 7.0–8.3. Supports same OS as stable.
  • 141.00beta01 — latest beta branch. Required for EL10 (AlmaLinux 10, Rocky Linux 10) and PHP 8.5. Not recommended for production yet.

For production servers prioritizing stability, use 132.00stable. For the newest features and PHP versions on EL8/EL9, use 140.00beta01. For EL10 support, use 141.00beta01.

CentOS 7 End of Life

CentOS 7 reached End of Life on June 30, 2024. Centmin Mod continues to work on existing CentOS 7 servers, but new installations should use AlmaLinux 9 or AlmaLinux 10 (recommended).

Important Notes

  • Root user required — do not use sudo
  • SELinux must be disabled before installation
  • x86_64 architecture only — ARM is not supported
  • Single root / partition recommended — avoid separate /tmp, /var partitions
  • KVM, Xen, or VMware virtualization — OpenVZ and LXD/LXC containers are not supported
  • Fresh server only — do not install on servers with existing LAMP/LEMP stacks

Swap Space Setup (Handled Automatically)

The Centmin Mod installer automatically detects whether swap is configured and creates it if none exists. You do not need to set up swap manually before installation.

Automatic swap creation

  • Default size: 4 GB swap for all supported OS versions (EL7, EL8, EL9, EL10)
  • Triggered when: no swap detected, or RAM ≤ 2 GB with insufficient swap
  • Method: uses fallocate (standard) or dd (XFS/LXC filesystems), and adds /swapfile to /etc/fstab for persistence across reboots
  • Skipped on: OpenVZ and LXD containers (unsupported virtualization types)
  • Override: set ISMINSWAP_OVERRIDE=y to reduce swap to 2 GB

The minimum supported RAM is 2 GB. Servers with 512 MB or 1 GB RAM cannot run the installer — upgrade to at least 2 GB RAM first. If you prefer to pre-configure swap manually before installation, you can do so, but it is not required. Proceed to the Quick Install section to download and run the installer.

Quick Install — Stable

Recommended

Branch 132.00stable — production-tested for AlmaLinux 8/9, Rocky Linux 8/9, and CentOS 7 (EOL). Choose your PHP version and run the one-liner as root on a fresh server.

yum -y update; curl -O https://centminmod.com/installer83.sh && chmod 0700 installer83.sh && bash installer83.sh

After installation, you can upgrade or downgrade PHP to any supported version (7.0–8.3 on 132.00stable/140.00beta01; 7.0–8.5 on 141.00beta01) using centmin.sh Menu 5. See PHP Upgrade/Downgrade.

PHP-FPM process manager modes: Centmin Mod defaults to pm = ondemand with pm.max_children = 30 in /usr/local/etc/php-fpm.d/www.conf. Three modes available: ondemand (spawns workers on demand), dynamic (scales between min/max), and static (fixed workers). See PHP-FPM Optimization & Tuning.

Quick Install — Beta

Latest Features

Branch 140.00beta01 — Supports AlmaLinux 8/9, Rocky Linux 8/9, and CentOS 7 (EOL). For PHP 8.5/8.4 or AlmaLinux 10 / Rocky Linux 10, use the EL10 installers below (branch 141.00beta01).

yum -y update; curl -O https://centminmod.com/betainstaller83.sh && chmod 0700 betainstaller83.sh && bash betainstaller83.sh

After installation, you can upgrade or downgrade PHP to any supported version (7.4, 8.0, 8.1, 8.2, 8.3) using centmin.sh Menu 5. See PHP Upgrade/Downgrade.

Quick Install — EL10

Early Beta

Branch 141.00beta01 — dedicated installers for AlmaLinux 10 and Rocky Linux 10. EL10 support is in early beta testing. Only PHP 8.5 and 8.3 are available for EL10.

EL10 support is in early beta testing stages. Not recommended for production use.

yum -y update; curl -O https://centminmod.com/betainstaller-el10-85.sh && chmod 0700 betainstaller-el10-85.sh && bash betainstaller-el10-85.sh

After installation, you can upgrade or downgrade PHP to any supported version (8.0, 8.1, 8.2, 8.3, 8.4, 8.5) using centmin.sh Menu 5. EL10 supports PHP 8.0–8.5. See PHP Upgrade/Downgrade.

Post-Install Output

Once installation completes, you will see a summary with MySQL root password, memcached password, version numbers, and install timing statistics.

Install Summary
---------------------------------------------------------------------------
Total Curl Installer YUM or DNF Time: 61.3542 seconds
Total YUM Time: 23.271595463 seconds
Total YUM or DNF + Source Download Time: 40.1796
Total Nginx First Time Install Time: 143.9828
Total PHP First Time Install Time: 189.4636
Download From Github Time: 1.7443
Total Time Other eg. source compiles: 210.8952
Total Centmin Mod Install Time: 584.5212
---------------------------------------------------------------------------
Total Install Time for curl yum + cm install + zip download: 647.6197 seconds
---------------------------------------------------------------------------
AlmaLinux 10.1 Heliotrope Lion  6.12.0-124.39.1.el10_1.x86_64
8 AMD Ryzen 9 7950X3D 16-Core Processor
8 4192.112
PHP VERSION: 8.5.3
---------------------------------------------------------------------------

All installation logs are saved to /root/centminlogs/. Every centmin.sh menu run creates a timestamped log for easier troubleshooting.

root@server ~ $
$ ls -lAhrt /root/centminlogs/
total 16M
-rw-r--r-- 1 root root  928 Jul  1 14:10 centminmod_swapsetup_installer.log
-rw-r--r-- 1 root root   19 Jul  1 14:13 getcmtime_installtime.log
-rw-r--r-- 1 root root  12K Jul  1 14:14 centminmod_yuminstall_centos8.log
-rw-r--r-- 1 root root  34K Jul  1 14:14 centminmod_yumtimes.log
-rw-r--r-- 1 root root  65K Jul  1 14:14 centminmod_downloadtimes.log
-rw-r--r-- 1 root root  320 Jul  1 14:14 securedtmp.log
-rw-r--r-- 1 root root  50K Jul  1 14:14 nginx-install-zlib.log
-rw-r--r-- 1 root root  29K Jul  1 14:14 pcre-nginx_install.log
-rw-r--r-- 1 root root 8.9K Jul  1 14:15 nginx-configure.log
-rw-r--r-- 1 root root 480K Jul  1 14:15 centminmod_ngxinstalltime.log
-rw-r--r-- 1 root root  74K Jul  1 14:18 php-compile-config.log.gz
-rw-r--r-- 1 root root 2.7K Jul  1 14:20 redis-server-install.log
-rw-r--r-- 1 root root 2.9M Jul  1 14:21 centminmod_install.log
-rw-r--r-- 1 root root 3.2M Jul  1 14:21 installer.log
-rw-r--r-- 1 root root 1.3M Jul  1 14:21 installer_minimal.log
-rw-r--r-- 1 root root  564 Jul  1 14:21 installer_summary_links.log

Next Steps

Getting Started Guide

After installation, follow the step-by-step guide to configure your hostname, add domains, set up firewalls, and optimize your server.

Read the Getting Started Guide

After Installation: Create Your First Nginx SSL Vhost

Once Centmin Mod is installed, first enable Let's Encrypt support by adding LETSENCRYPT_DETECT='y' to /etc/centminmod/custom_config.inc (create the file if it does not exist), then create a new Nginx virtual host with Let's Encrypt SSL using the nv command:

# Step 1: Enable Let's Encrypt support (required before nv command)
echo "LETSENCRYPT_DETECT='y'" >> /etc/centminmod/custom_config.inc

# Step 2: Create Nginx vhost with Let's Encrypt SSL (recommended for production)
nv -d yourdomain.com -s lelived -u ftpusername

# Or use centmin.sh menu option 2 interactively
centmin

Use -s lelived for Let's Encrypt production SSL with HTTPS-default. Without LETSENCRYPT_DETECT='y', vhost creation defaults to self-signed SSL certificates. See Let's Encrypt Free SSL for full details and nginx domain setup for all vhost creation options including PHP-FPM configuration.

The centmin.sh Menu

After installation completes, log out and back into SSH, then access the Centmin Mod menu by running:

centmin

This centmin shortcut command is installed at /usr/bin/centmin and launches the menu from any directory. The full script path is /usr/local/src/centminmod/centmin.sh.

root@server ~ $
--------------------------------------------------------
     Centmin Mod Menu 141.00beta01 centminmod.com
--------------------------------------------------------
 1).  Centmin Install
 2).  Add Nginx vhost domain
 3).  NSD setup domain name DNS
 4).  Nginx Upgrade / Downgrade
 5).  PHP Upgrade / Downgrade
 6).  MySQL User Database Management
 7).  Nginx Vhost Traffic Stats
 8).  Nginx .htpasswd Username/Password
 9).  Nginx Vhost Log Rotation
10).  Memcached Server Re-install
11).  MariaDB MySQL Upgrade & Management
12).  Zend OpCache Install/Re-install
13).  Install/Reinstall Redis PHP Extension
14).  SELinux disable
15).  Install/Reinstall ImagicK PHP Extension
16).  Change SSHD Port Number
17).  Multi-thread compression: zstd,pigz,pbzip2,lbzip2
18).  Suhosin PHP Extension install
19).  Install FFMPEG and FFMPEG PHP Extension
20).  NSD Install/Re-Install
21).  Data Management
22).  Add Wordpress Nginx vhost + Cache Plugin
23).  Update Centmin Mod Code Base
24).  Exit
--------------------------------------------------------
Enter option [ 1 - 24 ] _