Este tutorial tem como objetivo, a configuração do seu apache local para trabalhar com subdominios no laravel.
O que será utilizado:
- Laravel
- Servidor Apache
- Servidor DNS/DHCP
- Linux
vou partir do princípio que você não é um arigó e já sabe instalar o laravel ;), eu criei minha pasta com o nome de multi-tenant
, dê o nome que quiser a sua
execute no seu terminal
sudo apt-get install dnsmasq
edite o arquivo /etc/dnsmasq.conf
e adicione o seguinte conteúdo:
address=/multi.app/127.0.0.1
Crie um arquivo em /etc/apache2/sites-enabled
com qualquer nome, dei ao meu o nome de multi-tenant-hosts.conf
com o seguinte conteúdo:
# Host Principal e Subdominios devem apontar para a public do laravel
# o roteamento dos subdominios ficará a cargo do laravel
<VirtualHost *:80>
DocumentRoot "/home/daniel/Projetos/multi-tenant/public"
ServerName multi.app
DirectoryIndex index.php
ServerAlias multi.app
ServerAlias *.multi.app
<Directory "/home/daniel/Projetos/multi-tenant/public">
Require all granted
</Directory>
</VirtualHost>
APP_DOMAIN=multi.app
// Rotas que pertencem a um subdominio deverão ser registradas dentro do grupo
// Rotas para subdominio devem sempre ser declaradas antes das outras
Route::group(['domain' => '{account}.' . env('APP_DOMAIN')], function () {
Route::get('do-something', function ($account) {
//
});
});
// As demais rotas, registra-se normal
Route::get('/', function(){
return view('welcome');
});
Abra seu terminal e execute:
sudo /etc/init.d/dnsmasq restart
sudo service apache2 restart
neste momento, você já pode acessar o dominio principal http://multi.app
e seus subdominios http://teste.multi.app
, http://outro-teste.multi.app
que o laravel já vai estar roteando tudo certinho. Fica aqui minha experiência e aprendizado, espero que gostem!
Author: Daniel Lima!