Système (phpSysInfo)

Par Pierre-Yves Landuré Dernière modification 25/10/2017 08:07

Affichez les informations sur les ressources systèmes.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy
  • Debian 9.0 Stretch

Prérequis

Ce guide nécessite:

Paramètres

Renseignez le domaine d'accès aux statuts du serveur:

domain="status.domain.com"

Installation

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo

Détectez le fichier de configuration du site de statut:

statusVhost="$(command grep -rl \
    "STATUS PAGES CONFIGURATION END" \
    '/etc/apache2/sites-available')"

Détectez le chemin d'installation utilisé:

if [ -n "${statusVhost}" ]; then
installPath="$(command grep "DocumentRoot" "${statusVhost}" \
| command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
| command cut --delimiter=" " --field=2)"
fi

Détectez le nom des paquets PHP disponibles:

phpVersion='5'
if [ -n "$(command apt-cache pkgnames php-cli)" ]; then
phpVersion=''
fi

Installation

    Installez les logiciels nécessaires:

    ${cmdProxy} apt-get install "php${phpVersion}-xsl"

    Rechargez la configuration de PHP:

    ${cmdProxy} php-tools --reload

    Téléchargez les sources de la dernière version de l'application à l'aide du sf-downloader:

    if [ -n "${installPath}" ]; then
    command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
    --quiet --no-check-certificate --output-document='/tmp/sf-downloader'
    command chmod +x '/tmp/sf-downloader'
    source="$(${cmdProxy} /tmp/sf-downloader \
        --output-directory="${installPath}/phpsysinfo" \
    --generic='https://github.com/phpsysinfo/phpsysinfo/releases' \
        --strip-components=1 --tgz 'phpsysinfo' 'vVERSION.tar.gz')"
    fi

    Ajustez les permissions:

    if [ -d "${installPath}/phpsysinfo" ]; then
    command chown -R root:root "${installPath}/phpsysinfo"
    command chmod -R go-w "${installPath}/phpsysinfo"
    fi

    Créez le fichier configuration:

    if [ -d "${installPath}/phpsysinfo" ]; then
    command cp "${installPath}/phpsysinfo/phpsysinfo.ini.new" "${installPath}/phpsysinfo/phpsysinfo.ini"
    fi

    Ajustez la configuration (langue par défaut, plugins, etc...):

    if [ -d "${installPath}/phpsysinfo" ]; then
    command sed -i \
    -e 's/\(PLUGINS=\).*$/\1"PS,PSStatus,SMART"/' \
      -e 's/\(DEFAULT_LANG=\).*$/\1"fr"/' \
      "${installPath}/phpsysinfo/phpsysinfo.ini"
    fi

    Ajoutez le lien correspondant à la page d'accueil du domaine.

    if [ -d "${installPath}/phpsysinfo" ]; then
    command sed -i -e '/<\/ul>/i\
    <li><a href="./phpsysinfo">System status</a></li>' \
      "${installPath}/index.html"
    fi

    Vous pouvez maintenant accéder aux informations sur le système.

    Mise à jour automatique

    Installez sf-downloader sur le système:

    command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
    --quiet --no-check-certificate --output-document='/usr/local/bin/sf-downloader'
    command chmod +x '/usr/local/bin/sf-downloader'

    Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:

    ${cmdProxy} tee "/etc/cron.daily/phpsysinfo-${domain//./-}-update" <<< "#"'!'"/bin/bash
    # Update ${domain} source code from Git.
    test -x '/usr/local/bin/sf-downloader' -a -d '${installPath}/phpsysinfo' && {
    newestVersion=\"\$(sf-downloader \\
    --generic='https://github.com/phpsysinfo/phpsysinfo/releases' \\
        --version 'phpsysinfo' 'vVERSION.tar.gz')\"
    currentVersion=\"\$(grep \"define.*PSI_VERSION'\" '${installPath}/phpsysinfo/read_config.php' \\
    | sed -e \"s/^.*'\\([0-9\\.]*\\)'.*\$/\\1/\")\"

    if [[ \"\${newestVersion}\" != \"\${currentVersion}\" ]]; then
    echo \"Udating phpsysinfo on ${domain} from version \${currentVersion} to \${newestVersion}.\"
    source=\"\$(sf-downloader \\
         --output-directory='${installPath}/phpsysinfo' \\
    --generic='https://github.com/phpsysinfo/phpsysinfo/releases' \\
        --strip-components=1 --tgz 'phpsysinfo' 'vVERSION.tar.gz')\"

    chown -R root:root '${installPath}/phpsysinfo'
    chmod -R go-w '${installPath}/phpsysinfo'
    fi
    }"
    command chmod +x "/etc/cron.daily/phpsysinfo-${domain//./-}-update"

    Remerciements