webservice/config/install.php
2010-10-29 13:33:20 +00:00

105 lines
2.1 KiB
PHP

#!/usr/bin/php
<?php
// Copier la configuration suivant le nom du serveur
// Créer le lien symoblique data/ -> wwwroot/data/
//
// 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)');
$wwwroot = realpath(dirname(__FILE__).'/../../');
switch ($action)
{
case 'check':
break;
case 'configure':
//Création de la configuration
echo "Ecriture de la configuration\n";
writeConfig();
//Création des liens symboliques
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 changePermission(){
passthru('chown -R www-data: '.realpath(dirname(__FILE__).'/../'));
}
function writeSymlinks(){
global $wwwroot;
if( !file_exists($wwwroot.'/data') ) {
passthru('ln -vs '.$wwwroot.'/data' . ' ' .
realpath(dirname(__FILE__).'/../data'));
}
}
function writeConfig()
{
global $hostname;
passthru('cp -v '.realpath(dirname(__FILE__)).'/'.$hostname.'/config.php ' .
realpath(dirname(__FILE__)).'/config.php');
}