Laravel-Projekt mit ServBay erstellen und ausführen
Überblick
ServBay ist eine leistungsstarke lokale Webentwicklungsumgebung für macOS und Windows, die zahlreiche beliebte Softwarepakete integriert, darunter PHP, Node.js, Python, Go, Java, verschiedene Datenbanken (MySQL, PostgreSQL, MongoDB), Caching-Dienste (Redis, Memcached) sowie Webserver (Caddy, Nginx, Apache).
In diesem Leitfaden erfahren Sie, wie Sie schnell ein Laravel-Projekt in der ServBay-Umgebung erstellen, konfigurieren und ausführen. Wir nutzen die integrierte PHP-Umgebung von ServBay, den Composer-Paketmanager sowie die leistungsstarke Website-Verwaltung (früher „Hosts“ genannt), um den Prozess zu vereinfachen.
Was ist Laravel?
Laravel ist ein weit verbreitetes Open-Source-PHP-Webframework, entwickelt von Taylor Otwell. Es folgt dem MVC-Architekturmuster (Model-View-Controller) und bietet zahlreiche Funktionen „out of the box“, um typische Webentwicklungsaufgaben wie Authentifizierung, Routing, Sitzungsmanagement, Caching und Datenbankinteraktion zu erleichtern. Laravel zeichnet sich durch elegante Syntax, einen umfangreichen Funktionsumfang und eine starke Community aus – die ideale Lösung für moderne, wartbare Webanwendungen.
Hauptmerkmale und Vorteile von Laravel
- Elegante Syntax: Klarer und ausdrucksstarker Code sorgt für erhöhte Entwicklungsproduktivität und bessere Lesbarkeit.
- Eloquent ORM: Stellt eine leistungsfähige ActiveRecord-Umsetzung zur Verfügung, die Datenbankinteraktionen einfach und intuitiv gestaltet.
- Artisan-Konsole: Enthält viele hilfreiche CLI-Tools für Datenbankmigrationen, Codegenerierung, das Ausführen von Tests und mehr.
- Blade-Template-Engine: Minimalistische Vorlagen-Syntax für den schnellen Aufbau dynamischer Ansichten.
- Umfangreiches Ökosystem: Zahlreiche offizielle und Drittanbieterpakete können einfach über Composer integriert werden.
- Starke Community: Eine aktive Gemeinschaft bietet viele Ressourcen, Anleitungen und Lösungen.
Vorteile der Laravel-Entwicklung mit ServBay
Mit ServBay profitieren Laravel-Entwickler von:
- Integrierte Umgebung: ServBay kommt mit vorinstallierten PHP-Versionen, Composer sowie den wichtigsten Datenbank- und Cache-Diensten – keine zusätzliche Installation oder Konfiguration nötig.
- Einfache Verwaltung: Über die grafische Oberfläche lassen sich PHP-Versionen wechseln, Website-Einstellungen anpassen und Dienste starten/stoppen.
- Vorkonfigurierter Webserver: ServBay verwendet standardmäßig Caddy, der für Laravel und andere Php-Frameworks optimiert ist. Die Einrichtung des Webservers ist somit besonders einfach.
- HTTPS-Unterstützung: Für
.local
-Domains werden SSL-Zertifikate automatisch bereitgestellt (ServBay User CA) und HTTPS ist standardmäßig aktiviert, was eine sichere, produktionsnahe Entwicklung ermöglicht.
Ein Laravel-Projekt anlegen
ServBay empfiehlt, Ihre Webprojekte in einem gemeinsamen Verzeichnis zu speichern – so bleibt die Struktur übersichtlich und die Verwaltung einfach:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Sicherstellen, dass Composer installiert ist
Composer wird mit ServBay bereits installiert; eine separate Installation ist daher nicht nötig. Überprüfen Sie die Composer-Verfügbarkeit im Terminal:
bashcomposer --version
1Wenn die Version angezeigt wird, ist Composer einsatzbereit.
Neues Laravel-Projekt erstellen
Öffnen Sie das Terminal, navigieren Sie ins empfohlene ServBay-Verzeichnis und erstellen Sie ein neues Laravel-Projekt. Das Verzeichnis nennen wir
servbay-laravel-app
:macOS:
bashcd /Applications/ServBay/www # Projektordner anlegen mkdir servbay-laravel-app # In den Projektordner wechseln cd servbay-laravel-app # Laravel-Projekt mit Composer im aktuellen Verzeichnis erstellen composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Projektordner anlegen mkdir servbay-laravel-app # In den Projektordner wechseln cd servbay-laravel-app # Laravel-Projekt mit Composer im aktuellen Verzeichnis erstellen composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer lädt und installiert Laravel samt allen Abhängigkeiten.
In das Projektverzeichnis wechseln
Stellen Sie sicher, dass Sie im Stammverzeichnis des neu angelegten Laravel-Projekts sind:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
Initiale Konfiguration
Applikationsschlüssel generieren
Laravel verwendet einen Anwendungsschlüssel, um Benutzersessions und Datenverschlüsselung zu schützen. Generieren Sie diesen Schlüssel im Projektstammverzeichnis per Artisan-Befehl:
Pfad zum Projektverzeichnis:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1Der Befehl trägt den Wert für
APP_KEY
in Ihre.env
-Datei ein.- macOS:
Umgebungsvariablen konfigurieren (
.env
)Laravel nutzt die Datei
.env
für Umgebungsvariablen wie z. B. Datenbankzugänge und die App-URL. Öffnen Sie die Datei im Projektstammverzeichnis und passen Sie die folgenden Einstellungen an:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Von php artisan key:generate gesetzt APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Beispiel für MySQL-Datenbank DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Gewünschter Datenbankname DB_USERNAME=root # Standard-Benutzer von ServBay DB_PASSWORD=password # Standard-Passwort von ServBay # Beispiel für Redis-Cache/Queue CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay: Redis ohne Passwort REDIS_PORT=6379 # Beispiel für Memcached-Cache/Queue # 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 eingesetzter Datenbank oder Dienst passen Sie die Werte für
DB_*
,REDIS_*
bzw.MEMCACHED_*
an. Die Standard-Zugangsdaten finden Sie in der ServBay-Systemsteuerung.
Webserver konfigurieren (Website in ServBay hinzufügen)
Verwenden Sie die Websiteverwaltung von ServBay, um den Webserver so zu konfigurieren, dass Ihr Domain auf das public
-Verzeichnis des Laravel-Projekts zeigt.
ServBay-Systemsteuerung öffnen
Starten Sie ServBay und öffnen Sie die Systemsteuerung.
Neue Website hinzufügen
Navigieren Sie im ServBay-Panel zum Bereich „Websites“. Klicken Sie auf die Schaltfläche Hinzufügen (meist ein
+
oder ähnliches Symbol), um eine neue Website einzurichten.Website-Daten ausfüllen
Füllen Sie die Felder entsprechend dem Beispiel aus:
Name:
My First Laravel Dev Site
(frei wählbar)Domain:
servbay-laravel-test.local
(Domain für den Browserzugriff)Website-Typ:
PHP
PHP-Version: Wählen Sie die zu Ihrer Laravel-Version passende, etwa
8.3
.Website-Stammverzeichnis:
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(Wichtig: Das Stammverzeichnis muss auf das
public
-Unterverzeichnis zeigen!)- macOS:
Für weitere Details sehen Sie sich die ServBay-Dokumentation zum Hinzufügen der ersten Website an (englische Version empfohlen).
Speichern und übernehmen
Speichern Sie die Website-Einstellungen. ServBay aktualisiert die Webserver-Konfiguration automatisch (Standard: Caddy). Sollte ein Neustart des Webservers nötig sein, folgen Sie einfach dem Hinweis.
Zugriffsprüfung
Ihr Laravel-Projekt sollte jetzt unter der konfigurierten Domain erreichbar sein.
Browser öffnen
Geben Sie in Ihrem Browser die konfigurierte Domain ein, z. B.
https://servbay-laravel-test.local
.Ergebnis prüfen
Bei korrekter Konfiguration erscheint die Laravel-Willkommensseite.
Einfachen Beispiel-Code hinzufügen
Um die Konfiguration anschaulich zu testen, können Sie in der Datei routes/web.php
eine Beispielroute hinzufügen, die „Hello ServBay!“ ausgibt.
Öffnen Sie die Datei routes/web.php
im Projektverzeichnis und ändern Sie den Inhalt wie folgt:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Hier können Sie Web-Routen für Ihre Anwendung registrieren.
| Die Routen werden vom RouteServiceProvider geladen, innerhalb einer
| Gruppe, die das "web"-Middleware-Set enthält. Jetzt kann etwas Großartiges entstehen!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Diese Zeile ergänzen oder anpassen
});
// ... weitere Routen
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
Speichern Sie die Datei und rufen Sie erneut https://servbay-laravel-test.local
im Browser auf – nun wird „Hello ServBay!“ ausgegeben.
Beispiel für Datenbankintegration
Laravel bietet ein leistungsfähiges Datenbank- und ORM-System (Eloquent) für den einfachen Zugriff auf verschiedene Datenbanken. ServBay hat MySQL, PostgreSQL, MongoDB, Redis und Memcached bereits integriert, was die lokale Entwicklung enorm erleichtert.
Beispiel für NoSQL-Datenbanken
Redis und Memcached sind in ServBay standardmäßig integriert und die zugehörigen PHP-Erweiterungen sind vorinstalliert.
Memcached-Beispiel
Memcached in
.env
konfigurierenTragen Sie die Memcached-Verbindungsdaten in die
.env
-Datei ein (falls noch nicht geschehen):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Standard-Memcached-Port von ServBay
1
2
3Memcached verwenden
Greifen Sie in Ihren Routen oder Controllern mit dem Laravel-Cache-Facade auf Memcached zu. Beispiel in
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Speicherung im Cache für 10 Minuten (600 Sekunden) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Wert aus dem Cache holen $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcached-Daten: " . $value; } else { return "Memcached-Daten nicht gefunden oder abgelaufen."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Testen Sie dies unter
https://servbay-laravel-test.local/memcached-test
.
Redis-Beispiel
Redis in
.env
konfigurierenVerbindungsdaten für Redis in der
.env
-Datei eintragen:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay: Redis ohne Passwort REDIS_PORT=6379 # Standard-Redis-Port von ServBay
1
2
3
4Hinweis: Sind sowohl Memcached als auch Redis konfiguriert, stellen Sie sicher, dass nur das gewünschte Caching aktiv ist (den anderen Eintrag auskommentieren).
Redis verwenden
Sie können in Ihren Routen oder Controllern per Redis-Facade oder Cache-Facade auf Redis zugreifen. Beispiel in
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // Oder via Cache-Facade, vorausgesetzt: CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Über Redis-Facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Alternative mit Cache-Facade (wenn 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
.
Beispiel für relationale Datenbanken (MySQL & PostgreSQL)
ServBay stellt MySQL- und PostgreSQL-Datenbankserver bereit. Laravel kann über Eloquent ORM unkompliziert darauf zugreifen.
Zuerst legen Sie eine Datenbank für Ihr Projekt an. Nutzen Sie hierfür die Verwaltungswerkzeuge von ServBay (phpMyAdmin, Adminer, pgAdmin etc., erreichbar über die Systemsteuerung) oder das Terminal. Die Datenbank nennen wir servbay_laravel_app
.
Nun legen Sie mit Laravel-Migrations die Tabellenstruktur an.
Migration anlegen
Erstellen Sie im Projektstammverzeichnis per Artisan-Befehl eine neue Migration:
bashphp artisan make:migration create_accounts_table --create=accounts
1Die Datei wird im Verzeichnis
database/migrations
erzeugt.Migration bearbeiten
Öffnen Sie die generierte Datei (Dateiname in etwa
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) und definieren Sie die Struktur vonaccounts
imup
-Methodenblock:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Migration ausführen. */ 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 }); } /** * Migration zurücksetzen. */ 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 Datei.
Migration ausführen
Führen Sie im Projektstammverzeichnis den Artisan-Befehl aus, um die Tabelle
accounts
anzulegen:bashphp artisan migrate
1Wenn die Datenbankkonfiguration stimmt und die Datenbank
servbay_laravel_app
existiert, werden die Tabelleaccounts
und sämtliche Standardtabellen von Laravel (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
usw.) erstellt.
MySQL-Beispiel
.env
für MySQL anpassenPrüfen Sie die MySQL-Datenbankverbindung in
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Standard-MySQL-Port von ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Standard-Passwort von ServBay
1
2
3
4
5
6Beispieldaten einfügen
Legen Sie in
routes/web.php
eine Route an, um einen neuen Eintrag inaccounts
zu speichern: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 zu MySQL hinzugefügt!'; });
1
2
3
4
5
6
7
8
9
10
11Öffnen Sie
https://servbay-laravel-test.local/mysql-add-account
, um einen Datensatz einzufügen.Beispieldaten lesen
Erstellen Sie in
routes/web.php
eine Route zum Auslesen von Daten:phpuse App\Models\Account; // Falls Account-Modell angelegt wurde // Oder direkt mit DB-Facade Route::get('/mysql-accounts', function () { // Mit DB-Facade $accounts = DB::table('accounts')->get(); // Oder per Eloquent ORM (falls Account-Modell vorhanden) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Sehen Sie die Einträge unter
https://servbay-laravel-test.local/mysql-accounts
ein.
PostgreSQL-Beispiel
.env
für PostgreSQL anpassenFür die Nutzung von PostgreSQL passen Sie die Konfiguration in
.env
an:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Standard-Port von ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Standard-Benutzer von ServBay DB_PASSWORD=password # Standard-Passwort von ServBay
1
2
3
4
5
6Hinweis: Nach dem Wechsel der Datenbankkonfiguration führen Sie idealerweise erneut Migrationen aus (
php artisan migrate:refresh
oderphp artisan migrate
), um die Tabellenstruktur in PostgreSQL anzulegen.Beispieldaten einfügen (PostgreSQL)
Ergänzen Sie eine Route in
routes/web.php
, um Daten inaccounts
zu schreiben: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 zu PostgreSQL hinzugefügt!'; });
1
2
3
4
5
6
7
8
9
10
11Testen Sie dies unter
https://servbay-laravel-test.local/pgsql-add-account
.Beispieldaten lesen (PostgreSQL)
Ergänzen Sie eine Route, um die Daten anzuzeigen:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Abrufen unter
https://servbay-laravel-test.local/pgsql-accounts
.
Fazit
Mit ServBay richten Sie im Handumdrehen eine lokale Laravel-Entwicklungsumgebung ein. Dank vorinstalliertem PHP, Composer, Caddy-Webserver sowie unterschiedlichen Datenbanken- und Cache-Diensten ist die Einrichtung besonders einfach. In wenigen Schritten erstellen Sie ein neues Laravel-Projekt, konfigurieren den Webserver und können direkt loslegen – zugleich lassen sich Datenbank- und Cache-Integrationen komfortabel testen. ServBay ermöglicht ein effizientes und komfortables Entwicklererlebnis für lokale Projekte.
Wenn Sie auf Probleme stoßen, werfen Sie einen Blick in die ServBay-Dokumentation oder suchen Sie Unterstützung in der Community.