Criando e Executando Projetos Laravel no ServBay
Visão Geral
O ServBay é um poderoso ambiente de desenvolvimento web local projetado especialmente para macOS, já integrando diversos pacotes populares como PHP, Node.js, Python, Go, Java, múltiplos bancos de dados (MySQL, PostgreSQL, MongoDB), serviços de cache (Redis, Memcached) e servidores web (Caddy, Nginx, Apache).
Este documento vai guiá-lo em como criar, configurar e executar rapidamente um projeto Laravel no ambiente ServBay. Usaremos o ambiente PHP, o gerenciador de pacotes Composer e os recursos avançados de gerenciamento de sites do ServBay para simplificar todo o processo.
O que é o Laravel?
Laravel é um dos mais famosos frameworks PHP open-source para aplicações web, criado por Taylor Otwell. Ele adota o padrão arquitetural MVC (Model-View-Controller) e oferece diversas funcionalidades prontas para facilitar tarefas comuns no desenvolvimento web, como autenticação de usuários, roteamento, gerenciamento de sessões, cache e operações de banco de dados. Laravel é notado por sua sintaxe elegante, um conjunto robusto de recursos e uma comunidade forte, tornando-o uma escolha ideal para construir aplicações web modernas e de fácil manutenção.
Principais Características e Benefícios do Laravel
- Sintaxe Elegante: Código limpo e expressivo, elevando a produtividade e legibilidade.
- Eloquent ORM: Implementação poderosa do padrão ActiveRecord, tornando as interações com bancos simples e intuitivas.
- Console Artisan: Inclui diversas ferramentas de linha de comando para migrações de banco, geração de código, testes e mais.
- Engine de Templates Blade: Sintaxe de templates intuitiva para construção de views dinâmicas.
- Ecossistema Rico: Ampla variedade de pacotes oficiais e de terceiros integráveis facilmente via Composer.
- Forte Suporte Comunitário: Comunidade ativa fornecendo tutoriais, recursos e soluções.
Vantagens de Usar o ServBay para Desenvolver com Laravel
ServBay oferece muitos benefícios para desenvolvedores Laravel:
- Ambiente Integrado: PHP em várias versões, Composer e bancos de dados/cache já vêm prontos, sem necessidade de instalação manual.
- Fácil Gerenciamento: Interface gráfica onde você troca facilmente versões do PHP, configura sites e gerencia serviços.
- Servidor Web Pré-configurado: Com Caddy otimizado para os principais frameworks PHP – incluindo Laravel –, a configuração é simplificada.
- Suporte HTTPS: Certificados SSL emitidos automaticamente para domínios
.local
pela CA do usuário do ServBay, permitindo HTTPS por padrão e um ambiente seguro semelhante ao de produção.
Criando um Projeto Laravel
O ServBay recomenda armazenar todos os seus projetos em /Applications/ServBay/www
para manter a organização e o gerenciamento centralizado.
Verifique o Composer Instalado
O ServBay já vem com o Composer instalado; não é preciso instalar separadamente. Para validar, abra o terminal e execute:
bashcomposer --version
1Se o comando retornar a versão, o Composer está pronto para uso.
Crie um Novo Projeto Laravel
Navegue até o diretório recomendado no terminal e utilize o Composer para criar o novo projeto, usando o nome
servbay-laravel-app
:bashcd /Applications/ServBay/www # Crie o diretório do projeto mkdir servbay-laravel-app # Entre no diretório cd servbay-laravel-app # Gere o projeto Laravel na pasta atual composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7O Composer baixará e instalará o Laravel e todas as suas dependências.
Acesse o Diretório do Projeto
Confirme que está no diretório raiz do novo projeto Laravel:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Configuração Inicial
Gerar a Chave do Aplicativo
O Laravel usa uma chave de aplicação para proteger sessões e dados criptografados. Execute o Artisan a partir do diretório raiz:
bashphp artisan key:generate
1O comando configura automaticamente o valor
APP_KEY
no seu arquivo.env
.Configure Variáveis de Ambiente (
.env
)O arquivo
.env
gerencia variáveis do projeto, como conexões de banco e URL do app. Abra-o no diretório raiz e ajuste conforme suas necessidades. Garanta que as seguintes configurações estejam corretas:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Este valor é gerado pelo php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Exemplo de configuração do banco (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 ServBay DB_PASSWORD=password # Senha padrão ServBay # Exemplo para cache/filas (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis padrão sem senha no ServBay REDIS_PORT=6379 # Exemplo para cache/filas (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
DB_*
,REDIS_*
ouMEMCACHED_*
conforme os serviços realmente usados. Usuário e senha padrão podem ser conferidos no painel ServBay.
Configurando o Servidor Web (Adicionando Site no ServBay)
A administração de sites do ServBay permite apontar seu domínio para o diretório public
do projeto Laravel.
Abra o Painel ServBay
Inicie o ServBay e acesse o painel.
Adicione um Novo Site
Acesse a área de ‘Sites’. Clique no botão adicionar (geralmente um
+
) para incluir um novo site.Preencha as Informações do Site
Siga o exemplo abaixo:
- Nome:
My First Laravel Dev Site
(qualquer nome fácil de identificar) - Domínio:
servbay-laravel-test.local
(como você quer acessar no navegador) - Tipo de Site:
PHP
- Versão do PHP: Escolha compatível com sua versão Laravel, como
8.3
- Diretório Root do Site:
/Applications/ServBay/www/servbay-laravel-app/public
(Importante: precisa apontar para a pastapublic
)
Para mais detalhes ou opções, consulte a documentação oficial do ServBay sobre Adicionando o Primeiro Site (procure a versão em inglês).
- Nome:
Salve e Aplique as Mudanças
Salve a configuração. O ServBay vai atualizar o servidor web (Caddy por padrão). Reinicie o serviço se for solicitado.
Verificando o Acesso Básico
Seu projeto já deve ser acessível pelo domínio configurado.
Abra o Navegador
Acesse
https://servbay-laravel-test.local
.Verifique o Resultado
Se tudo ocorreu bem, você verá a tela de boas-vindas do Laravel.
Adicionando um Exemplo de Código
Para uma validação prática, adicione um novo route com resposta “Hello ServBay!” em routes/web.php
.
Abra o arquivo e adicione ou modifique:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Rotas Web
|--------------------------------------------------------------------------
|
| Aqui você pode registrar rotas web para sua aplicação. Elas são carregadas
| pelo RouteServiceProvider dentro do grupo de middleware "web". Crie algo incrível!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Altere ou adicione esta linha
});
// ... outras rotas
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Salve e acesse novamente https://servbay-laravel-test.local
. O navegador mostrará Hello ServBay!
.
Exemplo de Integração com Bancos de Dados
O Laravel provê uma poderosa camada de abstração e ORM (Eloquent) para fácil integração com múltiplos bancos. O ServBay já inclui MySQL, PostgreSQL, MongoDB, Redis e Memcached para desenvolvimento local conveniente.
Exemplo de Banco NoSQL
O ServBay já traz Redis e Memcached prontos, com as extensões PHP já habilitadas.
Exemplo com Memcached
Configure o
.env
Inclua as informações no
.env
(caso não existam):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Porta padrão no ServBay
1
2
3Utilizando o Memcached
Em uma rota ou controller, faça uso do cache do Laravel:
Em
routes/web.php
adicione: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); // Recupera dados do cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Valor do Memcached: " . $value; } else { return "Valor do Memcached não existe ou expirou."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Visite
https://servbay-laravel-test.local/memcached-test
para testar.
Exemplo com Redis
Configure o
.env
Ajuste os dados do Redis se necessário:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis padrão sem senha no ServBay REDIS_PORT=6379 # Porta padrão do Redis no ServBay
1
2
3
4Atenção: Só um serviço de cache deve estar ativo via
CACHE_STORE
(descomente um e comente o outro).Utilizando o Redis
Para usar Redis com o facade Redis ou Cache:
Em
routes/web.php
adicione:phpuse Illuminate\Support\Facades\Redis; // Ou caso queira com Cache: use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Usando Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Ou usando Cache facade (se CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Valor do Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14Teste em
https://servbay-laravel-test.local/redis-test
.
Exemplo de Bancos Relacionais (MySQL & PostgreSQL)
O ServBay já disponibiliza MySQL e PostgreSQL rodando localmente. O ORM Eloquent facilita a conexão.
Primeiro, crie o banco servbay_laravel_app
usando uma ferramenta como phpMyAdmin, Adminer, pgAdmin (acessíveis pelo painel ServBay), ou pelo terminal.
Depois, use as migrações do Laravel para criar as tabelas.
Criando um Arquivo de Migração
No terminal, execute:
bashphp artisan make:migration create_accounts_table --create=accounts
1Um novo arquivo será criado em
database/migrations
.Edite a Migração
Defina as colunas de
accounts
assim:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Execute as migrações. */ 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 }); } /** * Reverta as migrações. */ 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.
Rodando as Migrações
Execute o comando para criar a tabela:
bashphp artisan migrate
1Se a configuração e o banco
servbay_laravel_app
estiverem corretos, a tabela e as tabelas padrão do Laravel serão criadas.
Exemplo com MySQL
Configuração do
.env
para MySQLAjuste o
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Porta padrão MySQL no ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Senha padrão MySQL ServBay
1
2
3
4
5
6Inserindo Dados de Exemplo
Em
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Conta adicionada ao MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Visite
https://servbay-laravel-test.local/mysql-add-account
.Lendo Dados de Exemplo
Em
routes/web.php
:phpuse App\Models\Account; // Se existir o modelo Account // Ou usar direto o facade DB Route::get('/mysql-accounts', function () { // Usando DB facade $accounts = DB::table('accounts')->get(); // Ou Eloquent ORM (se o modelo existir) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Veja os dados em
https://servbay-laravel-test.local/mysql-accounts
.
Exemplo com PostgreSQL
Configuração do
.env
para PostgreSQLPara usar PostgreSQL, edite o
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Porta padrão PostgreSQL no 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
6Observação: Após trocar de banco, rode novamente
php artisan migrate:refresh
ouphp artisan migrate
.Inserindo Dados no PostgreSQL
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' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Conta adicionada ao PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Insira um registro em
https://servbay-laravel-test.local/pgsql-add-account
.Lendo Dados do PostgreSQL
Em
routes/web.php
: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 listar os dados.
Conclusão
Com o ServBay, montar um ambiente local para criar e rodar projetos Laravel no macOS é fácil. A pré-integração de PHP, Composer, servidor web Caddy e múltiplos bancos/cache agiliza o processo. Em poucos passos, você pode iniciar um projeto, configurar o servidor web e começar a desenvolver, além de testar integrações com bancos e cache sem dificuldades. O foco do ServBay é oferecer uma experiência local eficiente e prática para desenvolvedores.
Para dúvidas ou problemas, consulte a documentação oficial ou peça ajuda à comunidade do ServBay.