Kurs Laravel 13 #1: instalacja i konfiguracja projektu
zweryfikowano 2 września 2026 · 6 min
Zainstaluj Laravela 13 komendą composer create-project laravel/laravel blog, a potem uruchom php artisan serve. Komenda sama tworzy plik .env, generuje klucz aplikacji i wykonuje migracje. Laravel 13 wymaga co najmniej PHP 8.3 i domyślnie korzysta z SQLite.
Ten pierwszy rozdział instaluje Laravela 13, wyjaśnia, do czego służy każdy katalog projektu, i uruchamia serwer deweloperski. Na koniec w twojej przeglądarce wyświetli się powitalna strona Laravela.
Czego potrzebujesz
Laravel 13 wymaga co najmniej PHP 8.3 i działa na PHP 8.3, 8.4 oraz 8.5. Sprawdź swoją wersję:
php -vLiczy się tylko pierwsza linia. Musi zgłaszać PHP 8.3, 8.4 albo 8.5:
PHP 8.4.25 (cli) (built: Aug 27 2026 20:19:39) (NTS)Jeśli komenda nie istnieje albo zwraca starszą wersję, zainstaluj PHP. Na Windowsie WampServer albo Laragon, na macOS Homebrew z brew install php, na Linuksie pakiet php-cli twojej dystrybucji.
Potrzebujesz też Composera, menedżera zależności PHP-a. To on pobiera Laravela i wszystko, od czego framework zależy.
composer --versionRozszerzenia PHP
Laravel potrzebuje kilku rozszerzeń PHP. Większość instalacji dostarcza je od razu. Dwa warto sprawdzić, bo ich brak zablokuje cię później:
php -m | grep -E "pdo_sqlite|intl"pdo_sqlite obsługuje bazę danych z tego kursu. intl będzie wymagane w rozdziale 4 przez panel administracyjny, instalacja teraz oszczędza nieudanej instalacji w tamtym momencie.
Edytor
VS Code jest darmowy i w zupełności wystarcza, z rozszerzeniem „PHP Intelephense”. PhpStorm jest płatny i rozumie Laravela natywnie. Kurs nie zakłada żadnego z nich: wszystko dzieje się w terminalu.
Utworzenie projektu
Przejdź do katalogu, w którym trzymasz swoje projekty, a potem:
composer create-project laravel/laravel blogComposer pobiera Laravela i jego zależności do katalogu blog. Operacja trwa od jednej do trzech minut, zależnie od łącza.
Od Laravela 11 create-project nie ogranicza się do pobrania plików. Kopiuje .env.example do .env, generuje klucz aplikacji, tworzy plik database/database.sqlite i wykonuje początkowe migracje. Komendy php artisan key:generate i php artisan migrate, które znajdziesz w starszych kursach, na nowym projekcie nie są już potrzebne.
Sprawdź zainstalowaną wersję:
cd blog
php artisan --versionLaravel Framework 13.30.1Alternatywa: instalator Laravela
Istnieje instalator globalny, który skraca komendę i proponuje wybór zestawu startowego:
composer global require laravel/installer
laravel new blogTo wygodne, jeśli często zakładasz projekty, ale dokłada globalną zależność na twojej maszynie i bywa źródłem problemów ze PATH. Jeśli dostajesz laravel: command not found, artykuł jak naprawić „laravel: command not found” opisuje rozwiązanie. Na potrzeby tego kursu composer create-project wystarcza i pozwala ominąć ten objazd.
Drzewo katalogów projektu
Oto zawartość katalogu blog. Szkielet Laravela mocno schudł od wersji 8: kilku plików opisywanych w starszych kursach już nie ma.
W katalogu głównym
app
Kod twojej aplikacji. Po instalacji zawiera tylko trzy pliki: bazowy kontroler, model User i service provider. To tutaj dołożysz swoje kontrolery i modele.
bootstrap
Plik bootstrap/app.php to punkt konfiguracji aplikacji: tam deklaruje się trasy, middleware i obsługę błędów. W Laravelu 8 i 9 tę rolę dzieliły między siebie app/Http/Kernel.php, app/Console/Kernel.php i app/Exceptions/Handler.php, których już nie ma.
config
Pliki konfiguracyjne. Laravel 13 publikuje domyślnie tylko dziesięć, wobec dwudziestu kilku dawniej: pozostałe nadal istnieją we frameworku, z wartościami domyślnymi. Żeby ściągnąć któryś z nich i zmodyfikować, użyj php artisan config:publish.
database
Migracje (struktura tabel), seedery (dane początkowe) i fabryki (obiekty testowe). Tu leży też database.sqlite, twoja baza danych.
public
Jedyny katalog, który serwer WWW powinien wystawiać. Zawiera index.php, punkt wejścia wszystkich żądań, oraz pliki skompilowane przez Vite.
resources
Widoki Blade, arkusze CSS i pliki JavaScriptu przed kompilacją.
routes
Deklaracje adresów. Laravel 13 tworzy tylko dwa pliki, web.php i console.php. Pliki api.php i channels.php, opisywane w kursach pisanych pod Laravela 8, nie powstają już z automatu: dodają je php artisan install:api i php artisan install:broadcasting, jeśli ich potrzebujesz. Ten kurs korzysta wyłącznie z web.php.
W katalogu app
Http/Controllers
Kontrolery: kod, który odbiera żądanie, pobiera dane i wybiera widok do zwrócenia.
Models
Modele Eloquent. Każda tabela w bazie ma odpowiadający jej model, który służy do czytania i zapisu. Ten katalog istnieje od Laravela 8, we wcześniejszych wersjach modele leżały bezpośrednio w app.
Konfiguracja projektu
Cała konfiguracja zależna od maszyny mieszka w pliku .env, w katalogu głównym. Pliki z config czytają go funkcją env(). Tego pliku nigdy nie wolno wersjonować: zawiera twoje hasła.
Nazwa i adres serwisu
APP_NAME="Mon blog"
APP_URL=http://localhost:8000APP_NAME pokaże się w tytule stron. APP_URL służy do budowania linków bezwzględnych, między innymi do wgranych obrazków.
Baza danych
Laravel 13 domyślnie korzysta z SQLite:
DB_CONNECTION=sqliteSQLite trzyma całą bazę w jednym pliku, database/database.sqlite. Nie ma serwera do uruchomienia, użytkownika do założenia ani hasła do zapamiętania. Do nauki to najlepszy wybór: kasujesz plik i zaczynasz od zera.
Jeśli wolisz MySQL-a albo MariaDB, załóż bazę, a potem zastąp te linie:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=Kurs działa na obu. Różnica w zachowaniu ujawnia się w rozdziale 8, przy wyszukiwarce: jest tam zmierzona i wyjaśniona.
Link do storage
Pliki wgrywane z zaplecza lądują w storage/app/public, który nie jest dostępny z sieci. Ta komenda tworzy dowiązanie symboliczne, dzięki któremu stają się widoczne:
php artisan storage:linkINFO The [public/storage] link has been connected to [storage/app/public].Uruchomienie serwera
php artisan serve INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the serverOtwórz http://127.0.0.1:8000. Wyświetla się powitalna strona Laravela. Zostaw ten terminal otwarty: serwer działa tak długo, jak go nie zatrzymasz.
Jeśli port 8000 jest już zajęty, Laravel się nie zatrzymuje: próbuje następnego i uprzedza cię o tym. Odczytaj wyświetlony adres, zamiast go zakładać.
Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
INFO Server running on [http://127.0.0.1:8001].Projekt możesz też serwować przez Apache, Nginx, Dockera albo Laravel Herd. W takim razie katalog główny serwera musi wskazywać na katalog public, nigdy na katalog główny projektu: wystawienie go sprawiłoby, że twój plik .env da się pobrać.
Sprawdzenie instalacji
Ta komenda podsumowuje stan projektu i potwierdza, że wszystko jest na miejscu:
php artisan aboutEnvironment ........................................................
Application Name .......................................... Mon blog
Laravel Version ........................................... 13.30.1
PHP Version ................................................ 8.4.25
Composer Version ........................................... 2.10.3
Environment ................................................. local
Debug Mode ................................................ ENABLED
Drivers ...........................................................
Cache .................................................... database
Database ................................................... sqlite
Queue .................................................... database
Session .................................................. databaseProjekt jest gotowy. Spis treści serii przypomina, co wnosi każdy rozdział. Kolejny rozdział wyjaśnia, jak powiązać adres z własnym kodem.