#!/usr/bin/php <?php // Paramètres if ( $argc < 2 || in_array($argv[1], array('--help', '-help', '-h', '-?')) ) { ?> Installation Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide. Utilisation : <?php echo $argv[0]; ?> options [environnement] options : check Vérifie les différents éléments de la configuration et affiche le résultat (Nécessite d'être ROOT) configure Execute les actions de configuration suivant le serveur install Créer le lien symbolique update-vhost Met à jour la configuration définie dans apache si nécessaire (Nécessite d'être ROOT) environnement : PRD : Production REC : Recette DEV : Developpement <?php exit; } $action = $argv[1]; $mode = strtoupper($argv[2]); $hostname = exec('echo $(hostname)'); switch ($action) { case 'check': if (!isRoot()) { echo "Vous devez être ROOT pour utiliser ce script.\n"; exit; } if (!hasConfig()) { echo "Fichier de configuration manquant...\n"; exit; } echo "Lien symbolique 'cache/logos' : "; echo hasSymlink('cache/logos') ? "Ok" : "Manquant"; echo "\n"; echo "Lien symbolique 'cache/img' : "; echo hasSymlink('cache/img') ? "Ok" : "Manquant"; echo "\n"; echo "Lien symbolique 'data' : "; echo hasSymlink('data') ? "Ok" : "Manquant"; echo "\n"; break; case 'configure': //Création de la configuration echo "Ecriture de la configuration\n"; writeConfig(); //Création des liens symboliques require_once 'config.inc'; echo "Création des liens symboliques\n"; writeSymlinks(); //Vérification du lien symbolique du projet echo "Changement des permissions\n"; changePermission(); break; case 'install': break; case 'update-vhost': if (!isRoot()) { echo 'Vous devez être ROOT pour utiliser ce script'; exit; } break; default : break; } /** * Vérfie si l'utilisateur est ROOT */ function isRoot() { $uid = exec('echo $(id -u)'); if ((int) $uid == 0){ return true; } else { return false; } } function hasConfig() { return file_exists(realpath(dirname(__FILE__)).'/config.inc'); } function hasSymlink($symlink) { return is_link(PATH_SITE.'/'.$symlink); } function changePermission(){ passthru('chmod +x '.PATH_SITE.'/batch/*.php'); passthru('chmod +x '.PATH_SITE.'/includes/print/linux/*'); passthru('chown -R www-data: '.PATH_SITE); } function writeSymlinks(){ if( !file_exists(PATH_SITE.'/data') ) { passthru('ln -vs '.realpath(dirname(__FILE__).'/../../data').' '.PATH_SITE.'/data'); } if( !file_exists(PATH_SITE.'/cache/pages/fichier/img') ) { passthru('ln -vs '.PATH_SITE.'/www/img '.PATH_SITE.'/cache/pages/img'); } if( !file_exists(PATH_SITE.'/cache/logos') ) { passthru('ln -vs '.PATH_DATA.'/logos '.PATH_SITE.'/cache/pages/fichier/logos'); } if( !file_exists(PATH_SITE.'/cache/pages/fichier/imgcache') ) { passthru('ln -vs '.PATH_SITE.'/cache/pages/imgcache '.PATH_SITE.'/cache/pages/fichier/imgcache'); } } function writeConfig() { global $hostname; passthru('cp -v '.realpath(dirname(__FILE__)).'/'.$hostname.'/config.inc '.realpath(dirname(__FILE__)).'/config.inc'); }