Jak możemy pomóc?

Poszukiwanie...

Jak skonfigurować aplikację Laravel na hostingu i ustawić katalog public?

Aplikację Laravel zainstalujesz na hostingu przez SSH. Cały projekt umieścisz w katalogu domains/example.com, a domenę skierujesz do jego podfolderu public. Dzięki temu przeglądarka będzie korzystać z publicznej części aplikacji, a pliki konfiguracyjne pozostaną poza katalogiem WWW.

1. Przygotuj domenę i połączenie SSH

Przygotuj nową domenę dodaną do hostingu oraz dostęp SSH do tej usługi. Poniższe polecenia służą do instalacji nowego projektu Laravel 13. Przykładową domenę example.com i nazwę konta hostXXXXXX zastąp własnymi danymi.

Użyj katalogu domeny, w którym nie ma jeszcze aplikacji Laravel ani innych plików projektu. Nie kopiuj nowej instalacji na działającą aplikację — takie wdrożenie wymaga osobnego przygotowania i kopii danych.

Połącz się z serwerem w terminalu. Adres hosta odczytaj z informacji o swojej usłudze w DirectAdmin; port SSH to 64321. Uwierzytelnij się kluczem przypisanym do konta:

ssh -p 64321 hostXXXXXX@hostXXXXXX.hostido.net.pl

Sprawdź dostępne narzędzia:

php -v
composer --version

Laravel 13 wymaga PHP co najmniej 8.3. W tej instrukcji instalacja przez SSH i strona WWW używają PHP 8.3. Wersję dla strony wybierzesz w dalszym kroku; ustawienie w panelu nie musi zmieniać wersji polecenia php w terminalu. Wymagania sprawdzisz w dokumentacji Laravel oraz w plikach Composer swojego projektu.

2. Zainstaluj Laravel przez SSH

DirectAdmin tworzy w katalogu domeny m.in. folder public_html, więc ten katalog nie jest pusty. Najpierw zainstaluj projekt w nowym folderze laravel-install w katalogu konta. Upewnij się, że folder o tej nazwie jeszcze nie istnieje:

cd ~
composer create-project --prefer-dist laravel/laravel laravel-install "^13.0"

Poczekaj na zakończenie instalacji bez błędów. Następnie skopiuj całą zawartość projektu, wraz z plikami ukrytymi, bezpośrednio do katalogu domeny:

cp -a ~/laravel-install/. ~/domains/example.com/
cd ~/domains/example.com
php artisan --version

Docelowy układ powinien wyglądać tak:

domains/example.com/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/          ← katalog WWW domeny
│   ├── index.php
│   └── .htaccess
├── resources/
├── routes/
├── storage/
├── vendor/
├── .env
├── artisan
└── composer.json

Folder public powstaje razem z projektem. Pozostaw standardowe pliki public/index.php i bootstrap/app.php bez zmian ścieżek. Utworzony wcześniej przez panel folder public_html może pozostać obok — w tym układzie nie przechowujesz w nim aplikacji.

Zapewnij serwerowi WWW możliwość odczytu plików publicznych. Będąc w katalogu domains/example.com, ustaw prawa 755 dla folderów public i 644 dla znajdujących się w nich plików:

find public -type d -exec chmod 755 {} +
find public -type f -exec chmod 644 {} +

3. Sprawdź wersję PHP dla domeny

Zaloguj się do DirectAdmin. Na pulpicie, w sekcji Aplikacje PHP i Python, kliknij Zmiana wersji PHP dla domeny i izolacja (1).

W wierszu domeny aplikacji sprawdź pole Wersja (2). Wybierz PHP zgodne z projektem i jego zależnościami. Dla opisanej instalacji Laravel 13 odpowiednia jest wersja 8.3. Jeśli domena już korzysta z tej wersji, również przez ustawienie Domyślna (8.3), pozostaw ją bez zmian.

Jeśli zmienisz wersję PHP, ustawienie zapisze się automatycznie. Otwórz widok ponownie i sprawdź wybraną wartość.

4. Skieruj domenę do folderu public

Wróć na pulpit. W sekcji Domeny kliknij Zmiana katalogu dla domeny (3).

W polu Domena (4) wybierz domenę aplikacji. W polu Katalog (5) wpisz poniższą ścieżkę, zastępując example.com swoją domeną:

domains/example.com/public

Kliknij Zapisz (6). Podajesz ścieżkę względem katalogu konta, bez prefiksu /home/hostXXXXXX/. Panel informuje, że zastosowanie zmiany może potrwać do 2 minut. Po tym czasie ponownie wybierz domenę i sprawdź zapisany katalog.

5. Uzupełnij konfigurację aplikacji

Edytuj plik domains/example.com/.env. Ustaw adres swojej strony, dane bazy i inne usługi wymagane przez aplikację. Dla publicznej witryny użyj:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://example.com

Nowa instalacja Composera tworzy konfigurację początkową i klucz APP_KEY. Przy przenoszeniu istniejącej aplikacji zachowaj jej dotychczasowy klucz. Katalogi storage i bootstrap/cache muszą pozwalać procesowi PHP na zapis.

Polecenia Artisan uruchamiaj z katalogu domeny, gdzie znajduje się plik artisan. Jeżeli projekt wymaga migracji bazy, budowania zasobów CSS/JavaScript lub dodatkowych zadań, wykonaj je zgodnie z instrukcją tej aplikacji. Po zmianie .env usuń ewentualną wcześniejszą pamięć podręczną konfiguracji:

cd ~/domains/example.com
php artisan config:clear

6. Sprawdź stronę i podstrony

Upewnij się, że DNS domeny wskazuje na ten hosting, a HTTPS ma poprawny certyfikat SSL. Otwórz sam adres domeny, bez dopisywania /public. W nowej instalacji zobaczysz stronę powitalną Laravel (7).

Sprawdź również podstronę aplikacji, style i obrazy. W standardowym nowym projekcie możesz otworzyć trasę /up. Adresy /.env i /composer.json nie powinny wyświetlać zawartości tych plików. Po potwierdzeniu poprawnego działania możesz usunąć utworzony na początku folder laravel-install z katalogu konta — właściwy projekt pozostaje w katalogu domeny.

  • Strona główna działa, a podstrony zwracają 404: sprawdź obecność i prawo odczytu pliku public/.htaccess oraz trasy aplikacji.
  • Błąd 500: sprawdź storage/logs, wersję PHP, folder vendor i prawa zapisu do storage oraz bootstrap/cache. Na publicznej stronie zachowaj APP_DEBUG=false.
  • Panel nie pozwala zapisać katalogu: sprawdź, czy folder public istnieje bezpośrednio w katalogu właściwej domeny i czy wpisana ścieżka jest poprawna.