Tworzenie i uruchamianie projektu Laravel w ServBay
Przegląd
ServBay to potężne lokalne środowisko dla programistów WWW, stworzone specjalnie dla macOS. Integruje wiele popularnych pakietów, takich jak PHP, Node.js, Python, Go, Java, różne bazy danych (MySQL, PostgreSQL, MongoDB), usługi cache’owania (Redis, Memcached) oraz serwery WWW (Caddy, Nginx, Apache).
Dokument ten przeprowadzi Cię krok po kroku przez proces szybkiego utworzenia, skonfigurowania i uruchomienia projektu Laravel w środowisku ServBay. Skorzystamy z wbudowanego PHP, menedżera pakietów Composer oraz intuicyjnego panelu zarządzania stronami internetowymi (dawniej: „hostami”), aby maksymalnie uprościć cały proces.
Czym jest Laravel?
Laravel to popularny, otwartoźródłowy framework aplikacji webowych PHP stworzony przez Taylora Otwella. Opiera się na architekturze MVC (Model-View-Controller) i oferuje szeroki zakres funkcjonalności „out of the box”, ułatwiając codzienną pracę programisty, m.in. obsługę uwierzytelniania, routing, sesji, cache’owania oraz operacji na bazach danych. Laravel słynie z eleganckiej składni, bogactwa funkcji i silnego wsparcia społeczności, dzięki czemu idealnie nadaje się do tworzenia nowoczesnych i łatwych w utrzymaniu aplikacji WWW.
Najważniejsze cechy i zalety Laravel
- Elegancka składnia: Zwięzły i czytelny kod znacząco zwiększa produktywność oraz czytelność aplikacji.
- Eloquent ORM: Potężna warstwa bazy danych bazująca na wzorcu ActiveRecord, umożliwiająca intuicyjną pracę z relacyjnymi bazami danych.
- Konsola Artisan: Przydatne narzędzia CLI do wykonywania migracji, generowania kodu, uruchamiania testów i wielu innych zadań.
- Silnik szablonów Blade: Przyjazna i prosta składnia do budowy dynamicznych widoków.
- Bogaty ekosystem: Ogrom oficjalnych i zewnętrznych paczek łatwo integrowanych za pomocą Composer.
- Silne wsparcie społeczności: Aktywna społeczność, mnóstwo materiałów, tutoriali i gotowych rozwiązań problemów.
Dlaczego warto wybrać ServBay do rozwoju projektów Laravel?
ServBay przynosi Laravel deweloperom szereg korzyści:
- Zintegrowane środowisko: W zestawie znajduje się wiele wersji PHP, Composer, popularne bazy danych oraz usługi cache’ujące — wszystko gotowe do użycia bez dodatkowej konfiguracji.
- Łatwa administracja: Przejrzysty interfejs graficzny pozwala na wygodne przełączanie wersji PHP, zarządzanie stronami WWW, uruchamianie i zatrzymywanie usług.
- Skonfigurowany serwer WWW: Domyślnie używany jest Caddy, wstępnie zoptymalizowany pod popularne frameworki PHP (w tym Laravel), co upraszcza konfigurację serwera.
- Wsparcie HTTPS: ServBay automatycznie konfiguruje certyfikat SSL (ServBay User CA) dla domen z końcówką
.local
. HTTPS jest domyślnie aktywowany, co czyni lokalny rozwój bezpieczniejszym i zbliżonym do środowiska produkcyjnego.
Tworzenie projektu Laravel
Zalecamy, aby projekty strony internetowej umieszczać w katalogu /Applications/ServBay/www
, co ułatwia utrzymanie porządku i centralne zarządzanie plikami.
Sprawdzenie instalacji Composer
Composer dołączony jest do instalacji ServBay, więc nie wymaga osobnej instalacji. Sprawdź jego dostępność w terminalu:
bashcomposer --version
1Jeśli zobaczysz numer wersji, Composer jest gotowy do użycia.
Tworzenie nowego projektu Laravel
Otwórz terminal, przejdź do rekomendowanego katalogu stron www ServBay i utwórz projekt Laravel. Niech katalog projektu nazywa się
servbay-laravel-app
:bashcd /Applications/ServBay/www # Utwórz katalog projektu mkdir servbay-laravel-app # Wejdź do katalogu projektu cd servbay-laravel-app # Utwórz projekt Laravel w bieżącym katalogu za pomocą Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer pobierze i zainstaluje Laravel oraz wszystkie zależności.
Przechodzenie do katalogu projektu
Upewnij się, że terminal znajduje się w katalogu głównym nowo utworzonego projektu Laravel:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Konfiguracja początkowa
Generowanie klucza aplikacji
Laravel wykorzystuje klucz aplikacji do zabezpieczania sesji oraz szyfrowania danych. W katalogu głównym projektu (
/Applications/ServBay/www/servbay-laravel-app
) wygeneruj klucz przez Artisan:bashphp artisan key:generate
1Komenda automatycznie utworzy i umieści wartość
APP_KEY
w Twoim pliku.env
.Konfiguracja zmiennych środowiskowych (
.env
)Laravel zarządza ustawieniami środowiska za pomocą pliku
.env
(w katalogu głównym projektu). Otwórz go i skonfiguruj bazowe wartości, takie jak dane do bazy, adres URL aplikacji itp. Przykład:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Ta wartość została wygenerowana komendą php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Przykładowa konfiguracja bazy danych (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nazwa bazy danych jakiej chcesz użyć DB_USERNAME=root # Domyślny użytkownik ServBay DB_PASSWORD=password # Domyślne hasło ServBay # Przykładowa konfiguracja cache/kolejek (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Domyślnie Redis w ServBay nie posiada hasła REDIS_PORT=6379 # Przykładowa konfiguracja cache/kolejek (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
26Uwaga: W zależności od używanej bazy bądź usługi, dostosuj odpowiednie parametry jak
DB_*
,REDIS_*
lubMEMCACHED_*
. Domyślne dane logowania znajdziesz w panelu ServBay.
Konfiguracja serwera WWW (dodanie strony w ServBay)
Wykorzystamy panel zarządzania stroną ServBay, aby skonfigurować serwer WWW i przypisać domenę do katalogu public
projektu Laravel.
Otwórz panel ServBay
Uruchom aplikację ServBay i przejdź do panelu sterowania.
Dodaj nową stronę internetową
W panelu wybierz sekcję „Strony WWW”. Kliknij przycisk dodawania (oznaczony zwykle „+” lub podobną ikoną), aby stworzyć nową stronę.
Uzupełnij dane strony
Przykład konfiguracji:
- Nazwa (Name):
My First Laravel Dev Site
(dowolna, ułatwiająca identyfikację) - Domena (Domain):
servbay-laravel-test.local
(adres, pod jakim chcesz otwierać projekt) - Typ strony (Site Type):
PHP
- Wersja PHP (PHP Version): wybierz wersję zgodną z Laravel, np.
8.3
- Katalog główny strony (Site Root):
/Applications/ServBay/www/servbay-laravel-app/public
(WAŻNE: wskazuj na podkatalogpublic
w głównym katalogu projektu Laravel)
Szczegółowe instrukcje i dodatkowe opcje znajdziesz w oficjalnej dokumentacji ServBay, sekcja Dodawanie pierwszej strony (poszukaj anglojęzycznego odnośnika).
- Nazwa (Name):
Zapisz i zastosuj zmiany
Zapisz konfigurację strony. ServBay automatycznie zaktualizuje ustawienia serwera WWW (domyślnie: Caddy). Jeśli pojawi się komunikat o konieczności restartu serwera WWW, postępuj zgodnie z instrukcją.
Weryfikacja podstawowego dostępu
Twój projekt Laravel powinien być dostępny pod skonfigurowaną domeną.
Uruchom przeglądarkę
Wpisz w pasku adresu skonfigurowaną domenę, np.
https://servbay-laravel-test.local
.Sprawdź wynik
Jeśli wszystko zostało poprawnie skonfigurowane, zobaczysz stronę powitalną Laravel.
Dodawanie przykładowego kodu
Aby sprawdzić działanie, dodajmy prostą trasę w pliku routes/web.php
, która wyświetli „Hello ServBay!”.
Otwórz plik routes/web.php
i dodaj/edytuj poniższą zawartość:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Zmodyfikuj lub dodaj tę linię
});
// ... inne trasy
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
Zapisz plik i ponownie przejdź do https://servbay-laravel-test.local
. Powinieneś zobaczyć napis Hello ServBay!
w przeglądarce.
Przykłady integracji z bazami danych
Laravel oferuje potężny system abstrakcji baz danych oraz ORM (Eloquent), dzięki czemu możesz z łatwością pracować z wieloma typami baz. ServBay zawiera MySQL, PostgreSQL, MongoDB, Redis, Memcached, co ułatwia lokalne testy.
Przykład bazy NoSQL
ServBay domyślnie integruje Redis i Memcached wraz z wymaganymi rozszerzeniami PHP.
Przykład Memcached
Konfiguracja
.env
W pliku
.env
ustaw dane dostępowe do Memcached (jeśli jeszcze nie skonfigurowano):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Domyślny port Memcached w ServBay
1
2
3Użycie Memcached
Skorzystaj z fasady
Cache
w trasie lub kontrolerze, by przetestować działanie Memcached:W pliku
routes/web.php
dodaj trasę:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Zapisz dane do cache na 10 minut (600 sekund) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Pobierz dane z cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Dane z Memcached: " . $value; } else { return "Dane z Memcached nie istnieją lub wygasły."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Odwiedź
https://servbay-laravel-test.local/memcached-test
, aby przetestować.
Przykład Redis
Konfiguracja
.env
W pliku
.env
ustaw połączenie z Redis (jeśli jeszcze nie zrobiono tego):dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # W ServBay domyślnie brak hasła do Redis REDIS_PORT=6379 # Domyślny port Redis w ServBay
1
2
3
4Uwaga: Jeśli skonfigurowałeś zarówno Memcached, jak i Redis, pamiętaj, aby odkomentować
CACHE_STORE
tylko dla usługi, którą chcesz aktywnie testować.Użycie Redis
W trasie lub kontrolerze skorzystaj z fasady
Redis
lubCache
, by pracować z Redis:W pliku
routes/web.php
dodaj trasę:phpuse Illuminate\Support\Facades\Redis; // lub użyj Cache, jeśli CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Użycie fasady Redis Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // lub użycie Cache (jeśli CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Dane z Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Odwiedź
https://servbay-laravel-test.local/redis-test
, aby przetestować.
Przykład bazy relacyjnej (MySQL & PostgreSQL)
ServBay ma preinstalowane serwery MySQL i PostgreSQL. Laravel z Eloquent ORM umożliwia łatwe połączenie z tymi bazami.
Najpierw utwórz bazę o nazwie servbay_laravel_app
za pomocą narzędzi takich jak phpMyAdmin, Adminer, pgAdmin (wszystkie dostępne z panelu ServBay) lub przez terminal.
Następnie utwórz migracje do tworzenia struktury tabel.
Tworzenie pliku migracji
W katalogu głównym projektu uruchom komendę Artisan, aby utworzyć migrację:
bashphp artisan make:migration create_accounts_table --create=accounts
1Plik zostanie dodany do katalogu
database/migrations
.Edycja pliku migracji
Otwórz nowy plik migracji (np.
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) i zdefiniuj strukturę tabeli:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Dodaje kolumny created_at i updated_at }); } /** * Reverse the migrations. */ 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
29Zapisz plik.
Uruchom migracje
W katalogu głównym projektu uruchom migracje:
bashphp artisan migrate
1Jeśli poprawnie skonfigurowałeś bazę i baza
servbay_laravel_app
istnieje, utworzone zostaną tabelaaccounts
oraz domyślne tabele Laravel (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
i inne).
Przykład MySQL
Konfiguracja
.env
dla MySQLUpewnij się, że plik
.env
zawiera konfigurację do MySQL:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Domyślny port MySQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Domyślne hasło do MySQL ServBay
1
2
3
4
5
6Wpisz przykładowe dane
Dodaj trasę w
routes/web.php
, aby dodać wpis do tabeliaccounts
: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 'Dodano konto do MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Odwiedź
https://servbay-laravel-test.local/mysql-add-account
, by dodać wpis.Odczytaj przykładowe dane
Dodaj trasę w
routes/web.php
, aby pobrać dane z tabeliaccounts
:phpuse App\Models\Account; // jeśli utworzyłeś model Account // lub użyj bezpośrednio fasady DB Route::get('/mysql-accounts', function () { // Korzystając z fasady DB $accounts = DB::table('accounts')->get(); // lub korzystając z Eloquent ORM (jeśli model Account istnieje) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Odwiedź
https://servbay-laravel-test.local/mysql-accounts
, by wyświetlić dane z tabeliaccounts
.
Przykład PostgreSQL
Konfiguracja
.env
dla PostgreSQLJeśli chcesz użyć PostgreSQL, skonfiguruj odpowiednio plik
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Domyślny port PostgreSQL w ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Domyślny użytkownik PostgreSQL w ServBay DB_PASSWORD=password # Domyślne hasło do PostgreSQL w ServBay
1
2
3
4
5
6Uwaga: Po zmianie połączenia z bazą, prawdopodobnie będziesz musiał ponownie uruchomić
php artisan migrate:refresh
lubphp artisan migrate
dla PostgreSQL.Dodaj przykładowe dane (PostgreSQL)
Dodaj trasę w
routes/web.php
do dodania wpisu do tabeliaccounts
: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 'Dodano konto do PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Odwiedź
https://servbay-laravel-test.local/pgsql-add-account
by dodać wpis.Odczytaj przykładowe dane (PostgreSQL)
Dodaj trasę w
routes/web.php
, aby pobrać wszystkie wpisy z tabeliaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Odwiedź
https://servbay-laravel-test.local/pgsql-accounts
, by zobaczyć dane z bazy.
Podsumowanie
Dzięki ServBay możesz w prosty sposób skonfigurować lokalne środowisko do tworzenia oraz uruchamiania aplikacji Laravel na macOS. Zintegrowane PHP, Composer, serwer WWW Caddy oraz wiele baz danych i rozwiązań cache znacząco skraca czas potrzebny na konfigurację. Kilka prostych kroków wystarczy, aby rozpocząć nowy projekt, skonfigurować serwer, zacząć programować i wygodnie testować integracje z bazami i systemami cache’owania. ServBay zapewnia wydajne i wygodne środowisko dla każdego dewelopera.
W przypadku jakichkolwiek pytań lub problemów zachęcamy do korzystania z oficjalnej dokumentacji ServBay oraz wsparcia społeczności.