Crear y ejecutar un proyecto Laravel en ServBay
Descripción general
ServBay es un entorno de desarrollo web local avanzado compatible con macOS y Windows. Integra múltiples paquetes populares, como PHP, Node.js, Python, Go, Java, varias bases de datos (MySQL, PostgreSQL, MongoDB), servicios de caché (Redis, Memcached) y servidores web (Caddy, Nginx, Apache).
Este documento te guía paso a paso en la creación, configuración y ejecución de un proyecto Laravel dentro del entorno ServBay. Aprovecharemos el entorno PHP incorporado de ServBay, el gestor de paquetes Composer y sus potentes funciones de administración de sitios web (anteriormente denominados “hostings”) para simplificar el proceso.
¿Qué es Laravel?
Laravel es un reconocido framework web PHP de código abierto creado por Taylor Otwell. Siguiendo el patrón arquitectónico MVC (Modelo-Vista-Controlador), ofrece numerosas funcionalidades listas para usar que facilitan tareas comunes del desarrollo web, como autenticación de usuarios, enrutado, gestión de sesiones, almacenamiento en caché y operaciones de base de datos. Laravel destaca por su sintaxis elegante, sus completas características y el fuerte soporte de su comunidad, lo que lo convierte en una opción ideal para construir aplicaciones web modernas y mantenibles.
Principales características y ventajas de Laravel
- Sintaxis elegante: Código claro, expresivo y fácil de leer, lo que incrementa la productividad y mantenibilidad.
- Eloquent ORM: Implementación poderosa de ActiveRecord que simplifica la interacción con la base de datos.
- Consola Artisan: Múltiples herramientas CLI para migraciones de base de datos, generación de código, ejecución de pruebas, entre otras tareas.
- Blade (Motor de plantillas): Sintaxis sencilla para construir vistas dinámicas.
- Ecosistema amplio: Gran cantidad de paquetes oficiales y de terceros, fácilmente integrables mediante Composer.
- Comunidad activa: Gran cantidad de recursos, tutoriales y soluciones gracias a su comunidad vibrante.
Ventajas de desarrollar proyectos Laravel con ServBay
ServBay ofrece grandes beneficios para desarrolladores Laravel:
- Entorno integrado: ServBay incluye varios PHP, Composer y servicios de base de datos/caché de uso común listos para usar, evitando instalaciones separadas.
- Administración sencilla: Desde la interfaz gráfica de ServBay puedes cambiar versiones de PHP, gestionar la configuración de sitios y controlar servicios fácilmente.
- Servidor web preconfigurado: ServBay utiliza Caddy y está optimizado de fábrica para frameworks PHP como Laravel, simplificando el proceso de ajuste del servidor web.
- Soporte HTTPS: ServBay configura automáticamente certificados SSL para dominios terminados en
.local
, emitidos por ServBay User CA. Así, tendrás HTTPS activo por defecto, logrando un ambiente de desarrollo seguro y similar al productivo.
Crear un proyecto Laravel
ServBay recomienda que almacenes tus proyectos de sitios web en estos directorios para mantener una estructura organizada:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Verifica que Composer esté instalado
ServBay incluye Composer por defecto, por lo que no es necesario instalarlo aparte. Puedes comprobarlo ejecutando en la terminal:
bashcomposer --version
1Si ves el número de versión, Composer está listo.
Crear un nuevo proyecto Laravel
Abre la terminal, navega al directorio sugerido y crea un nuevo proyecto con Composer, usando
servbay-laravel-app
como nombre del directorio:macOS:
bashcd /Applications/ServBay/www # Crear el directorio del proyecto mkdir servbay-laravel-app # Acceder al directorio del proyecto cd servbay-laravel-app # Crear el proyecto Laravel en el directorio actual composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Crear el directorio del proyecto mkdir servbay-laravel-app # Acceder al directorio del proyecto cd servbay-laravel-app # Crear el proyecto Laravel en el directorio actual composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer descargará e instalará Laravel y todas sus dependencias.
Ingresar al directorio del proyecto
Asegúrate de que la terminal apunte a la raíz del proyecto recién creado:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
Configuración inicial
Generar la clave de aplicación
Laravel usa una clave para proteger sesiones y datos cifrados. Genera la clave ejecutando el siguiente comando en la raíz del proyecto:
Ruta de la raíz del proyecto:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1Este comando establecerá el valor de
APP_KEY
en el archivo.env
.- macOS:
Configura las variables de entorno (
.env
)Laravel gestiona las configuraciones mediante el archivo
.env
, allí defines conexiones a bases de datos, URL de la app y más. Ábrelo en la raíz del proyecto y ajusta las siguientes configuraciones básicas según tus necesidades:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Valor generado por php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Ejemplo de configuración de base de datos (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nombre de la base de datos que usarás DB_USERNAME=root # Usuario por defecto de ServBay DB_PASSWORD=password # Contraseña por defecto de ServBay # Configuración de cache/colas ejemplo (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis viene sin contraseña por defecto en ServBay REDIS_PORT=6379 # Configuración de cache/colas ejemplo (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
26Nota: Ajusta los campos
DB_*
,REDIS_*
oMEMCACHED_*
según el servicio real que utilices. Puedes consultar los valores predeterminados de usuario y contraseña en el panel de control de ServBay.
Configurar el servidor web (agregar un sitio en ServBay)
Administra la configuración del servidor web mediante ServBay, apuntando tu dominio al directorio public
de tu proyecto Laravel.
Abrir el panel de control de ServBay
Inicia la aplicación ServBay y abre su panel de control.
Agregar un nuevo sitio
Dirígete a la sección ‘Sitios’ en el panel y haz clic en el botón de añadir (generalmente es el icono
+
o similar).Completar los datos del sitio
Ejemplo de configuración:
Nombre:
My First Laravel Dev Site
(algo descriptivo para ti)Dominio:
servbay-laravel-test.local
(dominio para acceder vía navegador)Tipo de sitio:
PHP
Versión de PHP: Elige la versión compatible con tu Laravel, p.ej.
8.3
.Raíz del sitio (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(Importante: Apunta siempre al subdirectorio
public
de tu proyecto Laravel.)- macOS:
Para más detalles y opciones, revisa la guía oficial sobre agregar el primer sitio web (busca el enlace en inglés).
Guardar y aplicar los cambios
Guarda la configuración. ServBay actualizará la configuración del servidor web (por defecto es Caddy). Si te pide reiniciar el servidor web, hazlo.
Comprobar acceso básico
En este punto, deberías poder acceder a tu proyecto Laravel usando el dominio configurado.
Abre el navegador
Escribe el dominio, p.ej.
https://servbay-laravel-test.local
.Verifica el resultado
Si todo está bien, deberías ver la página de bienvenida de Laravel.
Agregar un código de ejemplo sencillo
Para verificar visualmente, añade una ruta básica en el archivo routes/web.php
que muestre "Hello ServBay!".
Localiza routes/web.php
y añade o modifica el siguiente contenido:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Aquí puedes registrar rutas web para tu aplicación. Estas rutas son
| cargadas por el RouteServiceProvider dentro de un grupo que contiene el middleware "web". ¡Crea algo increíble!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Añade o modifica esta línea
});
// ... otras rutas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Guarda el archivo y ve nuevamente a https://servbay-laravel-test.local
. Deberías ver el mensaje Hello ServBay!
en el navegador.
Ejemplo de integración con base de datos
Laravel incluye un potente ORM (Eloquent) y capa de abstracción para interactuar con múltiples bases de datos. ServBay ya trae MySQL, PostgreSQL, MongoDB, Redis y Memcached preinstalados para pruebas locales.
Ejemplo con base de datos NoSQL
ServBay incluye Redis y Memcached, y las extensiones de PHP necesarias ya están activas.
Ejemplo con Memcached
Configura
.env
Agrega los datos de conexión de Memcached al archivo
.env
(si no lo hiciste antes):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Puerto por defecto de Memcached en ServBay
1
2
3Usa Memcached
Utiliza el facade de caché de Laravel para operar con Memcached:
En
routes/web.php
añade esta ruta:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Guarda datos en caché por 10 minutos (600 segundos) Cache::put('servbay_memcached_key', '¡Hola desde Memcached en ServBay!', 600); // Obtén datos de la caché $value = Cache::get('servbay_memcached_key'); if ($value) { return "Datos de Memcached: " . $value; } else { return "Los datos en Memcached no existen o expiraron."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Visita
https://servbay-laravel-test.local/memcached-test
para probar.
Ejemplo con Redis
Configura
.env
Configura la conexión a Redis en el archivo
.env
:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Sin contraseña en Redis por defecto en ServBay REDIS_PORT=6379 # Puerto por defecto de Redis en ServBay
1
2
3
4Nota: Si vas a probar sólo uno de los servicios, asegúrate que
CACHE_STORE
esté asignado al seleccionado y el otro esté comentado.Usa Redis
Puedes interactuar con Redis usando el facade Redis o Cache de Laravel:
Agrega una ruta a
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // O usa Cache si CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Usar Redis facade Redis::set('servbay_redis_key', '¡Hola desde Redis en ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // O usando el facade Cache // Cache::put('servbay_redis_key', '¡Hola desde Redis en ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Datos de Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Ve a
https://servbay-laravel-test.local/redis-test
para comprobar.
Ejemplo con bases de datos relacionales (MySQL & PostgreSQL)
ServBay incluye servidores MySQL y PostgreSQL. Laravel y Eloquent permiten conectar y trabajar fácilmente con ellos.
Primero, crea una base de datos para tu proyecto usando alguna herramienta de administración incluida en ServBay (phpMyAdmin, Adminer, pgAdmin) o la línea de comandos. El nombre sugerido: servbay_laravel_app
.
Luego, genera la estructura de las tablas con las migraciones de Laravel.
Crear archivo de migración
Ejecuta este comando en la raíz del proyecto:
bashphp artisan make:migration create_accounts_table --create=accounts
1Se creará un archivo de migración en
database/migrations
.Editar el archivo de migración
Edita el archivo recién creado (el nombre será algo como
YYYY_MM_DD_HHMMSS_create_accounts_table.php
), y define la estructura de la tabla en el métodoup
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Ejecutar las migraciones. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Añade las columnas created_at y updated_at }); } /** * Revertir las migraciones. */ 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
29Guarda el archivo.
Ejecuta la migración
Ejecuta en la raíz del proyecto:
bashphp artisan migrate
1Si la configuración de la base de datos es correcta y el esquema
servbay_laravel_app
existe, se crearán la tablaaccounts
y varias tablas predeterminadas de Laravel (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
, etc.).
Ejemplo con MySQL
Configura
.env
para MySQLVerifica la sección de base de datos en
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Puerto por defecto de MySQL en ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Contraseña por defecto de MySQL en ServBay
1
2
3
4
5
6Insertar datos de prueba
Agrega una ruta en
routes/web.php
para insertar registros enaccounts
: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 '¡Cuenta añadida en MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Accede a
https://servbay-laravel-test.local/mysql-add-account
para insertar un registro.Leer datos de prueba
Agrega una ruta en
routes/web.php
para consultar datos enaccounts
:phpuse App\Models\Account; // Si creaste el modelo Account // O simplemente usa el facade DB Route::get('/mysql-accounts', function () { // Usando DB facade $accounts = DB::table('accounts')->get(); // O usando Eloquent (si el modelo existe) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Accede a
https://servbay-laravel-test.local/mysql-accounts
para ver los datos de la tabla.
Ejemplo con PostgreSQL
Configura
.env
para PostgreSQLSi prefieres PostgreSQL, ajusta la conexión en
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Puerto por defecto de PostgreSQL en ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Usuario por defecto de PostgreSQL en ServBay DB_PASSWORD=password # Contraseña por defecto de PostgreSQL en ServBay
1
2
3
4
5
6Nota: Al cambiar la base de datos, puede ser necesario ejecutar nuevamente
php artisan migrate:refresh
ophp artisan migrate
para crear las tablas en PostgreSQL.Insertar datos de prueba (PostgreSQL)
Añade una ruta en
routes/web.php
para insertar un registro: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 '¡Cuenta añadida en PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Accede a
https://servbay-laravel-test.local/pgsql-add-account
para probar la inserción.Consultar datos de prueba (PostgreSQL)
Agrega una ruta en
routes/web.php
para consultar los registros:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Ve a
https://servbay-laravel-test.local/pgsql-accounts
para ver los datos.
Conclusión
ServBay te permite crear fácilmente un entorno local de desarrollo para proyectos Laravel. La integración de PHP, Composer, el servidor web Caddy y múltiples sistemas de bases de datos y caché simplifica enormemente la configuración. Con solo unos pasos, puedes crear un nuevo proyecto, configurar el servidor web e iniciar tu desarrollo, integrando y probando funcionalidades de bases de datos y caché de manera ágil. ServBay está diseñado para brindarte una experiencia cómoda, rápida y eficiente como desarrollador.
Si tienes dudas o problemas, consulta la documentación oficial de ServBay o solicita ayuda en la comunidad.