Zmiana katalogu domeny
Jak zmienić document root domeny w DirectAdmin — np. dla Laravel (public_html → public/). Implications, rozwiązania, alternatywy.
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_htmlma 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ą).
![]()
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ć plikindex.php(lubindex.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.phplubindex.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ł?
