Système (phpSysInfo)
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:
- L'accès aux statuts du serveur, comme décrit par Afficher les statuts d'un serveur.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- php-tools, l'outil de configuration simplifiée de PHP.
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
- Merci aux développeurs de phpSysInfo (en).