extranet/config/install.php
Michael RICOIS 41e9a9b09a Merge
2011-04-29 12:13:31 +00:00

155 lines
3.4 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 des répertoires de données
//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/img') ) {
passthru('ln -vs '.PATH_SITE.'/www/img '.PATH_SITE.'/cache/pages/img');
}
if( !file_exists(PATH_SITE.'/cache/pages/fichier/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');
}
function checkDirectories()
{
$dirList = array(
'bilanclient',
'courrier',
'jo',
'log',
'logos',
'marques',
'pdf',
'asso',
);
foreach ($dirList as $dir) {
if (!file_exist(PATH_DATA.'/'.$dir)) {
mkdir(PATH_DATA.'/'.$dir);
}
}
}