Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Gestionnaire de fichiers eXtplorer file manager

Face au problème de fichiers de propriétaires différents en hébergement partagé, plutôt que de tout ouvrir à tout le monde, il vaut mieux se donner les moyens de gérer les fichiers qui appartiennent à apache, c’est-à-dire un script PHP qui, puisqu’il tourne sous le nom d’apache, a accès à ses fichiers. J’en ai trouvé un qui semble bon (réputé le meilleur ?), c’est eXtplorer. Voir http://extplorer.sourceforge.net/.

On a donc ainsi : le gestionnaire de fichier (cPanel ou Plesk) mis à la disposition du client par l’hébergeur, ou FTP, pour les fichiers dont ce client est propriétaire ; eXtplorer pour les fichiers dont apache est le propriétaire.

Le but d’eXtplorer, c’est de ne plus tout ouvrir à tout le monde. Il serait donc dommage de l’installer en suivant les instructions, c’est à dire d’en envoyer par FTP tous les fichiers (dont on devient donc alors propriétaire) et de les ouvrir à tout le monde pour qu’apache y ait accès aussi. (Parfois je suis tellement subtil que j’en ai le tournis.) J’ai donc écrit un script intallextplorer.php pour que ce soit apache qui réalise l’installation et qui en soit donc propriétaire. Cependant, pour qu’apache puisse créer le répertoire eXtplorer dans httpdocs, il faut donner (par FTP) le droit à l’écriture à tout le monde le temps de l’installation. (Je n’y avais d’abord pas pensé et il m’a fallu du temps pour comprendre ce qui n’allait pas.) Je donne donc les permissions voulues à httpdocs, j’y dépose par FTP le fichier comprimé ext.zip du programme eXtplorer et mon script intallextplorer.php et j’exécute ce dernier.

<?php

$destination = 'eXtplorer';
$longdest = '/var/www/vhosts/d-meeus.be/httpdocs/'.$destination;
if(!mkdir($longdest, 0750)) {
die('je n’ai pas pu créer le répertoire');
}

$eXtzip = 'ext.zip';
$zip = new ZipArchive;
$zip_file = $zip->open($eXtzip);
if ($zip_file)
{
echo dirname(__FILE__).'/'.$destination;
$zip->extractTo(dirname(__FILE__).'/'.$destination);
$zip->close();
echo 'fichiers extraits avec succès dans le
 répertoire '.dirname(__FILE__).'/'.$destination;
echo '. Aller à /'.$destination.' comme admin/admin et changer le mot de passe';
}
else
{
echo 'Je n’ai pas pu ouvrir '.$eXtzip;
}

?>
        

Je pourrais réutiliser ce code pour installer ainsi d’autres scripts avec apache comme propriétaire, mais je n’en ai plus besoin puisqu’à partir de maintenant j’ai — c’est pour cela que je l’ai installé — eXtplorer pour le faire à ma place.

Dominique Meeùs . Date: 2011… 2016