Een Laravel-project bouwen en draaien in ServBay
Overzicht
ServBay is een krachtige lokale webontwikkelomgeving voor macOS en Windows, waarin populaire softwarepakketten zijn geïntegreerd zoals PHP, Node.js, Python, Go, Java, verschillende databases (MySQL, PostgreSQL, MongoDB), cache services (Redis, Memcached) en webservers (Caddy, Nginx, Apache).
In deze documentatie leer je hoe je snel een Laravel-project aanmaakt, configureert en draait in ServBay. We maken gebruik van de ingebouwde PHP-omgeving, Composer-package manager en ServBay's uitgebreide sitebeheermogelijkheden om het proces te vereenvoudigen.
Wat is Laravel?
Laravel is een veelgebruikte open source PHP-webapplicatieframework, ontwikkeld door Taylor Otwell. Het volgt het MVC (Model-View-Controller) patroon en levert tal van kant-en-klare functionaliteiten die veelvoorkomende webontwikkelingstaken vereenvoudigen, zoals authenticatie, routing, sessiebeheer, caching en databaseoperaties. Laravel staat bekend om zijn elegante syntax, uitgebreide ecosysteem en sterke communitysupport, en is uitermate geschikt voor het bouwen van moderne, onderhoudbare webapplicaties.
Belangrijkste functies en voordelen van Laravel
- Elegante syntax: Schone en expressieve code die ontwikkelingssnelheid en leesbaarheid bevordert.
- Eloquent ORM: Een krachtige ActiveRecord-implementatie die database-interactie intuïtief maakt.
- Artisan Console: Veel handige commandoregeltools voor migraties, codegeneratie, testen en meer.
- Blade-template-engine: Eenvoudige en flexibele syntax voor het bouwen van dynamische views.
- Uitgebreid ecosysteem: Groot aanbod aan officiële en externe pakketten die eenvoudig via Composer te integreren zijn.
- Sterke community: Actieve developers bieden veel resources, tutorials en oplossingen.
Voordelen van Laravel-ontwikkeling in ServBay
ServBay biedt Laravel-ontwikkelaars tal van voordelen:
- Geïntegreerde omgeving: ServBay wordt geleverd met meerdere PHP-versies, Composer en populaire databases en cacheservices, zonder dat aparte installatie nodig is.
- Eenvoudig beheer: Via de ServBay GUI kun je PHP-versies wisselen, sites beheren en services starten/stoppen.
- Voorgeconfigureerde webserver: Caddy is standaard geoptimaliseerd voor populaire PHP-frameworks zoals Laravel, waardoor serverconfiguratie wordt vereenvoudigd.
- HTTPS-ondersteuning: ServBay configureert automatisch SSL-certificaten (ServBay User CA) voor
.localdomeinen, zodat je lokaal veilig kunt ontwikkelen in een productienabije setting.
Een Laravel-project aanmaken
ServBay raadt aan om je websites in onderstaande directories te plaatsen; dit houdt je bestandstructuur overzichtelijk:
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
Composer controleren
Composer is bij installatie geïntegreerd in ServBay, verdere installatie is niet nodig. Je kunt Composer testen via de terminal:
bashcomposer --version1Als de versie zichtbaar wordt, is Composer klaar voor gebruik.
Nieuw Laravel-project aanmaken
Open een terminal, navigeer naar de aanbevolen ServBay-website directory en maak een nieuw Laravel-project. Gebruik de naam
servbay-laravel-appvoor de directory:macOS:
bashcd /Applications/ServBay/www # Maak de projectdirectory mkdir servbay-laravel-app # Ga naar de projectdirectory cd servbay-laravel-app # Maak het Laravel-project aan in de huidige directory composer create-project --prefer-dist laravel/laravel .1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Maak de projectdirectory mkdir servbay-laravel-app # Ga naar de projectdirectory cd servbay-laravel-app # Maak het Laravel-project aan in de huidige directory composer create-project --prefer-dist laravel/laravel .1
2
3
4
5
6
7Composer downloadt en installeert Laravel en alle benodigde afhankelijkheden.
Navigeer naar je project-directory
Zorg dat je terminal in de root van het nieuwe Laravel-project staat:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app1
Initieel configureren
Applicatiesleutel genereren
Laravel gebruikt een app-sleutel voor het beveiligen van sessies en encryptie. Genereer deze in de projectmap via Artisan:
Projectmap:
- macOS:
/Applications/ServBay/www/servbay-laravel-app - Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate1Deze opdracht genereert en vult de
APP_KEYin je.envbestand.- macOS:
Omgevingsvariabelen (.env) configureren
Laravel beheert projectinstellingen via
.env, bijvoorbeeld databaseverbinding, app-URL, enzovoorts. Open het.envbestand in de projectmap en pas onderstaande basisinstellingen aan:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Deze waarde is gegenereerd door php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Voorbeeld database-configuratie (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Gewenste databasenaam DB_USERNAME=root # Standaard gebruiker ServBay DB_PASSWORD=password # Standaard wachtwoord ServBay # Voorbeeld cache/queue-configuratie (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay Redis heeft standaard geen wachtwoord REDIS_PORT=6379 # Voorbeeld cache/queue-configuratie (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=112111
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Let op: Controleer eventueel specifieke instellingen voor de database of services (
DB_*,REDIS_*,MEMCACHED_*). De standaard gebruikersnaam en wachtwoord vind je in het ServBay-configuratiescherm.
Webserver configureren (site toevoegen in ServBay)
Gebruik ServBay's sitebeheer voor het configureren van je webserver. Verwijs je domeinnaam naar de public directory van je Laravel-project.
Open ServBay-configuratiescherm
Start ServBay en open het dashboard.
Nieuwe site toevoegen
Ga naar het tabblad 'Websites' in het ServBay-dashboard. Klik op de toevoegen-knop (
+of een vergelijkbaar icoon) en voeg een nieuwe site toe.Site-informatie invullen
Vul de configuratie in zoals hieronder:
Naam:
My First Laravel Dev Site(herkenbare naam)Domein:
servbay-laravel-test.local(domeinnaam voor de browser)Site Type:
PHPPHP-versie: Geschikte versie voor Laravel, bijvoorbeeld
8.3.Site Root:
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public - Windows:
C:\ServBay\www\servbay-laravel-app\public
(Belangrijk: Verwijs altijd naar de
publicsubdirectory binnen de projectmap!)- macOS:
Raadpleeg voor aanvullende uitleg de officiële ServBay-documentatie over het toevoegen van je eerste site (zo mogelijk Engelstalige pagina gebruiken).
Opslaan en wijzigingen toepassen
Bewaar de configuratie. ServBay werkt automatisch de webserverconfiguratie bij (standaard via Caddy). Herstart indien gevraagd de webserver.
Basis toegang verifiëren
Je Laravel-project is nu benaderbaar via de opgegeven domeinnaam.
Open de browser
Voer het domein in, bijvoorbeeld
https://servbay-laravel-test.local.Resultaat bekijken
Als alles klopt zie je de Laravel-welkomstpagina.
Eenvoudige voorbeeldcode toevoegen
Om te testen voeg je in het bestand routes/web.php een route toe die "Hello ServBay!" toont.
Zoek het bestand routes/web.php op en voeg onderstaande toe of wijzig:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Hier kun je web-routes registreren voor je applicatie.
| Deze routes worden geladen door de RouteServiceProvider binnen een
| groep die de "web" middleware bevat. Maak nu iets moois!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Deze regel toevoegen of wijzigen
});
// ... overige routes1
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
Sla het bestand op en ga terug naar https://servbay-laravel-test.local. Je ziet nu "Hello ServBay!" in je browser.
Voorbeelden database-integratie
Laravel biedt een krachtige database-abstractielaag (ORM, Eloquent) voor eenvoudige interactie met verschillende databases. ServBay wordt geleverd met MySQL, PostgreSQL, MongoDB, Redis, Memcached, zodat je lokaal kunt testen.
NoSQL-database voorbeelden
ServBay integreert standaard Redis en Memcached, inclusief de benodigde PHP-extensies.
Memcached voorbeeld
.envinstellenVoeg de Memcached-instellingen toe (indien nog niet aanwezig):
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Standaard Memcached-poort in ServBay1
2
3Gebruik Memcached
Gebruik Laravel’s cache-facade in je routes of controllers:
Voeg in
routes/web.phpdeze voorbeeldroute toe:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Bewaar data in de cache, 10 minuten geldig (600 seconden) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Haal data uit de cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcached-data: " . $value; } else { return "Memcached-data ontbreekt of is verlopen."; } });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Test via
https://servbay-laravel-test.local/memcached-test.
Redis voorbeeld
.envinstellenVoeg de Redis-instellingen toe:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Standaard geen wachtwoord voor Redis in ServBay REDIS_PORT=6379 # Standaard Redis-poort in ServBay1
2
3
4Let op: Activeer slechts één cache service per keer via
CACHE_STORE(de andere kun je uitcommentariëren).Gebruik Redis
Gebruik Laravel’s Redis- of Cache-facade:
Voeg in
routes/web.phpdeze voorbeeldroute toe:phpuse Illuminate\Support\Facades\Redis; // Of gebruik de Cache facade, mits CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Gebruik Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Of gebruik Cache facade (indien actief) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Redis-data: " . $value_redis; });1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Test via
https://servbay-laravel-test.local/redis-test.
Relationele database voorbeelden (MySQL & PostgreSQL)
ServBay is standaard uitgerust met MySQL en PostgreSQL servers. Laravel’s Eloquent ORM maakt het eenvoudig om verbinding te maken.
Maak eerst een database, bijvoorbeeld servbay_laravel_app, via ServBay’s beheertools (phpMyAdmin, Adminer, pgAdmin) of via de terminal.
Daarna maken we een migratie aan voor de database tabellen.
Migratie-bestand aanmaken
Maak via Artisan een nieuw migratiebestand:
bashphp artisan make:migration create_accounts_table --create=accounts1In
database/migrationsverschijnt het nieuwe migratiebestand.Migratiebestand bewerken
Open het bestand (bijv.
YYYY_MM_DD_HHMMSS_create_accounts_table.php) en definieer de structuur van deaccountstabel:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Voer de migraties uit. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Voeg created_at en updated_at kolommen toe }); } /** * Draai de migraties terug. */ 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
29Sla het bestand op.
Migratie uitvoeren
Voer de migratie uit om de
accountstabel (en standaard Laravel tabellen) aan te maken:bashphp artisan migrate1Als de database correct geconfigureerd is en de database
servbay_laravel_appbestaat, worden de tabellen aangemaakt.
MySQL voorbeeld
.envinstellen voor MySQLPas de
DB_instellingen in.envaan:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Standaard MySQL-poort in ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Standaard MySQL-wachtwoord ServBay1
2
3
4
5
6Voorbeelddata toevoegen
Voeg in
routes/web.phpeen route toe om gegevens in deaccountstabel te schrijven: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 toegevoegd aan MySQL!'; });1
2
3
4
5
6
7
8
9
10
11Kies
https://servbay-laravel-test.local/mysql-add-accountom data toe te voegen.Data uitlezen
Voeg in
routes/web.phpeen route toe om data uit deaccountstabel te halen:phpuse App\Models\Account; // indien Account-model bestaat // Of gebruik direct de DB facade Route::get('/mysql-accounts', function () { // Via DB facade $accounts = DB::table('accounts')->get(); // Of via Eloquent ORM (indien beschikbaar) // $accounts = Account::all(); return $accounts; });1
2
3
4
5
6
7
8
9
10
11
12Ga naar
https://servbay-laravel-test.local/mysql-accountsom de data te bekijken.
PostgreSQL voorbeeld
.envinstellen voor PostgreSQLGebruik PostgreSQL door je
.envals volgt aan te passen:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Standaard PostgreSQL-poort in ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Standaard PostgreSQL-gebruiker DB_PASSWORD=password # Standaard PostgreSQL-wachtwoord1
2
3
4
5
6Let op: Na het wisselen van database kun je migraties opnieuw uitvoeren (
php artisan migrate:refreshofphp artisan migrate).Voorbeelddata toevoegen (PostgreSQL)
Voeg in
routes/web.phpeen route toe om data in deaccountstabel te schrijven: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 toegevoegd aan PostgreSQL!'; });1
2
3
4
5
6
7
8
9
10
11Ga naar
https://servbay-laravel-test.local/pgsql-add-accountom data toe te voegen.Data uitlezen (PostgreSQL)
Voeg in
routes/web.phpeen route toe om data uit deaccountstabel te halen:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });1
2
3
4
5
6Ga naar
https://servbay-laravel-test.local/pgsql-accountsom de data te bekijken.
Samenvatting
Met ServBay zet je eenvoudig een lokale ontwikkelomgeving op voor het maken en beheren van Laravel-projecten. Dankzij de integratie van PHP, Composer, Caddy webserver, diverse databases en cacheservices wordt het inrichten van je ontwikkelomgeving sterk vereenvoudigd. In slechts enkele stappen maak je een nieuw Laravel-project, configureer je de webserver en kun je meteen beginnen, inclusief snelle database- en cache-integratie. ServBay focust op een efficiënte, toegankelijke ervaring voor ontwikkelaars.
Kom je ergens niet uit? Raadpleeg de officiële ServBay-documentatie of vraag hulp in de community.
