JulienBreux
4/20/2012 - 11:17 AM

Remove website (sudo ./removeSite.php <user> <host>)

Remove website (sudo ./removeSite.php )

#!/usr/bin/php 
<?php
define('SUCCESS',               "\033[32m".'OK'."\033[37m - ");
define('WARN',                  "\033[31m".'INFO'."\033[37m - ");
define('EOL',                   "\n");

## FUNCTIONS

function pecho($string) {fwrite(STDOUT, $string);}

## LOAD

if ($argc < 3)
        die(pecho(WARN.'Le nom du site et de l\'utilisateur ne sont pas définis. ('.$argc.')'.EOL));

$user = $argv[1];
$site = $argv[2];

if (!is_dir('/home/'.$user))
        die(pecho(WARN.'L\'utilisateur '.$user.' n\'existe pas.'.EOL));

if (!preg_match('#^[^\.]+[a-z0-9\.]+[^\.]$#', $site))
        die(pecho(WARN.'Le nom du site '.$site.' n\'est pas conforme.'.EOL));

define('USER',                  $user);
define('SITE',                  $site);

define('TLD',                   '.local');

define('ACTION_DIRS',           true);
define('ACTION_HOST',           true);
define('ACTION_VHOST',          true);

define('TAB',                   "\t");
define('DS',                    DIRECTORY_SEPARATOR);

define('DIR_ETC',               DS.'etc');
define('DIR_HOME',              DS.'home');
define('DIR_APACHE',            DIR_ETC.DS.'apache2');
define('DIR_SITES',             DIR_HOME.DS.USER.DS.'Sites');

define('DIR_SITE',              DIR_SITES.DS.SITE.TLD);
define('DIR_SITES_ENABLED',     DIR_APACHE.DS.'sites-enabled');

define('FILE_HOSTS',            'hosts');
define('FILE_VHOST',            SITE.TLD);

## ACTION VHOST

if (ACTION_VHOST)
{
	if (file_exists(DIR_SITES_ENABLED.DS.SITE.TLD))
	{
		exec('rm -Rf '.DIR_SITES_ENABLED.DS.SITE.TLD);
		exec('/etc/init.d/apache2 restart');
		pecho(SUCCESS.'Suppression de l\'hôte virtuel '.SITE.TLD.EOL);
	}
	else
		pecho(WARN.'L\'hôte virtuel '.SITE.TLD.' n\'existe pas!'.EOL);
}

## ACTION DIRS

if (ACTION_DIRS)
{
	if (is_dir(DIR_SITE))
	{
		exec('rm -Rf '.DIR_SITE);
		pecho(SUCCESS.'Le site '.SITE.TLD.' a été supprimé du dossier '.DIR_SITES.EOL);
	}
	else
		pecho(WARN.'Le site '.SITE.TLD.' n\'existe pas !'.EOL);
}

## ACTION HOST

if (ACTION_HOST)
{
        $lines = file(DIR_ETC.DS.FILE_HOSTS);
        foreach ($lines as $k => $line)
	{
                if (preg_match('`'.SITE.TLD.'$`', $line))
		{
			unset($lines[$k]);
			$hostExists = true;
		}
	}
	if (isset($hostExists))
	{
		file_put_contents(DIR_ETC.DS.FILE_HOSTS, implode($lines, ''));
		pecho(SUCCESS.'Suppression du domaine '.SITE.TLD.EOL);
	}
	else
		pecho(WARN.'Le domaine '.SITE.TLD.' n\'existe pas !'.EOL);
}