Criando e executando um projeto Laravel no ServBay
Visão geral
O ServBay é um ambiente de desenvolvimento web local robusto, compatível com macOS e Windows, que integra diversos pacotes populares, incluindo PHP, Node.js, Python, Go, Java, vários bancos de dados (MySQL, PostgreSQL, MongoDB), serviços de cache (Redis, Memcached) e servidores web (Caddy, Nginx, Apache).
Este documento irá guiá-lo no processo de criação, configuração e execução de um projeto Laravel utilizando o ServBay. Vamos aproveitar o ambiente PHP integrado do ServBay, o gerenciador de pacotes Composer e os poderosos recursos de administração de sites para simplificar cada etapa.
O que é Laravel?
Laravel é um dos frameworks PHP de código aberto mais populares, criado por Taylor Otwell. Ele segue o padrão de arquitetura MVC (Model-View-Controller) e oferece diversas funcionalidades prontas para uso, tornando tarefas comuns do desenvolvimento web mais simples — como autenticação de usuários, roteamento, gerenciamento de sessões, cache e manipulação de bancos de dados. Laravel se destaca pela sintaxe elegante, pelo conjunto de recursos amplo e pela forte comunidade, sendo a escolha ideal para construções de aplicações web modernas e fáceis de manter.
Principais características e vantagens do Laravel
- Sintaxe elegante: Código claro e expressivo, facilitando a produtividade e legibilidade.
- Eloquent ORM: Implementação poderosa do ActiveRecord, tornando as operações de banco de dados intuitivas e simples.
- Console Artisan: Uma linha de comando repleta de ferramentas úteis para migrações, geração de código, execução de testes, entre outros.
- Engine de templates Blade: Sintaxe limpa e fácil para criação de views dinâmicas.
- Ecossistema rico: Muitos pacotes oficiais e de terceiros, facilmente integrados via Composer.
- Forte suporte comunitário: Uma comunidade ativa com vasta oferta de tutoriais, recursos e soluções.
Vantagens de desenvolver projetos Laravel com ServBay
O ServBay simplifica o fluxo de desenvolvimento para quem utiliza Laravel:
- Ambiente integrado: ServBay traz vários versões do PHP, Composer, bancos de dados e serviços de cache pré-instalados — elimina necessidade de instalações manuais.
- Gerenciamento fácil: Interface gráfica para trocar versões do PHP, gerenciar configurações de sites e iniciar/parar serviços com poucos cliques.
- Servidor web pré-configurado: ServBay usa Caddy por padrão, já otimizado para frameworks PHP (incluindo Laravel) — facilitando a configuração inicial.
- Suporte HTTPS: Certificados SSL emitidos automaticamente para domínios
.local
via ServBay User CA, garantindo segurança e ambiente semelhante ao produtivo por padrão.
Criando um projeto Laravel
ServBay recomenda que os projetos de site sejam armazenados nos seguintes diretórios, para manter organização e facilitar o gerenciamento:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Verifique o Composer instalado
O Composer já vem incluído com o ServBay, não sendo necessário instalar separadamente. Para checar, basta abrir o terminal e executar:
bashcomposer --version
1Se o comando retornar a versão, o Composer está pronto para uso.
Crie um novo projeto Laravel
No terminal, navegue até o diretório recomendado e utilize o Composer para criar o projeto. Vamos nomear o diretório do projeto como
servbay-laravel-app
:macOS:
bashcd /Applications/ServBay/www # Cria o diretório do projeto mkdir servbay-laravel-app # Acesse o diretório cd servbay-laravel-app # Cria o projeto Laravel na pasta atual composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Cria o diretório do projeto mkdir servbay-laravel-app # Acesse o diretório cd servbay-laravel-app # Cria o projeto Laravel na pasta atual composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7O Composer irá baixar e instalar o Laravel e todas as suas dependências.
Entre no diretório do projeto
Certifique-se que você está na raiz da nova aplicação Laravel:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
Configuração inicial
Gere a chave de aplicação
O Laravel utiliza uma chave de aplicação para proteger sessões e dados criptografados. No terminal, estando na raiz do projeto, rode:
Caminho do projeto:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1Esse comando irá gerar e definir o valor
APP_KEY
no arquivo.env
.- macOS:
Configurar variáveis de ambiente (
.env
)O arquivo
.env
gerencia variáveis como conexão com banco de dados, URL da aplicação, etc. Abra o arquivo.env
na raiz do projeto e ajuste conforme sua necessidade, conferindo estes exemplos básicos:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Gerado pelo comando php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Exemplo MySQL DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nome do banco desejado DB_USERNAME=root # Usuário padrão do ServBay DB_PASSWORD=password # Senha padrão do ServBay # Exemplo Redis CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Por padrão, Redis sem senha no ServBay REDIS_PORT=6379 # Exemplo Memcached # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Atenção: Ajuste os campos de configuração conforme o banco ou serviço que estiver usando. Usuário e senha padrão podem ser consultados no painel do ServBay.
Configurando o servidor web (adicionando um site no ServBay)
Utilize o gerenciamento de sites do ServBay para apontar seu domínio para a pasta public
do projeto Laravel.
Abra o painel de controle do ServBay
Inicie o aplicativo ServBay e acesse o painel.
Adicione um novo site
Vá até a seção de "Sites" no painel e clique no botão de adicionar (
+
ou similar).Preencha as informações do site
Siga este exemplo para configurar:
Nome (Name):
Meu Primeiro Site Laravel Dev
(nome a sua escolha)Domínio (Domain):
servbay-laravel-test.local
(domínio para acesso via navegador)Tipo de Site (Site Type):
PHP
Versão PHP (PHP Version): Escolha conforme necessidade, por exemplo,
8.3
.Root do Site (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(Importante: Deve apontar para o subdiretório
public
dentro do projeto Laravel)- macOS:
Para mais detalhes, consulte a documentação oficial do ServBay sobre Como adicionar o primeiro site (procure o link em inglês).
Salve e aplique as alterações
Salve a configuração do site. O ServBay irá atualizar a configuração do servidor (Caddy por padrão). Se solicitado, reinicie o servidor web conforme indicado.
Verificando acesso básico
Agora, seu projeto Laravel deve estar acessível via o domínio configurado.
Abra o navegador
Acesse no navegador o domínio configurado, por exemplo,
https://servbay-laravel-test.local
.Cheque o resultado
Se tudo estiver correto, você verá a página de boas-vindas do Laravel.
Adicionando um exemplo de código simples
Para testar, adicione uma rota simples em routes/web.php
para exibir "Hello ServBay!".
No arquivo routes/web.php
do projeto, insira ou altere:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Aqui você pode registrar rotas web para sua aplicação.
| Essas rotas são carregadas pelo RouteServiceProvider dentro do grupo que
| contém o middleware 'web'. Agora crie algo incrível!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Alteração ou adição desta linha
});
// ... outras rotas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Salve e acesse https://servbay-laravel-test.local
para ver Hello ServBay!
no navegador.
Exemplo de integração de banco de dados
O Laravel possui uma camada de abstração poderosa para bancos de dados (ORM Eloquent), facilitando interações com diferentes sistemas. O ServBay vem com MySQL, PostgreSQL, MongoDB, Redis e Memcached, ideais para desenvolvimento local.
Exemplo de banco NoSQL
O ServBay integra Redis e Memcached por padrão, incluindo as extensões PHP necessárias.
Exemplo com Memcached
Configurar
.env
Configure a conexão com Memcached no arquivo
.env
se ainda não o fez:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Porta padrão Memcached no ServBay
1
2
3Utilizar Memcached
Use a facade de cache do Laravel em rotas/controladores:
Em
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Armazena dados no cache por 10 minutos (600 segundos) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Busca dados do cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Dados do Memcached: " . $value; } else { return "Dados do Memcached não encontrados ou expirados."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Acesse
https://servbay-laravel-test.local/memcached-test
para testar.
Exemplo com Redis
Configurar
.env
Configure a conexão Redis no arquivo
.env
:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Padrão: sem senha para Redis no ServBay REDIS_PORT=6379 # Porta padrão Redis ServBay
1
2
3
4Observação: Se estiver testando Redis e Memcached, apenas um deve estar ativo no
.env
por vez (descomente somente o desejado).Utilizar Redis
Use a facade Redis ou Cache do Laravel nas rotas/controladores:
Em
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // Ou use Cache facade, desde que CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Utiliza a facade Redis Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Alternativamente: // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Dados do Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Acesse
https://servbay-laravel-test.local/redis-test
para testar.
Exemplo com banco relacional (MySQL & PostgreSQL)
O ServBay já inclui servidores MySQL e PostgreSQL. O ORM Eloquent no Laravel conecta facilmente ambos.
Antes de tudo, crie o banco de dados do projeto usando ferramentas disponíveis no ServBay (phpMyAdmin, Adminer, pgAdmin, ou via linha de comando). Crie o banco servbay_laravel_app
.
Agora, vamos usar migrations do Laravel para criar a tabela.
Criar arquivo de migration
Na raiz do projeto, execute:
bashphp artisan make:migration create_accounts_table --create=accounts
1Isso irá criar um arquivo de migration em
database/migrations
.Editar o arquivo de migration
Abra o arquivo criado (nome parecido com
YYYY_MM_DD_HHMMSS_create_accounts_table.php
), e edite o métodoup
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Executa as migrations. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Adiciona created_at e updated_at }); } /** * Reverte as migrations. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Salve o arquivo.
Rodar a migration
Execute na raiz do projeto para criar a tabela
accounts
:bashphp artisan migrate
1Se estiver tudo correto, vários tabelas padrão do Laravel serão criadas, incluindo
accounts
.
Exemplo MySQL
Configurar
.env
para MySQLNo
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Porta padrão MySQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Senha padrão MySQL ServBay
1
2
3
4
5
6Inserir dados de exemplo
Adicione uma rota em
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account adicionado no MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Acesse
https://servbay-laravel-test.local/mysql-add-account
para inserir dados.Ler dados de exemplo
Adicione uma rota para ler da tabela:
phpuse App\Models\Account; // Caso o modelo Account exista // Ou use diretamente a facade DB Route::get('/mysql-accounts', function () { // Usando DB facade $accounts = DB::table('accounts')->get(); // Ou Eloquent ORM (se existir modelo Account) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Acesse
https://servbay-laravel-test.local/mysql-accounts
para visualizar os dados.
Exemplo PostgreSQL
Configurar
.env
para PostgreSQLCaso queira usar PostgreSQL, ajuste o
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Porta padrão PostgreSQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Usuário padrão PostgreSQL DB_PASSWORD=password # Senha padrão PostgreSQL
1
2
3
4
5
6Notas: Após alterar o banco, faça as migrations novamente usando
php artisan migrate:refresh
ouphp artisan migrate
.Inserir dados de exemplo (PostgreSQL)
Adicione uma rota em
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account adicionado no PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Acesse
https://servbay-laravel-test.local/pgsql-add-account
para inserir dados.Ler dados de exemplo (PostgreSQL)
Adicione uma rota:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Acesse
https://servbay-laravel-test.local/pgsql-accounts
para visualizar os dados.
Conclusão
Com o ServBay, criar e rodar projetos Laravel localmente se torna um processo prático e rápido. O PHP, Composer, servidor web Caddy e diversos bancos de dados/cache já integrados eliminam barreiras de configuração. Em poucos passos você começa a desenvolver e testar aplicações, com flexibilidade para integração e validação de funções de banco/caching. O ServBay está comprometido em garantir uma experiência de desenvolvimento eficiente e acessível para desenvolvedores.
Se surgir qualquer dúvida ou problema, consulte a documentação oficial do ServBay ou busque apoio na comunidade.