Apache VirtualHosts Config
Publicado por João Artur (última atualização em 22/02/2017)
[ Hits: 1.870 ]
Muitas pessoas tem dificuldade de configurar virtualhosts (mais de um site no mesmo servidor) em seu Apache. Desenvolvi esse script com a finalidade de facilitar todo esse processo.
Foi testado apenas no Ubuntu 16.04, e só funcionará em sistemas baseados em Debian e Ubuntu.
<?php error_reporting(0); $sistema = PHP_OS; $id = posix_getuid(); function configurar($nomedoservidor,$dominio,$ssl) { if (file_exists("/etc/apache2") == true) { if (file_exists("/etc/apache2/sites-available/".$nomedoservidor.".conf")) { $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: --> Existe outro servidor com o mesmo nome "; print($conteudo); } else { $status = ""; $etchosts = file_get_contents("/etc/hosts"); $host = "127.0.0.1 ".$dominio; $config = "<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName ".$nomedoservidor." ServerAlias ".$dominio." DocumentRoot /var/www/".$nomedoservidor."/public_html ErrorLog /var/www/".$nomedoservidor."/error.log CustomLog /var/www/".$nomedoservidor."/access.log combined </VirtualHost> "; if (file_put_contents("/etc/apache2/sites-available/".$nomedoservidor.".conf", $config)) { $status .= " --> Arquivo \e[1m/etc/apache2/sites-available/".$nomedoservidor.".conf\e[0m criado\n"; } else { $status .= " --> Erro ao criar o arquivo \e[1m/etc/apache2/sites-available/".$nomedoservidor.".conf\e[0m\n"; } if (file_put_contents("/etc/apache2/sites-enabled/".$nomedoservidor.".conf", $config)) { $status .= " --> Arquivo \e[1m/etc/apache2/sites-enabled/".$nomedoservidor.".conf\e[0m criado\n"; } else { $status .= " --> Erro ao criar o arquivo \e[1m/etc/apache2/sites-enabled/".$nomedoservidor.".conf\e[0m\n"; } if (mkdir("/var/www/".$nomedoservidor)) { $status .= " --> Pasta \e[1m/var/www/".$nomedoservidor."\e[0m criada\n"; } else { $status .= " --> Erro ao criar a pasta \e[1m/var/www/".$nomedoservidor."\e[0m\n"; } if (mkdir("/var/www/".$nomedoservidor."/public_html")) { $status .= " --> Pasta \e[1m/var/www/".$nomedoservidor."/public_html\e[0m criada\n"; } else { $status .= " --> Erro ao criar a pasta \e[1m/var/www/".$nomedoservidor."/public_html\e[0m\n"; } if (file_put_contents("/etc/hosts", $etchosts."\n".$host)) { $status .= " --> Arquivo \e[1m/etc/hosts\e[0m atualizado\n"; } else { $status .= " --> Erro ao atualizar o arquivo \e[1m/etc/hosts\e[0m\n"; } shell_exec("service apache2 restart"); $status .= " --> Servidor \e[1mApache\e[0m reiniciado\n"; $index = "<center>O domínio ".$dominio." foi ativado<br><br>Apache VirtualHosts Config by João Artur (K3N1)</center>"; if (file_put_contents("/var/www/".$nomedoservidor."/public_html/index.html", $index)) { $status .= " --> Arquivo \e[1mindex.html\e[0m criado\n"; } else { $status .= " --> Erro ao criar o arquivo \e[1mindex.html\e[0m\n"; } $status .= " --> Configuração de certificado SSL em breve\n"; $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Status: ".$status." "; print($conteudo); } } else { $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: --> Diretório \e[1m/etc/apache2\e[0m não encontrado "; print($conteudo); } } if ($sistema == "Linux" && $id == 0) { system("clear"); $argc = $argc - 1; switch ($argc) { case '3': $nomedoservidor = strtolower(str_replace(array(",",".",";","-"," "), "", $argv[1])); $dominio = (strpos($argv[2],'.')) ? strtolower(str_replace(array("http://","https://"), "", $argv[2])) : "no"; $ssl = strtoupper($argv[3]); $ssl = ($ssl == "S" || $ssl == "N") ? $ssl : "no"; if ($dominio == "no") { $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: --> Domínio inválido "; print($conteudo); } else { if ($ssl == "no") { $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: --> Para a configuração do SSL é aceito apenas S/N "; print($conteudo); } else { if ($ssl != "no" && $dominio != "no") { configurar($nomedoservidor,$dominio,$ssl); } else { $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: --> Erro inesperado. "; print($conteudo); } } } break; default: $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Uso: --> php ".$argv[0]." NomeDoServidor Domínio SSL Exemplo: --> php ".$argv[0]." kenihacking kenihacking.com s NomeDoServidor: nome do servidor Domínio: domínio do site SSL: auto-configurar certificado SSL (S/N) "; print($conteudo); break; } } else { $erros = ""; if ($sistema != "Linux") { $erros .= " --> Sistema operacional deve ser Linux\n"; } if ($id != 0) { $erros .= " --> Script deve ser executado como Root"; } $conteudo = "\e[31m\e[1m _ _ __ ___ _ _ _ _ _ /_\ _ __ __ _ __| |_ ___ \ \ / (_)_ _| |_ _ _ __ _| | || |___ __| |_ ___ / _ \| '_ \/ _` / _| ' \/ -_) \ V /| | '_| _| || / _` | | __ / _ (_-< _(_-< /_/ \_\ .__/\__,_\__|_||_\___| \_/ |_|_| \__|\_,_\__,_|_|_||_\___/__/\__/__/ |_| ___ __ _ / __|___ _ _ / _(_)__ _ | (__/ _ \ ' \| _| / _` | \___\___/_||_|_| |_\__, | |___/ By João Artur (K3N1) \e[0m Erro: ".$erros." "; print($conteudo); } ?>
php-scan-rede - scanner de rede simples em PHP
Monitoramento simples de servidores
Script PHP para fazer UPLOAD de arquivos
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
Direcionar uma URL para Outra No Mikrotik (0)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (1)