Upgrade Centmin Mod
If English isn't your first language, you can use dropdown menu translator to translate this page into your preferred language.
Centmin Mod allows for much easier Centmin Mod code updates for each release. There's a new centmin.sh
menu option 23 which handles updates via Git. As at July 1, 2024, Centmin Mod 131.00stable is the latest stable version. With a Git environment setup you can also auto update Centmin Mod code via a cronjob scheduled task - full install instructions here and also setup persistent settings that survive auto updates.
Upgrading Centmin Mod versions
To update from Centmin Mod 123.09beta01 to 131.00stable or 140.00beta01 run these commands which:
- First updates
cmupdate
tool to support 131.00stable and 140.00beta01 updating. - Then for 131.00stable run
cmupdate update-stable
command or for 140.00beta01 runcmupdate update-beta
command to switch to 131.00stable or 140.00beta01 respectively. - cmdir is the command shortcut equivalent of
cd /usr/local/src/centminmod
- centmin is command shortcut equivalent of running
centmin.sh
from/usr/local/src/centminmod
directory.
For 131.00stable run:
cmupdate cmupdate update-stable cmdir centmin
or for 140.00beta01 run:
cmupdate cmupdate update-beta cmdir centmin
An example for output for cmupdate update-stable
command which does the actual switching to 124.00stable branch.
cmupdate update-stable No local changes to save Already up to date. Switching local code branch to 131.00stable Cloning into 'centminmod'... remote: Enumerating objects: 838, done. remote: Counting objects: 100% (838/838), done. remote: Compressing objects: 100% (591/591), done. remote: Total 838 (delta 343), reused 553 (delta 224), pack-reused 0 Receiving objects: 100% (838/838), 23.89 MiB | 30.01 MiB/s, done. Resolving deltas: 100% (343/343), done. Completed. Fresh /usr/local/src/centminmod code base in place To run centmin.sh again, you need to change into directory: /usr/local/src/centminmod cd /usr/local/src/centminmod
And an example for output for cmupdate update-beta
command which does the actual switching to 140.00beta01 branch.
cmupdate update-beta No local changes to save Already up to date. Switching local code branch to 140.00beta01 Cloning into 'centminmod'... remote: Enumerating objects: 892, done. remote: Counting objects: 100% (892/892), done. remote: Compressing objects: 100% (632/632), done. remote: Total 892 (delta 364), reused 577 (delta 237), pack-reused 0 Receiving objects: 100% (892/892), 23.90 MiB | 32.63 MiB/s, done. Resolving deltas: 100% (364/364), done. Completed. Fresh /usr/local/src/centminmod code base in place To run centmin.sh again, you need to change into directory: /usr/local/src/centminmod cd /usr/local/src/centminmod
Upgrading Centmin Mod 1.2.3-eva2000.07 and older versions
To upgrade older Centmin Mod 1.2.3-eva2000.07 and older versions follow instructions here.
If you came looking for Centmin Mod Install instructions instead - full install instructions here
-------------------------------------------------------- Centmin Mod 1.2.3-eva2000.08 - http://centminmod.com -------------------------------------------------------- Centmin Mod Menu -------------------------------------------------------- 1). Centmin Install 2). Add Nginx vhost domain 3). NSD setup domain name DNS 4). Nginx Upgrade / Downgrade 5). PHP Upgrade / Downgrade 6). XCache Re-install 7). APC Cache Re-install 8). XCache Install 9). APC Cache Install 10). Memcached Server Re-install 11). MariaDB 5.2/5.5 & 10.x Upgrade Sub-Menu 12). Zend OpCache Install/Re-install 13). Install ioping.sh vbtechsupport.com/1239/ 14). SELinux disable 15). Install/Reinstall ImagicK PHP Extension 16). Change SSHD Port Number 17). Multi-thread compression: pigz,pbzip2,lbzip2... 18). Suhosin PHP Extension install 19). Install FFMPEG and FFMPEG PHP Extension 20). NSD Re-install 21). Update - Nginx + PHP-FPM + Siege 22). Add Wordpress Nginx vhost + WP Super Cache 23). Update Centmin Mod Code Base 24). Exit -------------------------------------------------------- Enter option [ 1 - 24 ] 23 -------------------------------------------------------- -------------------------------------------------------- Centmin Mod Updater Sub-Menu -------------------------------------------------------- 1). Setup Centmin Mod Github Environment 2). Update Centmin Mod Current Branch 3). Update Centmin Mod Newer Branch 4). Back to Main menu -------------------------------------------------------- Enter option [ 1 - 4 ]
Enter submenu option 1
to setup Github local environment. Once setup hit submenu option 4
to go back and then centmin.sh menu option 24
to exit. Then log out and log back into SSH window session to complete the process. From then on, you can use centmin.sh menu option 23
-> submenu option 2
to easily update your local Centmin Mod code itself. This won't update your software like Nginx, PHP-FPM. It's only to updating the shell scripts that make up and power Centmin Mod's centmin.sh
core.
-------------------------------------------------------- Centmin Mod Updater Sub-Menu -------------------------------------------------------- 1). Setup Centmin Mod Github Environment 2). Update Centmin Mod Current Branch 3). Update Centmin Mod Newer Branch 4). Back to Main menu -------------------------------------------------------- Enter option [ 1 - 4 ] 1 -------------------------------------------------------- setup Centmin Mod git sourced install... download github.com centmin mod 123.08beta03 branch repo Cloning into 'centminmod-123.08beta03'... Switched to a new branch '123.08beta03' Branch 123.08beta03 set up to track remote branch 123.08beta03 from origin. list all available local branches git branch -a * 123.08beta03 master remotes/origin/123.06stable remotes/origin/123.07stable remotes/origin/123.08beta03 remotes/origin/123.08centos7beta01 remotes/origin/123.08centos7beta02 remotes/origin/123.08livestats remotes/origin/123.08lua remotes/origin/123.08zerodown remotes/origin/HEAD -> origin/master remotes/origin/master list git log last commit git log -a commit 0a14b23ee0ec2c7787bdfc6befd58d5fb13475dd Author: George LiuDate: Sun May 31 14:40:29 2015 +1000 add tools/gitsetup.sh to automate steps to switch to git updated code base https://community.centminmod.com/threads/working-with-git-command-line-for-updating-centmin-mod-local-copies.2150/ to update centmin mod 123.08beta03 branch repo via git cd /usr/local/src/centminmod-123.08beta03 git stash git pull chmod +x centmin.sh
if you try submenu option 2 and you haven't done submenu option 1 yet
-------------------------------------------------------- Centmin Mod Updater Sub-Menu -------------------------------------------------------- 1). Setup Centmin Mod Github Environment 2). Update Centmin Mod Current Branch 3). Update Centmin Mod Newer Branch 4). Back to Main menu -------------------------------------------------------- Enter option [ 1 - 4 ] 2 -------------------------------------------------------- Error: you do not have git environment setup for github based updates run submenu option 1 to setup github environment first
switching to a new github branch via submenu option 3 i.e. switching to 123.08beta03
-------------------------------------------------------- Centmin Mod Updater Sub-Menu -------------------------------------------------------- 1). Setup Centmin Mod Github Environment 2). Update Centmin Mod Current Branch 3). Update Centmin Mod Newer Branch 4). Back to Main menu -------------------------------------------------------- Enter option [ 1 - 4 ] 3 -------------------------------------------------------- Update Centmin Mod to newer branch via git You need to input the name of the branch List of current remote branches by descending date order 2015-05-31 16:54:41 +1000 4 minutes ago 123.08beta03updater 2015-05-31 14:40:29 +1000 2 hours ago 123.08beta03 2015-05-29 20:22:39 +1000 2 days ago master 2015-05-29 20:22:39 +1000 2 days ago master 2015-05-28 21:20:39 +1000 3 days ago 123.08livestats 2015-05-28 15:29:07 +1000 3 days ago 123.08lua 2015-05-27 15:54:13 +1000 4 days ago 123.08centos7beta02 2015-05-17 19:25:36 +1000 2 weeks ago 123.07stable 2015-05-12 00:44:49 +1000 3 weeks ago 123.08centos7mongodb 2015-05-08 03:36:57 +1000 3 weeks ago 123.08centos7setmisc 2015-04-13 12:00:17 +1000 7 weeks ago 123.08centos7beta02wp 2015-04-07 12:33:43 +1000 8 weeks ago 123.08centos6beta02redis 2015-04-04 05:50:25 +1000 8 weeks ago 123.07stable-fixes 2015-03-25 03:45:39 +1000 10 weeks ago 123.08zerodown 2015-03-10 16:52:48 +1000 3 months ago 123.08geoip 2015-03-10 16:52:37 +1000 3 months ago 123.08centos7beta01 2015-02-24 22:19:38 +1000 3 months ago 123.07stable_intel 2015-02-02 00:51:34 +1000 4 months ago 123.08slowfs 2014-06-23 17:08:44 +1000 11 months ago 123.06stable -> Enter the branch name you want to switch to i.e. 123.08beta03 : 123.08beta03 download github.com centmin mod 123.08beta03 branch repo Cloning into 'centminmod-123.08beta03'...
Auto Updating Centmin Mod Code
Centmin Mod 124.00stable and higher versions include a native /usr/bin/cmupdate
command shortcut which allows you to update your Centmin Mod server's local code with latest updates. This is done via Git since initial installation of Centmin Mod installs the local Centmin Mod code via Github repository at /usr/local/src/centminmod
. The initial Git setup is completed once after you ran centmin.sh
shell menu for the first time.
As the Centmin Mod initial installation sets up a Git environment after you ran centmin.sh
shell menu for the first time, you can use the native /usr/bin/cmupdate
to run it on a scheduled cronjob.
An example for setting up a cronjob every 3hrs using crontab -e command
15 */3 * * * /usr/bin/cmupdate >/dev/null 2>&1
You can also manually run /usr/bin/cmupdate
script which will also update the code and list the last commit made.
An example of output from /usr/bin/cmupdate
command when there are no updates available
cmupdate Saved working directory and index state WIP on 124.00stable: bf9fd3c update PHP libicu routine in 124.00stable HEAD is now at bf9fd3c update PHP libicu routine in 124.00stable Already up-to-date. No local changes to save Already up-to-date.
An example of output from /usr/bin/cmupdate
command when there are updates available
cmupdate No local changes to save remote: Enumerating objects: 11, done. remote: Counting objects: 100% (11/11), done. remote: Compressing objects: 100% (1/1), done. remote: Total 6 (delta 5), reused 6 (delta 5), pack-reused 0 Unpacking objects: 100% (6/6), done. From https://github.com/centminmod/centminmod bf9fd3c..6610880 124.00stable -> origin/124.00stable Updating bf9fd3c..6610880 Fast-forward centmin-cli.sh | 2 +- centmin.sh | 2 +- tools/cmupdate.sh | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) No local changes to save Already up-to-date.
Persistent Settings via custom_config.inc
With auto cron updates for Centmin Mod code in place, you'll ask what about custom settings changes made in centmin.sh
- will they be lost on auto updates ? Centmin Mod 1.2.3-eva2000.08+ added support for a separate and persistent custom_config.inc
file to place custom centmin.sh settings/variables in which override centmin.sh defaults. This comes in handy when updating Centmin Mod but wanting your custom settings in centmin.sh
to be untouched.
Supports 2 locations for custom_config.inc
inc/custom_config.inc
where centmin.sh base directory resides- at
${CONFIGSCANBASE}/custom_config.inc
which defaults to/etc/centminmod/custom_config.inc
To override centmin.sh
settings and allow them to persist on centmin mod code updates, create a custom_config.inc
at one of the 2 locations mentioned above and add the centmin.sh
option to the custom_config.inc
file.
i.e. to set PHP 5.6.13 as default, place in manually created file at /etc/centminmod/custom_config.inc
the following variables which are in centmin.sh
to override centmin.sh
ones and then recompile PHP via centmin.sh menu option 5
.
PHP_VERSION='5.6.13'
Or to enable Nginx with IPv6 by default
NGINX_IPV='y'
Another example is if you want to disable unnecessary Nginx modules on Nginx compile/recompiles via centmin.sh menu option 4
. You'd add to /etc/centminmod/custom_config.inc
the following variables and then recompile Nginx via centmin.sh menu option 4
:
NGINX_STREAM=n # http://nginx.org/en/docs/stream/ngx_stream_core_module.html NGINX_RTMP=n # Nginx RTMP Module support https://github.com/arut/nginx-rtmp-module NGINX_FLV=n # http://nginx.org/en/docs/http/ngx_http_flv_module.html NGINX_MP4=n # Nginx MP4 Module http://nginx.org/en/docs/http/ngx_http_mp4_module.html NGINX_AUTHREQ=n # http://nginx.org/en/docs/http/ngx_http_auth_request_module.html NGINX_SECURELINK=n # http://nginx.org/en/docs/http/ngx_http_secure_link_module.html NGINX_FANCYINDEX=n # http://wiki.nginx.org/NgxFancyIndex NGINX_VHOSTSTATS=n # https://github.com/vozlt/nginx-module-vts NGINX_PAGESPEED=n # Install ngx_pagespeed NGINX_PASSENGER='n' # Install Phusion Passenger requires installing addons/passenger.sh before hand NGINX_WEBDAV=n # Nginx WebDAV and nginx-dav-ext-module NGINX_UPSTREAMCHECK='n' # nginx upstream check https://github.com/yaoweibin/nginx_upstream_check_module NGINX_OPENRESTY='n' # Agentzh's openresty Nginx modules LUAJIT_GITINSTALL='n' # opt to install luajit 2.1 from dev branch http://repo.or.cz/w/luajit-2.0.git/shortlog/refs/heads/v2.1 ORESTY_LUANGINX='n' # enable or disable or ORESTY_LUA* nginx modules below
Upgrade Centmin Mod 1.2.3-eva2000.07 and older Releases
Centmin Mod 1.2.3-eva2000.08+ and higher versions have moved to using Git repository for easier updates. To update Centmin Mod 1.2.3-eva2000.07 and older releases to this newer method of upgrade outlined above. Follow these steps below.
Centmin Mod 1.2.3-eva2000.07 and older releases install Centmin Mod code to the directory at /usr/local/src/centmin-v1.2.3mod
. Centmin Mod 1.2.3-eva2000.08+ and higher changed the install directory to /usr/local/src/centminmod
. So the below upgrade process makes changes to that default install directory and implements it via Git.
Type following commands in SSH session as root user
Step 1. Whitelist git port 9418
sed -i "s/TCP_IN = \"/TCP_IN = \"9418,/g" /etc/csf/csf.conf sed -i "s/TCP6_IN = \"/TCP6_IN = \"9418,/g" /etc/csf/csf.conf sed -i "s/TCP_OUT = \"/TCP_OUT = \"9418,/g" /etc/csf/csf.conf sed -i "s/TCP6_OUT = \"/TCP6_OUT = \"9418,/g" /etc/csf/csf.conf csf -r
Step 2. Update Centmin Mod via Git
Update to Centmin Mod 1.2.3-eva2000.08 stable branch of git = 123.08stable
from Centmin Mod Github Repository. This will setup Centmin Mod code in install directory at /usr/local/src/centminmod
.
cd /usr/local/src mv centmin-v1.2.3mod/ centmin-v1.2.3mod-orig yum -y install git -q git clone https://github.com/centminmod/centminmod.git centminmod cd centminmod git checkout -f 123.08stable
Then run once to do any auto detected update tasks i.e. ccache gets updated if detected to not exist or be an older version.
cd /usr/local/src/centminmod ./centmin.sh
Step 3. This step is optional. Centmin Mod 1.2.3-eva2000.08 defaults to using MariaDB 10.0.x MySQL server. While older releases used MariaDB 5.5 MySQL server. You can update your older install to MariaDB 10.0.x MySQL server via centmin.sh menu option 11
, submenu option 3
.
-------------------------------------------------------- Centmin Mod 1.2.3-eva2000.08 - http://centminmod.com -------------------------------------------------------- Centmin Mod Menu -------------------------------------------------------- 1). Centmin Install 2). Add Nginx vhost domain 3). NSD setup domain name DNS 4). Nginx Upgrade / Downgrade 5). PHP Upgrade / Downgrade 6). XCache Re-install 7). APC Cache Re-install 8). XCache Install 9). APC Cache Install 10). Memcached Server Re-install 11). MariaDB 5.2/5.5 & 10.x Upgrade Sub-Menu 12). Zend OpCache Install/Re-install 13). Install ioping.sh vbtechsupport.com/1239/ 14). SELinux disable 15). Install/Reinstall ImagicK PHP Extension 16). Change SSHD Port Number 17). Multi-thread compression: pigz,pbzip2,lbzip2... 18). Suhosin PHP Extension install 19). Install FFMPEG and FFMPEG PHP Extension 20). NSD Re-install 21). Update - Nginx + PHP-FPM + Siege 22). Add Wordpress Nginx vhost + WP Super Cache 23). Update Centmin Mod Code Base 24). Exit -------------------------------------------------------- Enter option [ 1 - 24 ] 11 -------------------------------------------------------- -------------------------------------------------------- MariaDB MySQL Upgrade Sub-Menu -------------------------------------------------------- 1). MariaDB 5.2.x Branch Upgrade Only 2). MariaDB 5.2.x to MariaDB 5.5 YUM upgrade 3). MariaDB 5.5 to MariaDB 10.x YUM upgrade 4). MariaDB 5.5 to MariaDB 10.1.x YUM upgrade 5). MariaDB 10.x to MariaDB 10.1.x YUM upgrade 6). Back to Main menu -------------------------------------------------------- Enter option [ 1 - 6 ]
MariaDB 10.0.x server can then be easily updated via YUM update commands:
yum update MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared
Step 4. This step is also optional. Centmin Mod 1.2.3-eva2000.08+ and higher has a preset included download files for base versions of software that Centmin Mod relies on and usually these downloads that comes inside the download zip for Centmin Mod are extracted on fresh initial installs only. So if you're upgrading from Centmin Mod .07 and older, they won't be extracted so you can manually extract these from /downloads/svr-setup.zip to /svr-setup using this command in SSH as root user. This may save download time as Centmin Mod if it doesn't detect the required software in /svr-setup, it will auto download what is required. However, sometimes servers connectivity to remote downloads can be flaky so this manual extraction method at least ensures the initial software downloads that Centmin Mod requires is available.
/usr/bin/unzip -qo /usr/local/src/centminmod/downloads/svr-setup.zip -d /
If there any prompts for overwrite, you can select Yes
or A
for ALL and your local /svr-setup download folder should have base software version downloads now for centmin.sh specified version downloads.
Then run centmin.sh
menu options to upgrade php-fpm and nginx.
What updating Centmin Mod does ?
Upgrading Centmin Mod involves 2 parts.
- Upgrading the actual Centmin Mod code which you downloaded via git as outlined above. This is heart of Centmin Mod where the code is the engine that runs centmin.sh shell based menu and all the automation you're accustomed to.
- Upgrade software that Centmin Mod installed or manages. For this part following outline at Upgrade - How to upgrade Centmin Mod is best.
So essentially, you can upgrade from 1.2.3-eva2000.07 to 1.2.3-eva2000.08 in place, but not everything is upgraded as some things like server initial environment setup isn't changed i.e. how swap, tmp setup and allocation are created etc. The main parts from part 2 above are what in place upgrades do i.e. Nginx and PHP-FPM compilation and config/settings parameters and MariaDB version from 5.5 to 10.0.x. If you want the full environment changed including tmp and swap setup to .08's configuration, then you would need a fresh OS install and fresh .08 initial install. You can think of it like upgrading Windows 7 to Windows 8. An in place upgrade will upgrade code but won't change your computer environment from when you installed Windows 7 i.e. disk configuration and partition sizes won't change from when you initially installed Windows 7. Only way to change that would be fresh Windows 8 install.