
Jeśli stawiasz pierwsze kroki w świecie hostingu i webdevelopmentu, to pewnie nie raz natknąłeś się na pojęcia takie jak „root directory”, „document root” czy po prostu „katalog główny serwera”. Brzmi tajemniczo? Spokojnie, po przeczytaniu tego artykułu będziesz wiedział nie tylko co to jest, ale też jak go znaleźć, skonfigurować i dlaczego w ogóle ma to znaczenie.
Czym jest katalog główny serwera?
Katalog główny serwera (po angielsku nazywany root directory lub document root) to po prostu folder na serwerze, od którego zaczyna się cała struktura plików Twojej witryny. To tam serwer szuka plików, gdy ktoś wpisuje adres Twojej strony w przeglądarce.
Wyobraź sobie to tak: masz w domu szafę z ubraniami. Szafa jako całość to Twój serwer. Ale katalog główny to ta konkretna półka (lub szuflada), od której zaczyna się szukanie czegokolwiek – to punkt startowy dla całej reszty.
Kiedy użytkownik wpisuje w przeglądarce https://twojastrona.pl, serwer natychmiast zagląda do katalogu głównego i szuka tam pliku index.html lub index.php. Jeśli go znajdzie, wyświetla stronę. Jeśli nie, zazwyczaj zobaczysz błąd 403 (Forbidden) lub listę plików (jeśli serwer jest nieodpowiednio skonfigurowany).
Katalog główny a katalog domowy – ważna różnica
To jedna z najczęstszych pomyłek wśród początkujących webmasterów. Musisz wiedzieć, że to dwie różne rzeczy:
- Katalog domowy użytkownika (ang. home directory) – to folder przypisany do konkretnego konta na serwerze. Na Linuksie wygląda to zazwyczaj tak:
/home/nazwauzytkownika/. To tu trafiasz po zalogowaniu przez SSH. - Katalog główny serwera / document root – to folder, który serwer WWW (np. Apache czy Nginx) traktuje jako punkt startowy dla Twojej witryny. Najczęściej wygląda to tak:
/home/nazwauzytkownika/public_html/lub/var/www/html/.
Czyli: Twój katalog domowy zawiera katalog główny strony, ale sam nim nie jest. Ważne, żebyś to zapamiętał, bo niejedna osoba wgrała pliki do złego folderu i potem głowiła się, dlaczego strona nie działa.
Gdzie znajduje się katalog główny serwera? Typowe lokalizacje
Lokalizacja katalogu głównego zależy od kilku czynników: systemu operacyjnego serwera, używanego oprogramowania webowego i konfiguracji hostingu. Poniżej zebrałem te najczęstsze.
Apache na Linuksie (Ubuntu/Debian)
/var/www/html/
To domyślna ścieżka na serwerach opartych na Ubuntu lub Debianie. Jeśli postawiłeś serwer od zera i niczego nie zmieniałeś, pliki Twojej strony powinny lądować właśnie tutaj.
Apache na CentOS/RHEL
/var/www/html/
Tutaj jest podobnie – domyślna lokalizacja wygląda tak samo, choć konfiguracja samego Apache’a może nieco się różnić.
Nginx
/usr/share/nginx/html/
lub
/var/www/html/
Nginx jest trochę bardziej elastyczny w tym zakresie i zależy to od dystrybucji oraz konfiguracji.
cPanel (popularny panel hostingowy)
/home/nazwauzytkownika/public_html/
Jeśli korzystasz z hostingu współdzielonego z panelem cPanel, to prawie na pewno Twój katalog główny znajdziesz właśnie tutaj. Folder public_html jest standardem w tym środowisku.
Plesk
/var/www/vhosts/twojastrona.pl/httpdocs/
Plesk ma nieco inną strukturę i każda domena dostaje swój własny folder.
XAMPP (lokalne środowisko deweloperskie na Windows)
C:\xampp\htdocs\
Jeśli pracujesz lokalnie na Windowsie z XAMPP-em, to tutaj wgrywasz swoje projekty.
MAMP (lokalne środowisko na macOS)
/Applications/MAMP/htdocs/
Jak znaleźć katalog główny? Praktyczne metody
No dobrze, wiesz już co to jest i gdzie teoretycznie powinien być. Ale co zrobić, gdy nie wiesz dokładnie, gdzie na Twoim konkretnym serwerze leży ten folder? Mam dla Ciebie kilka sposobów.
Metoda 1: Przez plik PHP (najprostsza)
Stwórz prosty plik PHP, wgraj go na serwer i otwórz w przeglądarce:
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Zapisz go jako np. katalog.php, wgraj na serwer przez FTP lub menedżer plików w panelu hostingowym, a następnie otwórz w przeglądarce: https://twojastrona.pl/katalog.php. Serwer wyświetli Ci dokładną ścieżkę do katalogu głównego.
Pamiętaj: Po uzyskaniu informacji usuń ten plik z serwera, nie ma sensu zostawiać takich rzeczy publicznie dostępnych.
Metoda 2: Przez phpinfo()
Podobnie jak wyżej, ale z użyciem funkcji phpinfo():
<?php phpinfo(); ?>
Po otwarciu w przeglądarce zobaczysz ogromną tabelę z informacjami o PHP. Szukaj sekcji $_SERVER['DOCUMENT_ROOT']. Znajdziesz tam dokładną ścieżkę.
Uwaga: phpinfo() ujawnia mnóstwo informacji o konfiguracji Twojego serwera. Korzystaj z tego tylko w celach testowych i natychmiast usuwaj plik po użyciu.
Metoda 3: Przez SSH (dla zaawansowanych)
Jeśli masz dostęp SSH do serwera, możesz znaleźć katalog główny wprost przez terminal. Zaloguj się i wpisz:
# Dla Apache - sprawdź plik konfiguracyjny grep -r "DocumentRoot" /etc/apache2/ # Dla Nginx grep -r "root" /etc/nginx/sites-enabled/
Możesz też po prostu sprawdzić, gdzie jesteś po zalogowaniu:
pwd
A następnie przejść do katalogu, który podejrzewasz:
ls -la /var/www/html/
Metoda 4: Przez panel hostingowy
Jeśli korzystasz z cPanel, Directadmin, Plesk lub innego panelu:
- Zaloguj się do panelu.
- Poszukaj sekcji „Menedżer plików” lub „File Manager”.
- Wejdź do menedżera plików – domyślnie otwiera się w katalogu domowym lub od razu w katalogu publicznym (
public_html). - Ścieżkę zobaczysz zazwyczaj w pasku adresu menedżera plików lub po kliknięciu właściwości folderu.
Metoda 5: Sprawdź plik .htaccess lub wp-config.php (jeśli używasz WordPressa)
Jeśli Twoja strona działa na WordPressie, katalog główny to ten folder, w którym znajdują się pliki takie jak wp-config.php, wp-login.php i katalogi wp-content, wp-admin, wp-includes. To właśnie on jest Twoim document root (lub podfolderem wewnątrz niego).
Jak skonfigurować katalog główny serwera?
Czasem może zajść potrzeba zmiany domyślnego katalogu głównego. Na przykład, gdy chcesz, żeby Twoja strona działała z podfolderu public zamiast z głównego katalogu.
Zmiana document root w Apache
Otwórz plik konfiguracyjny wirtualnego hosta (zazwyczaj w /etc/apache2/sites-available/):
sudo nano /etc/apache2/sites-available/000-default.conf
Znajdź linię DocumentRoot i zmień ją:
<VirtualHost *:80>
ServerName twojastrona.pl
DocumentRoot /var/www/twojastrona/public
<Directory /var/www/twojastrona/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Po zapisaniu zrestartuj Apache:
sudo systemctl restart apache2
Zmiana document root w Nginx
Edytuj plik konfiguracyjny w /etc/nginx/sites-available/:
sudo nano /etc/nginx/sites-available/twojastrona
Zmień linię root:
server {
listen 80;
server_name twojastrona.pl;
root /var/www/twojastrona/public;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
Zrestartuj Nginx:
sudo systemctl restart nginx
Dlaczego katalog główny jest ważny dla bezpieczeństwa?
To nie jest tylko kwestia organizacji plików. Katalog główny ma ogromne znaczenie dla bezpieczeństwa Twojego serwera.
Zasada jest prosta: tylko pliki, które muszą być dostępne publicznie, powinny znajdować się w katalogu głównym serwera. Wszystko inne – pliki konfiguracyjne, dane wrażliwe, logi, powinno być poza tym folderem.
Wyobraź sobie, że masz aplikację PHP. Trzymasz tam plik config.php z danymi do bazy danych. Jeśli ten plik jest w katalogu głównym serwera i ktoś wpisze w przeglądarce https://twojastrona.pl/config.php – co się stanie? Serwer może wyświetlić zawartość pliku (jeśli PHP nie obsłuży go poprawnie) lub przynajmniej potwierdzić jego istnienie. To poważna luka bezpieczeństwa.
Dlatego dobre praktyki mówią:
- Trzymaj pliki konfiguracyjne poza document root.
- Jeśli używasz frameworka (np. Laravel, Symfony), jego domyślna struktura jest tak zaprojektowana, żeby publicznie dostępny był tylko folder
public/– reszta jest ukryta. - Nie zostawiaj plików testowych (jak
phpinfo.phpczytest.php) na serwerze produkcyjnym.
Katalog główny a WordPress
Skoro WordPress jest najpopularniejszym CMS-em na świecie, warto poświęcić mu osobną chwilę.
Jeśli instalujesz WordPress w katalogu głównym (czyli strona główna działa pod https://twojastrona.pl/), to pliki WordPressa lądują bezpośrednio w public_html/ lub /var/www/html/.
Jeśli jednak instalujesz go w podfolderze (np. https://twojastrona.pl/blog/), to pliki WordPressa będą w public_html/blog/.
Pamiętaj też, że WordPress pozwala na konfigurację ścieżek w wp-config.php. Możesz tam ustawić:
define('ABSPATH', dirname(__FILE__) . '/');
Ta stała wskazuje na absolutną ścieżkę do instalacji WordPressa na serwerze. Przydatna wiedza, gdy debugujesz problemy z plikami.
Mam nadzieję, że po tym artykule katalog główny serwera nie jest już dla Ciebie czarną magią. To naprawdę podstawowe, ale kluczowe pojęcie. Bez jego zrozumienia ciężko jest sensownie zarządzać swoim serwerem czy hostingiem.
