extranet/config/install.php
2010-12-17 14:50:13 +00:00

130 lines
2.8 KiB
PHP

#!/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.'/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/logos') ) {
passthru('ln -vs '.PATH_DATA.'/logos '.PATH_SITE.'/cache/logos');
}
if( !file_exists(PATH_SITE.'/cache/img') ) {
passthru('ln -vs '.PATH_SITE.'/www/img '.PATH_SITE.'/cache/img');
}
}
function writeConfig()
{
global $hostname;
passthru('cp -v '.realpath(dirname(__FILE__)).'/'.$hostname.'/config.inc '.realpath(dirname(__FILE__)).'/config.inc');
}