ZARZąDZANIE HOSTINGIEM (DIRECTADMIN) • 4 MIN READ

Zmiana katalogu domeny

Jak zmienić document root domeny w DirectAdmin — np. dla Laravel (public_html → public/). Implications, rozwiązania, alternatywy.

Zespół IQHost 14 maj 2026 4m read
#DirectAdmin #IQHost #hosting

Domyślnie domena w DA wskazuje na public_html. Niektóre nowoczesne frameworki (Laravel, Symfony) chcą inny katalog (np. public/ lub web/) — żeby chronić vendor/, .env, composer.json przed publicznym dostępem. Zmiana katalogu domeny w IQHost rozwiązuje to.

Co zyskasz

  • Zmienisz document root dla swojej domeny.
  • Skonfigurujesz Laravel / Symfony bez wystawiania vendor/.
  • Zrozumiesz alternatywy (.htaccess, symlink).

Wymagania wstępne

  • Konto IQHost z tym pluginem.

Wskazówka

Domyślny katalog public_html ma sens dla 90% stron. Zmieniaj tylko gdy framework explicite wymaga (Laravel, Symfony) — inaczej komplikujesz.

Krok 1: Otwórz Zmiana katalogu domeny

Dodatkowe funkcje → Zmiana katalogu domeny (lub menu z odpowiednią ikoną).

Strona Zmiana katalogu domeny w DA Pełna strona Zmiana katalogu domeny w pluginie change_dir

Krok 2: Wybierz domenę i nowy katalog

Formularz:

  • Domena — z dropdownu
  • Nowa ścieżka document root — względem /home/host36592/domains/<domena>/

Typowe wartości:

  • public_html (default)
  • public_html/public (Laravel)
  • public_html/web (Symfony)
  • laravel-app/public (Laravel w osobnym folderze)

Krok 3: Zapisz

DA modyfikuje konfigurację VirtualHost — Apache/LiteSpeed serwuje teraz nowy katalog.

Restart serwera w tle (kilka sekund).

Krok 4: Test

Otwórz https://mojafirma.pl — powinien serwować plik index.php (lub index.html) z nowego katalogu.

Pliki w public_html (stary root) nie są publicznie dostępne.

Typowe scenariusze

Laravel — standardowa instalacja

/home/host36592/domains/mojafirma.pl/public_html/
├── app/                ← teraz NIEdostępne publicznie ✅
├── bootstrap/
├── config/
├── database/
├── public/             ← TEN katalog wystawiamy
│   ├── index.php
│   ├── .htaccess
│   └── assets/
├── resources/
├── routes/
├── storage/
├── vendor/
├── .env                ← NIEdostępne ✅
├── artisan
└── composer.json

W DA: document root = public_html/public.

Symfony

Identycznie jak Laravel, ale katalog public lub web (zależnie od wersji Symfony):

/home/host36592/domains/mojafirma.pl/public_html/
├── bin/
├── config/
├── public/             ← document root
│   └── index.php
├── src/
├── var/
├── vendor/
└── .env

Nowoczesna SPA z backend

Backend API w api/:

/home/host36592/domains/mojafirma.pl/public_html/
├── api/               ← Laravel API
│   └── public/        ← API document root: public_html/api/public
└── (frontend pliki bezpośrednio w public_html — zwykłe pliki)

Może wymagać dwóch subdomen: mojafirma.pl (frontend) + api.mojafirma.pl (Laravel z document root api/public).

Alternatywy bez zmiany katalogu

.htaccess redirect

W public_html/.htaccess:

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]

Przekierowuje wszystko do public/. Działa, ale vendor/ nadal dostępne przez bezpośredni URL — gorzej.

Symlink

W public_html:

ln -s public/* .

Tworzy symlinki do index.php, .htaccess etc. Wciąż vendor/ zostaje wystawione, ale index.php jest pierwszy.

Lepiej: Zmiana katalogu domeny — to czyste rozwiązanie.

Najczęstsze problemy

1. „Po zmianie domena pokazuje 404"

  • Sprawdź czy nowy katalog ma index.php lub index.html
  • Sprawdź uprawnienia (755 dla katalogu, 644 dla plików)
  • Cache LiteSpeed — wyczyść

2. „Laravel routes nie działają"

W public/.htaccess musi być:

RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Standardowe Laravel .htaccess.

3. „Cron jobs się gubią (różne ścieżki)"

Cron uruchamia z /home/host36592/.... Sprawdź skrypty cron — używają ścieżek absolutnych.

4. „Mogę wrócić do public_html?"

Tak — w panelu Zmiana katalogu domeny ustaw z powrotem public_html → Zapisz.

5. „WordPress w niestandardowym katalogu"

WordPress zaprojektowany do działania w document root. Możliwe, ale komplikuje życie — wp-config.php, plugin paths.

Lepiej: WP w public_html standardowo, nie ruszaj.

6. „SSL po zmianie katalogu"

SSL działa per domena, niezależnie od document root. Bez zmian.

7. „Wiele aplikacji na jednej domenie"

  • Główna w public_html/
  • Subaplikacja w public_html/app2/public/ (z subdomeną?)

Albo subdomena → osobna konfiguracja, osobny document root.

Słowniczek

  • Document Root — katalog na serwerze odpowiadający root URL.
  • VirtualHost — wpis w konfiguracji Apache/LiteSpeed definiujący domenę.
  • Symlink — symboliczny link plików/katalogów.
  • Framework-public folder — konwencja public/ w nowoczesnych frameworkach.

Related

Feedback

Czy ten artykuł pomógł?

Potwierdź