Laravel-Projekt in ServBay erstellen und ausführen
Überblick
ServBay ist eine leistungsstarke lokale Web-Entwicklungsumgebung, die speziell für macOS entwickelt wurde und zahlreiche beliebte Softwarepakete integriert – darunter PHP, Node.js, Python, Go, Java, verschiedene Datenbanken (MySQL, PostgreSQL, MongoDB), Caching-Services (Redis, Memcached) sowie Webserver wie Caddy, Nginx und Apache.
Dieses Dokument zeigt Ihnen, wie Sie ein Laravel-Projekt mit ServBay schnell erstellen, konfigurieren und ausführen. Wir greifen dazu auf die integrierte PHP-Umgebung, den Composer-Paketmanager sowie das leistungsfähige Seitenverwaltungs-Feature (früher als "Hosts" bezeichnet) von ServBay zurück, um den gesamten Prozess zu vereinfachen.
Was ist Laravel?
Laravel ist ein sehr beliebtes, quelloffenes PHP-Webframework, entwickelt von Taylor Otwell. Es folgt dem MVC-Architekturmuster (Model-View-Controller) und bietet zahlreiche Funktionen "out-of-the-box", die häufige Aufgaben in der Webentwicklung wie Benutzer-Authentifizierung, Routing, Sitzungsmanagement, Caching und Datenbankoperationen vereinfachen. Laravel ist besonders für seine elegante Syntax, den umfangreichen Funktionsumfang und die starke Community-Beteiligung bekannt – ideal für die Entwicklung moderner, wartbarer Webanwendungen.
Hauptmerkmale und Vorteile von Laravel
- Elegante Syntax: Sauberer, ausdrucksstarker Code für bessere Lesbarkeit und Produktivität.
- Eloquent ORM: Ein leistungsfähiges ActiveRecord-Implementierung, die Datenbankinteraktionen einfach und intuitiv gestaltet.
- Artisan-Konsole: Viele nützliche CLI-Werkzeuge für Migrationen, Code-Generierung, Tests und mehr.
- Blade-Template-Engine: Klare, effiziente Template-Syntax zum Aufbau dynamischer Views.
- Reiches Ökosystem: Große Auswahl offizieller und inoffizieller Pakete, leicht per Composer integrierbar.
- Starke Community: Eine aktive Gemeinschaft bietet reichlich Ressourcen, Tutorials und Lösungen.
Vorteile der Laravel-Entwicklung mit ServBay
ServBay bietet für Laravel-Entwickler zahlreiche Vorteile:
- Integrierte Umgebung: ServBay liefert vorinstallierte PHP-Versionen, Composer sowie gängige Datenbanken und Caching-Services – keine separate Installation oder Konfiguration nötig.
- Einfache Verwaltung: Über die grafische Oberfläche von ServBay können Sie PHP-Versionen wechseln, Websites verwalten und Dienste starten/stoppen.
- Vorkonfigurierter Webserver: ServBay setzt standardmäßig auf Caddy, der bereits für gängige PHP-Frameworks (u.a. Laravel) optimiert ist – das vereinfacht die Webserver-Konfiguration.
- HTTPS-Unterstützung: ServBay stellt für .local-Domains automatisch SSL-Zertifikate einer eigenen User CA aus, HTTPS ist standardmäßig aktiviert – das sorgt für mehr Sicherheit und ein produktionsnahes Entwicklungserlebnis.
Ein Laravel-Projekt erstellen
ServBay empfiehlt, Ihre Projekte gebündelt im Verzeichnis /Applications/ServBay/www
zu speichern – das sorgt für Ordnung und eine einheitliche Verwaltung.
Überprüfen, dass Composer installiert ist
Composer ist bei ServBay bereits mit an Bord – keine gesonderte Installation erforderlich. Überprüfen Sie die Verfügbarkeit im Terminal:
bashcomposer --version
1Wird die Versionsnummer erfolgreich angezeigt, ist Composer bereit.
Neues Laravel-Projekt anlegen
Öffnen Sie das Terminal, wechseln Sie in das empfohlene ServBay-Webverzeichnis und erstellen Sie ein neues Laravel-Projekt (beispielhaft
servbay-laravel-app
genannt):bashcd /Applications/ServBay/www # Projektverzeichnis anlegen mkdir servbay-laravel-app # Ins Verzeichnis wechseln cd servbay-laravel-app # Laravel-Projekt via Composer in das aktuelle Verzeichnis erstellen composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer lädt und installiert Laravel samt Abhängigkeiten.
In das Projektverzeichnis wechseln
Stellen Sie sicher, dass Sie sich im Projektstamm befinden:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Initiale Konfiguration
App-Key generieren
Laravel benötigt einen Anwendungsschlüssel zur Absicherung von Sessions und Datenverschlüsselung. Im Stammverzeichnis (
/Applications/ServBay/www/servbay-laravel-app
) generieren Sie den Key mit:bashphp artisan key:generate
1Damit wird der Wert für
APP_KEY
in Ihrer.env
-Datei automatisch gesetzt.Umgebungsvariablen (
.env
) konfigurierenLaravel nutzt
.env
für Umgebungsvariablen wie Datenbankzugang oder App-URL. Öffnen Sie die Datei im Projektstamm und passen Sie die Einstellungen an. Achten Sie darauf, folgende Grundkonfiguration zu ergänzen:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Dieser Wert wird von php artisan key:generate erzeugt APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Beispiel für die Datenbankkonfiguration (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Ihr gewünschter DB-Name DB_USERNAME=root # Standardbenutzer für ServBay DB_PASSWORD=password # Standardpasswort für ServBay # Beispiel für Cache/Queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Standardmäßig kein Passwort für ServBay-Redis REDIS_PORT=6379 # Beispiel für Cache/Queue (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
26Hinweis: Je nach verwendeter Datenbank oder Service müssen Sie ggf.
DB_*
,REDIS_*
bzw.MEMCACHED_*
anpassen. Standarddaten für ServBay finden Sie im ServBay Control Panel.
Webserver konfigurieren (Website in ServBay hinzufügen)
Über die Websiteverwaltung von ServBay richten Sie den Webserver ein und verlinken Ihre Domain auf das public
-Verzeichnis des Laravel-Projekts.
ServBay Control Panel öffnen
Starten Sie die ServBay-App und öffnen Sie das Panel.
Neue Website hinzufügen
Wechseln Sie im Control Panel zum Bereich „Websites“. Klicken Sie auf Hinzufügen (meist ein
+
oder ein ähnliches Symbol).Websitedaten eingeben
Tragen Sie beispielhaft folgende Angaben ein:
- Name:
My First Laravel Dev Site
(zur einfachen Identifizierung) - Domain:
servbay-laravel-test.local
(für den Browserzugriff) - Site-Typ:
PHP
- PHP-Version: Wählen Sie die für Ihr Laravel-Projekt passende PHP-Version, z. B.
8.3
. - Site Root:
/Applications/ServBay/www/servbay-laravel-app/public
(Wichtig: unbedingt auf daspublic
-Unterverzeichnis zeigen!)
Weitere Einzelheiten finden Sie im offiziellen ServBay-Handbuch unter Add Your First Website (englisch).
- Name:
Änderungen speichern und anwenden
Speichern Sie die Website-Konfiguration. ServBay aktualisiert die Webserver-Einstellungen (standardmäßig Caddy) automatisch. Wenn ein Neustart des Webservers gefordert wird, führen Sie diesen wie angezeigt durch.
Grundlegenden Zugriff testen
Ihr Laravel-Projekt sollte nun über die konfigurierte Domain erreichbar sein.
Browser öffnen
Geben Sie in der Adresszeile Ihres Browsers die konfigurierte Domain ein, z. B.
https://servbay-laravel-test.local
.Ergebnis prüfen
Wenn alles stimmt, erscheint die Laravel-Willkommensseite.
Einfaches Beispiel ergänzen
Zur Überprüfung können Sie im File routes/web.php
einen einfachen Route-Handler einfügen, der „Hello ServBay!“ ausgibt.
Öffnen Sie hierfür das File routes/web.php
und ergänzen oder verändern Sie diese Zeile:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Hier können Sie Webrouten für Ihre Anwendung definieren. Diese
| Routen werden vom RouteServiceProvider geladen, der die „web“-Middleware-Gruppe verwendet. Legen Sie hier los!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Diese Zeile ergänzen oder ändern
});
// ... weitere Routen
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Speichern Sie die Datei und testen Sie die URL https://servbay-laravel-test.local
. Die Ausgabe sollte jetzt Hello ServBay!
sein.
Datenbank-Integration: Beispiele
Laravel stellt eine umfangreiche Datenbankabstraktion und das ORM Eloquent bereit. ServBay bringt MySQL, PostgreSQL, MongoDB, Redis und Memcached vorkonfiguriert mit – ideal für lokale Tests.
NoSQL-Datenbanken
Redis und Memcached sind in ServBay mitsamt PHP-Extension vorinstalliert.
Memcached Beispiel
.env
konfigurierenHinterlegen Sie die Verbindungseinstellungen für Memcached, falls noch nicht geschehen:
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Standard-Port für Memcached unter ServBay
1
2
3Memcached verwenden
Nutzen Sie in Ihren Routen oder Controllern das Cache Facade von Laravel für Memcached:
Beispielroute in
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Daten für 10 Minuten (600 Sek.) im Cache speichern Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Abfrage aus dem Cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcached-Daten: " . $value; } else { return "Memcached-Daten nicht vorhanden oder bereits abgelaufen."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Rufen Sie zur Probe
https://servbay-laravel-test.local/memcached-test
im Browser auf.
Redis Beispiel
.env
konfigurierenPassen Sie – sofern nicht schon geschehen – die Redis-Konfiguration an:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Standardmäßig kein Passwort für ServBay-Redis REDIS_PORT=6379 # Standardport für Redis unter ServBay
1
2
3
4Hinweis: Nutzen Sie Memcached und Redis parallel, stellen Sie sicher, dass in
.env
nur eine Variante unterCACHE_STORE
aktiv ist (die andere auskommentiert).Redis verwenden
Sie können mit dem Redis Facade oder Cache Facade von Laravel mit Redis interagieren:
Beispielroute in
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // Alternativ, falls CACHE_STORE=redis aktiv ist: // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Mit Redis Facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Alternativ mit Cache Facade (bei aktivem CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Redis-Daten: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Testen Sie dies unter
https://servbay-laravel-test.local/redis-test
.
Relationale Datenbanken (MySQL & PostgreSQL)
ServBay bringt MySQL und PostgreSQL direkt mit. Der Einsatz von Eloquent ORM ist einfach.
Zuerst sollten Sie die Datenbank für das Projekt anlegen – beispielsweise via phpMyAdmin, Adminer, pgAdmin (über das ServBay-Panel aufrufbar) oder per Kommandozeile. Der Datenbankname lautet etwa servbay_laravel_app
.
Im nächsten Schritt legen wir mit einer Migration die Tabellenstruktur an.
Migration erstellen
Im Projektstamm erzeugen Sie eine neue Migration:
bashphp artisan make:migration create_accounts_table --create=accounts
1Es entsteht eine neue Datei unter
database/migrations
.Migration bearbeiten
Öffnen Sie die neu erstellte Datei (Name ähnlich
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) und definieren Sie die Tabelle imup
-Methode:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Führe Migrationen aus. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Fügt created_at und updated_at hinzu }); } /** * Rolle Migrationen zurück. */ 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
29Speichern Sie die Änderungen.
Migration ausführen
Starten Sie im Projektverzeichnis die Migration, um die Tabelle
accounts
zu erstellen:bashphp artisan migrate
1Ist die Datenbank korrekt konfiguriert und angelegt, werden damit neben
accounts
weitere Standardtabellen (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
usw.) erstellt.
MySQL Beispiel
.env
für MySQL konfigurierenAchten Sie darauf, dass folgende Einstellungen für MySQL gelten:
dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Standardport bei ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Standardpasswort bei ServBay
1
2
3
4
5
6Beispieldaten einfügen
Fügen Sie in
routes/web.php
eine Route zum Einfügen eines Accounts ein: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 'Account zu MySQL hinzugefügt!'; });
1
2
3
4
5
6
7
8
9
10
11Rufen Sie
https://servbay-laravel-test.local/mysql-add-account
auf, um den Eintrag zu erzeugen.Beispieldaten auslesen
Ergänzen Sie in
routes/web.php
eine Route zur Anzeige der Accounts:phpuse App\Models\Account; // falls Sie ein Account-Modell angelegt haben // Oder nutzen Sie direkt das DB Facade Route::get('/mysql-accounts', function () { // Mittels DB Facade $accounts = DB::table('accounts')->get(); // Oder per Eloquent ORM (mit Account-Modell) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Sie können die Daten jetzt unter
https://servbay-laravel-test.local/mysql-accounts
einsehen.
PostgreSQL Beispiel
.env
für PostgreSQL konfigurierenStellen Sie auf PostgreSQL um, indem Sie die Umgebungsvariablen wie folgt setzen:
dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Standard-PostgreSQL-Port bei ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Standardbenutzer für ServBay-PostgreSQL DB_PASSWORD=password # Standardpasswort für ServBay-PostgreSQL
1
2
3
4
5
6Hinweis: Nach Datenbankwechsel empfiehlt es sich, die Migrationen mit
php artisan migrate:refresh
oderphp artisan migrate
erneut durchzuführen.Beispieldaten (PostgreSQL) einfügen
Definieren Sie in
routes/web.php
eine Route zum Einfügen: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 'Account zu PostgreSQL hinzugefügt!'; });
1
2
3
4
5
6
7
8
9
10
11Die Adresse zum Testen:
https://servbay-laravel-test.local/pgsql-add-account
Beispieldaten auslesen (PostgreSQL)
Legen Sie eine Route zum Auslesen der Daten an:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Sie finden die Ausgaben unter
https://servbay-laravel-test.local/pgsql-accounts
.
Fazit
Mit ServBay können Sie simpel und komfortabel eine lokale Laravel-Entwicklungsumgebung auf macOS einrichten und betreiben. Die vorinstallierten Komponenten wie PHP, Composer, Caddy-Webserver sowie verschiedene Datenbanken und Caching-Dienste reduzieren den Konfigurationsaufwand erheblich. In nur wenigen Schritten erstellen Sie ein neues Laravel-Projekt, konfigurieren Ihren Webserver und können umgehend mit der Entwicklung starten – inklusive nahtloser Integration und Testmöglichkeiten für Datenbank- und Cache-Dienste. ServBay bietet Entwicklern damit eine effiziente und unkomplizierte lokale Entwicklungsplattform.
Sollten bei der Nutzung Fragen oder Probleme auftreten, finden Sie Hilfe im offiziellen ServBay-Handbuch oder in der Community.