Skip to content

Instantly share code, notes, and snippets.

@squiter
Created May 26, 2011 19:46
Show Gist options
  • Save squiter/993907 to your computer and use it in GitHub Desktop.
Save squiter/993907 to your computer and use it in GitHub Desktop.
Script para automatização da criação dos Virtual Hosts usados nos servidores de desenvolvimento da Equipe Abstraindo
<?php
/*
* Title: vhost.php
* Create_date: 2011.02.23
* Author: Abstraindo Team
* Version: 0.1
* Desc: Script para auto inserção de virtual host do Apache,
* adição de regra no arquivo host e envio de e-mail para os
* interessados.
* HowToUse: execute sudo php vhost.php $endereçoVhost $pathProject
*/
error_reporting(0);
ini_set("display_errors", "0");
// Variáveis
$vhostFile = "/etc/apache2/httpd.conf"; //onde escrever o virtual host
$hostFile = "/etc/hosts"; //arquivo hosts do servidor
$apachePath = "/etc/init.d/"; //caminho do apache em seu servidor
$ipServidor = "127.0.0.1"; //ip do servidor
$owner = "www-data";
$group = "www-data";
$permission = 0755;
//Configurações do envio de email
$enviar_email = true; //coloque false caso não queira enviar emails
$mailTo = "nome@dominio.com"; //email para encaminhar as instruções
$subject = "DEV :: Novo projeto adicionado :: {$argv[1]}"; //subject do email
// Template para os Virtual Hosts
$template = "\n# {$argv[1]}\n";
$template .= "<VirtualHost *:80>\n";
$template .= " ServerName {$argv[1]}\n";
$template .= " DocumentRoot {$argv[2]}\n";
$template .= "</VirtualHost>";
$template .= "\n";
echo $template;
$file = @fopen($vhostFile, 'a+');
fwrite($file, $template);
fclose($file);
$file = @fopen($hostFile, 'a+');
fwrite($file, "127.0.0.1 {$argv[1]}\n");
fclose($file);
if(!is_dir($argv[2])){
if(!mkdir($argv[2])){
$msg .= "O diretório {$argv[2]} não foi criado! \n\n";
}else{
chown($argv[2], $owner);
chgrp($argv[2], $group);
chmod($argv[2], $permission);
}
}else{
chown($argv[2], $owner);
chgrp($argv[2], $group);
chmod($args[2], $permission);
}
exec($apachePath.'apache2 restart');
if($enviar_email === true){
$msg .= "Um novo projeto foi adicionado ao servidor.\n";
$msg .= "Adicione a seguinte linha ao seu arquivo host:\n";
$msg .= "{$ipServidor} {$argv[1]}";
@mail($mailTo,$subject,$msg);
}
echo 'Created with success the config for: ', $argv[1];
echo "\n";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment