Skip to main content Help Control Panel

Tutoriaux dédiés à l'application VHCS 2 «  

TUTORIAL VHCS 2 - Installation de PhpSysInfo

Posted by M. declercq on Nov. 8 2006, commented by Red on Aug. 14 2007, (popular)  

PhpSysInfo est un logiciel Open Source écrit en php qui retourne graphiquement (via navigateur Web) des informations concernant votre système.

Avant Propos

Dans ce tutorial, nous n'abordons pas l'installation de PhpSysInfo via l'outil en ligne de commande apt puisque selon certaines de nos sources, il existerait des failles de sécurité assez importantes dans la version qu'il propose d'installer (versions présentes dans les dépôts officiels des distributions Ubuntu et Debian) (cf. annexe).

Dans ce tutorial, nous allons donc aborder l'installation et la configuration de PhpSysInfo via la version qui se trouve sur le Portail qui héberge le Projet (Portail sourceforge.net).

ATTENTION : Ce tutorial fait l'objet de sections particulières pour les utilisateurs de l'application VHCS 2 qui ne doivent pas être suivies par tous les utilisateurs Debian ou Ubuntu.

Ps : A l'heure ou nous rédigeons ce tutorial, PhpSysInfo est disponible dans sa version 2.5.2-rc3. Il vous appartient donc de vérifier qu'il n'existe pas de nouvelle version avant de suivre ce tutorial.

Update Une nouvelle version est disponible : 2.5.3-rc1.

Nous vous rappelons enfin que toutes les commandes évoquées dans ce tutorial doivent être exécutées avec les privilèges de l'utilisateur root.

Près-requis

Pour pouvoir suivre ce tutorial, vous devez disposer d'une solution LAMP (Linux, Apache, Mysql, Php) pleinement fonctionnelle ou de l'application VHCS avec tous les service Web qui s'y rattachent.

I. Téléchargement du logiciel

Afin de pouvoir installer le logiciel PhpSysInfo sur votre système, vous allez devoir le récupérer et le placer dans un répertoire temporaire.

Pour télécharger le logiciel PhpSysInfo, il vous suffit de taper les commandes suivantes dans un terminal :

1. On se place dans le répertoire /tmp :

cd /tmp

2. On télécharge l'archive contenant le logiciel PhpSysInfo :

wget http://ovh.dl.sourceforge.net/sourceforge/phpsysinfo/phpsysinfo-2.5.3-rc1.tar.gz


II. Décompression de l'archive

Pour décompresser l'archive contenant le logiciel PhpSysInfo, il vous suffit de taper la commande suivante dans un terminal :

1. On décompresse l'archive contenant le logiciel PhpSysInfo :

tar -xzf /tmp/phpsysinfo-2.5.3-rc1.tar.gz

Une fois cette commande exécutée, un nouveau dossier nommé phpsysinfo apparaît dans votre répertoire /tmp.

Pour le vérifier, il vous suffit de taper la commande suivante :

1. On liste le contenu du répertoire /tmp :

ls /tmp

III. Copie du répertoire PhpSysinfo

Pour que PhpSysInfo puisse fonctionner, il doit être placé dans une arborescence Web. Vous allez donc devoir copier le répertoire /tmp/phpsysinfo dans le répertoire /var/www. Pour ce faire, il vous suffit de taper la commande suivante :

1. On copie le répertoire /tmp/phpsysinfo dans le répertoire /var/www :

cp -a /tmp/phpsysinfo /var/www

Pour vérifier que la copie s'est effectuée correctement, il vous suffit de taper cette commande :

2. On liste le contenu du répertoire /var/www :

ls /var/www

Si tout s'est déroulé correctement, votre répertoire phpsysinfo devrait apparaître.

IV. Changement récursif des permissions

Pour que le Serveur Web Apache2 puisse lire et exécuter tous les fichiers qui se trouvent dans le répertoire /var/www/phpsysinfo, vous devez lui donner les permissions nécessaires. Pour ce faire, vous allez simplement changer le groupe auquel appartient le répertoire phpsysinfo ainsi que l'ensemble de ses sous-répertoires et les fichiers qu'ils contiennent.

1. On change récursivement le groupe du répertoire phpsysinfo :

chown root:www-data -R /var/www/phpsysinfo

V. Configuration du Serveur Web Apache2 :

Pour que PhpSysInfo soit accessible via votre navigateur, il existe plusieurs solutions :

A. La création d'un nouvel alias qui permettra l'accès à PhpSysInfo à partir de tous les domaines que vous hébergez ;
B. La création d'un nouvel hôte virtuel nommé phpsysinfo.domaine.tld qui correspondra à un sous-domaine d'un de vos domaines.

Ps : domaine.tld est à remplacer par le nom de votre domaine.

A. Première méthode - Nouvel Alias

La création d'un nouvel alias est la méthode la plus facile à mettre en oeuvre pour permettre l'accès à l'application PhpSysInfo. En effet, elle ne requière pas de modifications au niveau des fichiers zones de vos domaines. Voici comment procéder :

1. Création du nouvel Alias :

1. On créer un nouveau fichier nommé phpsysinfo.conf :

nano /etc/apache2/sites-available/phpsysinfo.conf

Une fois ce fichier créé, nous y ajoutons le contenu suivant :

Alias /phpsysinfo /var/www/phpsysinfo
<Directory /var/www/phpsysinfo>
Options -Indexes Includes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
php_admin_value open_basedir none
</Directory>

2. Activation du nouvel Alias :

Afin que votre nouvel Alias soit effectif, vous devez l'activer et demander au Serveur Web Apache2 de relire ses fichiers de configuration.

Pour ce faire, il vous suffit de taper les commandes suivantes dans un terminal :

1. On active le nouvel Alias :

a2ensite phpsysinfo.conf

2. On demande au Serveur Web Apache2 de relire ses fichiers de configuration :

/etc/init.d/apache2 reload

Après avoir fait ceci, vous pouvez directement passer à l'étape VI de ce tutorial.

B. Deuxième méthode - Nouvel hôte virtuel

a. Création du nouvel hôte Virtuel :

Cette méthode apparaît un peu plus complexe et un peu plus longue à mettre en oeuvre. Toutefois, elle a l'avantage de permettre l'accès à PhpSysInfo à partir d'un sous-domaine sans passer par une url à rallonge.

Ici, nous allons simplement créer un nouvel hôte virtuel nommé phpsysinfo.domaine.tld qui correspondra à un sous-domaine de notre domaine principal (le domaine à partir duquel on souhaite que PhpSysInfo soit accessible).

Ps : domaine.tld est à remplacer par le nom de votre domaine.

a.1 Création d'un nouveau fichier nommé phpsysinfo.conf :

nano /etc/apache2/sites-available/phpsysinfo.conf

Une fois ce fichier créé, nous y ajoutons le contenu suivant :

<VirtualHost 192.168.0.1:80>
DocumentRoot /var/www/phpsysinfo

ServerName phpsysinfo.domaine.tld.fr

<Directory /var/www/phpsysinfo>
Options -Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Ps : Vous devez remplacer l'adresse Ip par celle de votre machine. Si vous êtes derrière une passerelle internet (routeur), il s'agit de l'Ip privée de votre machine. Dans le cas contraire, il s'agit de votre Ip Publique. Vous devez aussi remplacer domaine.tld pas votre nom de domaine.

IMPORTANT :

Dans notre cas, nous avons fait suivre notre adresse Ip du numéro de port (80).

Ceci sous entend donc que nous avons déjà ajouté la directive NameVirtualHost appropriée (NameVirtualHost 192.168.0.1:80) dans notre fichier de configuration apache2.conf.

Dans d'autres cas, il peut simplement s'agir du wildcard (*) ce qui donnerait : <VirtualHost 192.168.0.1:*>. Bien entendu, la encore, la directive NameVirtualHost appropriée (NameVirtualHost 192.168.0.1:*) doit être présente dans vos fichiers de configuration. Si vous ne l'avez pas désactivé, elle est présente par défaut dans le fichier de configuration nommé /etc/apache2/sites-available/default.



Utilisateurs de l'application VHCS :

Normalement, la directive NameVirtualHost appropriée (NameVirtualHost IP:80) est déjà présente dans le fichier /etc/apache2/sites-available/vhcs2.conf qui est généré pas cette application.

b.1 Activation du nouvel hôte Virtuel :

Afin que votre nouvel Hôte Virtuel soit accessible, vous devez l'activer et demander au Serveur Web Apache2 de relire ses fichiers de configuration. Pour ce faire, il vous suffit de taper les commandes suivantes dans un terminal :

On active le nouvel Hôte Virtuel :

a2ensite phpsysinfo.conf

2. On demande au Serveur Web Apache2 de relire ses fichiers de configuration :

/etc/init.d/apache2 reload

c. Modification du fichier zone de votre domaine :

Pour que votre nouveau sous-domaine soit accessible, vous devez ajouter un enregistrement A au fichier zone de votre domaine.

c.1 Utilisateurs n'ayant pas leur propre Serveur DNS Primaire (Bind) :

Si vous ne disposez pas de votre propre Serveur DNS pour la résolution de nom de vos domaines (Nom -- Adresse Ip), vous devez vous rendre dans le panel d'administration de votre domaine (chez votre registrar) et ajouter cette entrée dans le formulaire approprié :

phpsysinfo	IN	A Votre_IP_Publique

Ps : La mention Votre_IP_Publique doit bien entendu être remplaçée par une valeur valide.

c.2 Utilisateurs ayant leur propres Serveur DNS Primaire :

Si vous gérer votre domaine avec votre propre Serveur DNS, vous devez éditer votre fichier zone et ajouter cet enregistrement :

1. Ajout d'un enregistrement A dans le fichier zone du domaine :

phpsysinfo	IN	A Votre_IP_Publique

Ps : La mention Votre_IP_Publique doit bien entendu être remplaçée par une valeur valide.

Ps : Après chaque édition d'une zone, pensez à changer le serial de votre fichier pour que les Serveurs DNS secondaires puissent se mettre à jour.

De même, vous devez aussi re-démarrer votre Serveur DNS :

2. Re-démarrage du Serveur DNS :

/etc/init.d/bind9 force-reload

c.3 Utilisateurs de l'application VHCS :

Si vous êtes utilisateur de l'application VHCS, les manipulations à effectuer sont un peu plus complexes. Il s'agit en effet de modifier les templates qui permmettent à VHCS de générer les fichiers zone de chacun de vos domaines de façons à ce que tous les sous-domaines, soit reconnus comme étant des domaines valides.

Voici la procédure à suivre :

1 Modification du template /etc/vhcs2/bind/parts/db_e.tpl :

Si vous n'avez pas modifier les templates bind de l'application VHCS, voici à quoi devrait ressembler le fichier db_e.tpl :

$TTL 86400
@ IN SOA ns.{DMN_NAME}. root.{DMN_NAME}. (
; dmn [{DMN_NAME}] timestamp entry BEGIN.
{TIMESTAMP}
; dmn [{DMN_NAME}] timestamp entry END.
8H
2H
4W
1D )
IN NS ns.{DMN_NAME}.
; dmn [{DMN_NAME}] dns2 entry BEGIN.
; dmn [{DMN_NAME}] dns2 entry END.
IN MX 10 mail.{DMN_NAME}.

{DMN_NAME}. A {DMN_IP}
ns IN A {DMN_IP}
mail IN A {DMN_IP}
www CNAME {DMN_NAME}.
ftp CNAME {DMN_NAME}.
; sub [{SUB_NAME}] entry BEGIN.
; sub [{SUB_NAME}] entry END.

Et voici à quoi il devrait ressembler après modification :

$TTL 86400
@ IN SOA ns.{DMN_NAME}. root.{DMN_NAME}. (
; dmn [{DMN_NAME}] timestamp entry BEGIN.
{TIMESTAMP}
; dmn [{DMN_NAME}] timestamp entry END.
8H
2H
4W
1D )
IN NS ns.{DMN_NAME}.
; dmn [{DMN_NAME}] dns2 entry BEGIN.
; dmn [{DMN_NAME}] dns2 entry END.
IN MX 10 mail.{DMN_NAME}.

{DMN_NAME}. A {DMN_IP}
ns IN A {DMN_IP}
mail IN A {DMN_IP}
* IN A {DMN_IP}
www CNAME {DMN_NAME}.
ftp CNAME {DMN_NAME}.
; sub [{SUB_NAME}] entry BEGIN.
; sub [{SUB_NAME}] entry END.

Ici, nous avons simplement rajouté un wildcard DNS (*) qui correspond en fait à tous les sous-domaines de votre domaine.

2 Regénération des fichiers de configuration :

Dans la mesure ou vous avez modifié des fichiers de l'application VHCS, il faut que vous re-génériez ses fichiers de configuration.

Pour regénérer les fichiers de configuration de l'application VHCS, il vous suffit de suivre la procédure suivante :

a. On stop le daemon de VHCS :

/etc/init.d/vhcs2_daemon stop

b. On se connecte au moniteur Mysql :

mysql -u root -p

c. On se place sur la base de données de VHCS 2 :

USE vhcs2

d. On exécute divers requêtes SQL pour appliquer les changements dans les tables concernées :

UPDATE `domain` SET `domain_status` = 'change' WHERE `domain_status` = 'ok';


UPDATE `domain_aliasses` SET `alias_status` = 'change' WHERE `alias_status` = 'ok';


UPDATE `subdomain` SET `subdomain_status` = 'change' WHERE `subdomain_status` = 'ok';

e. On quitte le moniteur Mysql :

quit

f. On lance un script de mise à jour :

/var/www/vhcs2/engine/vhcs2-rqst-mngr

g. On re-démarre le daemon de vhcs :

/etc/init.d/vhcs2_daemon start

VI. Configuration de phpsysinfo

Pour pouvoir utiliser PhpSysInfo, vous devez d'abord le configurer. La configuration est très simpliste puisqu'il vous suffit de copier le fichier de configuration nommé config.php.new qui se trouve dans le répertoire /var/www/phpsysinfo en le renommant en config.php. Pour ce faire, il vous suffit de taper la commande suivante dans un terminal :

On copie le fichier config.php.new en le renommant en config.php :

cp -a /var/www/phpsysinfo/config.php.new /var/www/phpsysinfo/config.php

VII. Utilisation de PhpSysInfo

Normalement, si tout c'est bien passé, vous devriez désormais pouvoir accéder aux informations concernant votre système en tapant l'url suivante :

1. Si vous avez suivi la première méthode (Nouvel Alias) :

http://domaine.tld/phpsysinfo

2. Si vous avez suivi la deuxième méthode (Nouvel Hôte Virtuel) :

http://phpsysinfo.domaine.tld

En ce qui nous concerne, nous avons pour l'exemple appliqué les deux méthodes. Vous pouvez juger par vous-même en cliquant sur ces urls :

http://phpsysinfo.nuxwin.com
http://nuxwin.com/phpsysinfo

VIII. Correction d'un petit bug

Lorsqu'on visionne les informations concernant notre système, PHP nous indique l'erreur suivante :

XPath error in XPath.class.php:5903 The supplied xPath
    
'/phpsysinfo/Hardware/CPU/CpuTemp' does not *uniquelydescribe a node in
    the xml document
.Not unique xpath-querymatched 0-times.

Il s'agit simplement d'une erreur de typographie insérée dans un fichier de PhpSysInfo que l'on peut facilement corriger.

Pour corriger cette erreur, il vous suffit de suivre la procédure suivante :

1. On édite le fichier /var/www/phpsysinfo/includes/xml/hardware.php :

nano /var/www/phpsysinfo/includes/xml/hardware.php

2. On recherche cette ligne (ligne 174) :

$_text .= "&nbsp;@&nbsp;" . temperature( $XPath->getData( "/phpsysinfo/Hardware/CPU/CpuTemp" ) );

3. On la remplace par celle-ci :

$_text .= "&nbsp;@&nbsp;" . temperature( $XPath->getData( "/phpsysinfo/Hardware/CPU/Cputemp" ) );

La seule différence se situe au niveau du mot CpuTemp qui doit s'écrire Cputemp.

IX. Configuration avancée de PhpSysInfo

Cette section est encore en cours de rédaction

X. Annexe

Comme indiqué dans la section A propos de ce tutorial, des failles de sécurité existeraient dans les versions de phpsysinfo installables à partir des dépôts officiels des distrubutions Ubuntu et Debian. Voici nos sources :

http://www.certa.ssi.gouv.fr/site/CERTA-2005-AVI-468/index.html

Précisions :

Ce tutorial a été appliqué avec succès sur un système fonctionnant avec la distribution Debian en mode Serveur.


Une erreur, une incompréhension concernant ce tutorial ? N'hésitez pas à utiliser la fonction commentaire de notre portail et/ou à nous joindre directement en utilisant notre formulaire contact : Nous contacter



Rédigé par M. Laurent DECLERCQ sur demande d'un membre de la communauté nuxwin.
v1.6 build 20070218.1132

Starchou on Dec. 21 2006
Bonjour, j'ai suivi votre tutorial, sur une debian avec VHCS2 mais je ne comprend pas pourquoi lorsque je veux redemarrer Apache il me marque :

" ns22951:/tmp# /etc/init.d/apache2 reload Reloading web server config...apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName done. "


De plus lorsque je vais sur l'ip de mon serveur via un navigareur je tombe direct sur phpsysinfo.... Normal ??

Merci par avance
M. declercq on Dec. 21 2006
Bonsoir ;

Le problème provient sûrement du fait que vous n'avez pas de directive ServerName dans votre fichier de configuration apache2.conf .

_______________________
Bien cordialement ;
L'équipe du portail Nuxwin

Starchou on Dec. 22 2006
Bonjour J'ai modifié les fichiers de VHCS2 en suivant vos instructions et depuis cela ne me remet plus le message lorsque je redemarre apache

En revanche (depuis le debut) j'ai dela en haut de la page :: common_functions.php 337 file_exists(/proc/net/dev) the file does not exist on your machine common_functions.php 337 file_exists(/proc/bus/usb/devices) the file does not exist on your machine

Et, il est normal si on tappe l'ip du serveur de tombé sur phpsysinfo ??

Merci
Mathelec on Feb. 14 2007
Nouvelle version de PhpSysInfo modifier l'url dans le tuto =) ! A+
M. declercq on Feb. 18 2007
Merci pour la notification
Nicolas on Mar. 10 2007
Que du bonheur, sans rien taper en fesant juste un copier coller sa fonctionne! Félicitation pour le Tuto!
Red on Aug. 14 2007
Pas de soucis, RAS, un bug au niveaux de la température mais résolu avec la sortie des nouveau kernels ! Géniale ^^

Yacs skin by Laurent DECLERCQ - 2006-2008 - All right reserved