ispconfig_update.sh aktualizace ISPConfig 3

Jak aktualizovat ISPConfig 3, které volby potvrdit a kdy? Aktualizační skript ispconfig_update.sh pro aktualizaci ISPConfig je způsob, jak provést update funkční instalace ISPConfig. Pokud chcete nad to provést ruční zálohu ISPConfig, postup je popsaný na na návod na konci článku. Tento návod platí pro ISPConfig 3.0, ISPConfig 3.1 a také ISPConfig 3.2.

ispconfig_update.sh

ispconfig_update.sh je skript který obsahuje příkaze které by jinak bylo nutné psát a potvrzovat ručně. Chcete-li aktualizovat ISPConfig 3, přihlaste se jako uživatel root v shellu serveru a spusťte příkaz:

ispconfig_update.sh

Pokud chcete aktualizaci vynutit v případě, že je vaše aktuální verze stejná, použijte volbu –force.

ispconfig_update.sh --force

Podrobný postup aktualizace pomocí skriptu ispconfig_update.sh

Zvolte metodu aktualizace. Pro produkční systémy vyberte „stable“. Aktualizace z svn je určena pouze pro vývojové systémy a může rozbít vaše stávající nastavení.

Aktualizace

  1. Po spuštění sktiptu v konzole
ispconfig_update.sh

2. Vyberte metodu aktualizace (stable,svn) [stable]. Na výběr jsou dvě verze a nejčastější volba je u všech kroků přednastaveny viz [stable] na konci řádku = stačí potvdit s Enter (stable,svn) [stable]:

V produkčním systému byste měli vždy zvolit „stable“. Verze „svn“ je vhodná pouze pro vývoj ISPConfig 3. Aktualizátor pak zkontroluje verzi vašeho systému, stáhne nejnovější aktualizaci a spustí proces aktualizace.

Tato aplikace provede aktualizaci ISPConfig 3 na vašem serveru.

Má skript nyní vytvořit zálohu ISPConfig v /var/backup/? (ano,ne) [ano]:

Zde byste měli zvolit „ano“. Tím se vytvoří záloha skriptů ISPConfig (/usr/local/ispconfig), adresáře /etc a databáze ISPC0nfig MySQL v adresáři /var/backup/.

Vytvoření zálohy adresáře „/usr/local/ispconfig“… Vytvoření zálohy adresáře „/etc“… Kontrola databáze ISPConfig .. OK Zahájení přírůstkové aktualizace databáze. Aktualizační skript poté spustí instalaci přírůstkových aktualizací databáze ISPConfig, pokud je vyžadována.

Překonfigurovat oprávnění v hlavní databázi? (ano,ne) [ne]:

Pokud se jedná o podřízený server v nastavení s více servery, pak zde zvolte „ano“ alespoň na jednom z podřízených serverů. U instalací s jedním serverem zvolte „ne“. Poté jste byli dotázáni, zda mají být služby překonfigurovány:

Překonfigurovat služby? (ano,ne) [ano]:

Zde byste měli zvolit „ano“, pouze pokud jste konfiguraci systému upravili ručně, může být lepší zvolit „ne“. V takovém případě by však nové funkce v ISPConfig nemusely fungovat nebo by funkce mohly přestat fungovat, dokud neupravíte konfigurační soubory ručně. Proto je vždy dobré zvolit zde „ano“. V dalším kroku vyberte port ispconfig:

ISPConfig Port [8080]:

Port 8080 je výchozí, pokud jste jej nezměnili, stiskněte enter. V opačném případě zadejte číslo portu a stiskněte enter. V posledním kroku jste byli dotázáni, zda se má crontab překonfigurovat, zde můžete zvolit ano pouhým stisknutím klávesy return.

Vytvoření nového SSL certifikátu ISPConfig (ano,ne) [ne]:

Pokud platnost vašeho SSL certifikátu pro rozhraní ISPConfig vypršela a chcete jej obnovit nebo pokud chcete povolit šifrování SSL pro rozhraní ISPConfig, zvolte „ano“. Pokud nový certifikát SSL nepotřebujete, zvolte výchozí hodnotu (ne).

Překonfigurovat Crontab? (ano,ne) [ano]:

Aktualizátor ISPConfig pak aktualizuje soubory ispconfig a restartuje služby, pokud byla konfigurace změněna.

Zálohování před aktualizací

Proces zálohy je nově integrován do aktualizátoru ISPConfig a provede se automaticky, pokud chcete vytvořit zálohu během aktualizace. Před aktualizací softwaru ale můžete vytvořit zálohu vlastní. V případě chyby tak můžete obnovit předchozí verzi softwaru. Jak vytvořit záložní kopii softwaru ispconfig a nastavení:

Vytvořte záložní složku:

mkdir /home/backup
chmod 700 /home/backup
cd /home/backup

Záloha databáze

mysqldump -u root -p dbispconfig > dbispconfig.sql

Zálohování softwaru ISPConfig

tar pcfz ispconfig_software.tar.gz /usr/local/ispconfig

Zálohování konfiguračních souborů v /etc

tar pcfz etc.tar.gz /etc

Tento postup zálohy neobsahuje e-maily a data webových stránek. Zálohu e-mailů (složka /var/vmail/) lze provést příkazem

tar pcfz ispconfig_vmail.tar.gz /var/vmail

Zálohu webových stránek (složka /var/www/) lze provést příkazem

tar pcfz ispconfig_vmail.tar.gz /var/www

Obsah souboru aktualizátoru

#!/bin/bash

_UPD=1

##################################################
##################################################
##################################################
##################################################
##################################################
##################################################

# padding handles script being overwritten during updates
# see https://git.ispconfig.org/ispconfig/ispconfig3/issues/4227

{
if [ -n "${_UPD}" ]
then
    n=$(readlink -f ${0})
    if [ "$(basename ${0})" == "ispconfig_update.sh" ]
    then
        cp -p ${n} ${n}.exec
        chmod +x ${n}.exec
        exec ${n}.exec "$@"
    else
        # clean up tmp .exec file
        if [ "$(basename ${0})" == "ispconfig_update.sh.exec" ]; then
            rm -f ${0}
        fi

        exec php -q \
            -d disable_classes= \
            -d disable_functions= \
            -d open_basedir= \
            /usr/local/ispconfig/server/scripts/ispconfig_update.php "$@"

    fi
fi
}

Obsah ispconfig_update.php

<?php
function sread() {
        $input = fgets(STDIN);
        return rtrim($input);
}

function swrite($text = '') {
        echo $text;
}

function swriteln($text = '') {
        echo $text."\n";
}

function simple_query($query, $answers, $default)
{
        $finished = false;
        do {
                $answers_str = implode(',', $answers);
                swrite($query.' ('.$answers_str.') ['.$default.']: ');
                $input = sread();

                //* Stop the installation
                if($input == 'quit') {
                        swriteln("Installation terminated by user.\n");
                        die();
                }

                //* Select the default
                if($input == '') {
                        $answer = $default;
                        $finished = true;
                }

                //* Set answer id valid
                if(in_array($input, $answers)) {
                        $answer = $input;
                        $finished = true;
                }

        } while ($finished == false);
        swriteln();
        return $answer;
}

require_once '/usr/local/ispconfig/server/lib/config.inc.php';

echo "\n\n".str_repeat('-', 80)."\n";
echo "
_____ ____ _______   _____              __ _
|_   _/  ___| ___ \ /  __ \            / _(_)
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |
 _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| |
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, |
                                              __/ |
                                             |___/ ";
echo "\n".str_repeat('-', 80)."\n";
echo "\n\n>> Update  \n\n";
echo "Please choose the update method. For production systems select 'stable'. \nWARNING: The update from GIT is only for development systems and may break your current setup. Do not use the GIT version on servers that host any live we>

$method = simple_query('Select update method', array('stable', 'nightly', 'git-develop'), 'stable');

if($method == 'stable') {
        $new_version = @file_get_contents('https://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.');
        $new_version = trim($new_version);
        if(version_compare($new_version, ISPC_APP_VERSION, '<=') && !in_array('--force', $argv, true)) {
                echo "There are no updates available for ISPConfig ".ISPC_APP_VERSION."\n";
                echo "If you are sure you want to update to stable anyway, please use --force parameter\n";
                echo "DOWNGRADING MAY CAUSE ISSUES!\n";
                exit(1);
        }
}

passthru('/usr/local/ispconfig/server/scripts/update_runner.sh ' . escapeshellarg($method));
exit;

Obsah souboru update_runner.sh

#!/bin/bash

_UPD=1

# padding handles script being overwritten during updates
# see https://git.ispconfig.org/ispconfig/ispconfig3/issues/4227

##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################
##################################################

SOURCE=$1
URL=""

if [[ "$SOURCE" == "stable" ]] ; then
        URL="https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz"
elif [[ "$SOURCE" == "nightly" ]] ; then
        URL="https://www.ispconfig.org/downloads/ISPConfig-3-nightly.tar.gz"
elif [[ "$SOURCE" == "git-develop" ]] ; then
        URL="https://git.ispconfig.org/ispconfig/ispconfig3/-/archive/develop/ispconfig3-develop.tar.gz"
else
        echo "Please choose an installation source (stable, nightly, git-develop)"
        exit 1
fi

CURDIR=$PWD

cd /tmp

{
if [ -n "${_UPD}" ]
then
    {
        save_umask=`umask`
        umask 0077 \
        && tmpdir=`mktemp -dt "$(basename $0).XXXXXXXXXX"` \
        && test -d "${tmpdir}" \
        && cd "${tmpdir}"
        umask $save_umask
    } || {
        echo 'mktemp failed'
        exit 1
    }

    echo "Downloading ISPConfig update."
    wget -q -O ISPConfig-3.tar.gz "${URL}"
    if [ -f ISPConfig-3.tar.gz ]
    then
        echo "Unpacking ISPConfig update."
        tar xzf ISPConfig-3.tar.gz --strip-components=1
        cd install/
        php -q \
            -d disable_classes= \
            -d disable_functions= \
            -d open_basedir= \
            update.php
        cd /tmp
        rm -rf "${tmpdir}"
    else
        echo "Unable to download the update."
                cd "$CURDIR"
        exit 1
    fi

fi

cd "$CURDIR"
exit 0
}

Užitečné

Ruční AdGuard aktualizace na Linux serveru
Domovská stránka ISPconfig

ICTIS.CZ