Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator Apache VirtualHost

Złóż kompletny blok VirtualHost dla domeny, HTTPS i PHP-FPM i wgraj go do sites-available.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Uzupełnij dane, aby wygenerować konfigurację VirtualHost.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator Apache VirtualHost — domena, PHP-FPM i HTTPS w jednym pliku

Generator Apache VirtualHost składa gotowy blok <VirtualHost>, w którym domena dostaje własny DocumentRoot, sekcję <Directory>, przekazanie PHP do PHP-FPM oraz osobne logi. Po włączeniu SSL powstaje blok na porcie 443 z certyfikatem i drugi na porcie 80, który przekierowuje ruch na HTTPS.

Co dokładnie robi to narzędzie

Podajesz domenę, DocumentRoot, adres administratora, port oraz gniazdo PHP-FPM i dostajesz kompletny plik konfiguracyjny. Pierwsza linia to <VirtualHost *:80> albo <VirtualHost *:443>, zależnie od SSL. Dalej trafiają ServerName i ServerAlias www., więc witryna odpowiada z prefiksem i bez niego. Domenę sprawdzamy pod kątem poprawnej nazwy DNS, a DocumentRoot musi być ścieżką bezwzględną — te wartości trafiają wprost do konfiguracji serwera.

VirtualHost to warstwa wyżej niż plik .htaccess. Regułę katalogową czy przekierowanie ułożysz w generatorze pliku .htaccess, a dostęp hasłem dołożysz wpisem z generatora .htpasswd.

Sekcja Directory i błąd 403

Najczęstsza przyczyna błędu 403 Forbidden na świeżo wystawionej stronie to brak Require all granted w bloku <Directory>. Apache od 2.4 domyślnie odmawia dostępu do katalogów, o które nie poprosisz jawnie. Dlatego narzędzie wstawia trzy dyrektywy: Options -Indexes +FollowSymLinks wyłącza listowanie katalogu, AllowOverride All pozwala odczytać reguły z .htaccess, a Require all granted otwiera zasób dla klientów. Bez tej ostatniej linii serwer odpowie 403.

Kluczowe dyrektywy w wygenerowanym pliku

DyrektywaZa co odpowiada
ServerName / ServerAliasGłówna domena i nazwa www., po których Apache dopasowuje żądanie
DocumentRootKatalog serwowanych plików (dla Laravela: public)
<Directory>Uprawnienia katalogu, w tym Require all granted
<FilesMatch>Przekazanie plików .php do PHP-FPM przez SetHandler
SSLCertificate*Ścieżki do fullchain.pem i privkey.pem
ErrorLog / CustomLogOsobne logi błędów i dostępu dla domeny

SSL, port 443 i przekierowanie z HTTP

Certyfikat SSL działa tylko w bloku nasłuchującym na porcie 443, nie na 80. Dlatego po zaznaczeniu SSL narzędzie kieruje główny blok na *:443, wstawia SSLEngine on oraz ścieżki SSLCertificateFile i SSLCertificateKeyFile do katalogu Let's Encrypt /etc/letsencrypt/live/. Powstaje też krótki blok <VirtualHost *:80>, który przez RewriteRule przekierowuje ruch HTTP na HTTPS z kodem 301. Ważność certyfikatu potwierdzisz w weryfikatorze certyfikatu SSL, a nagłówki bezpieczeństwa złożysz w generatorze nagłówka CSP.

PHP-FPM zamiast mod_php

Nowoczesny Apache nie wykonuje PHP wewnątrz procesu serwera, tylko przekazuje je do usługi PHP-FPM przez gniazdo, np. unix:/run/php/php8.3-fpm.sock. Narzędzie zapisuje to w bloku <FilesMatch \.php$> z dyrektywą SetHandler "proxy:...|fcgi://localhost". Taki układ jest szybszy, oddziela uprawnienia PHP od Apache i pozwala trzymać różne wersje PHP dla różnych domen. Wymaga modułów proxy_fcgi i setenvif. Puste pole pomija ten blok — vhost obsłuży wtedy tylko pliki statyczne.

Gdzie zapisać plik i jak go włączyć

  1. Zapisz konfigurację w /etc/apache2/sites-available/, np. jako example.com.conf.
  2. Włącz witrynę poleceniem a2ensite example.com.conf — symlink pojawi się w sites-enabled/.
  3. Przy SSL i przekierowaniu włącz moduły: a2enmod ssl rewrite proxy_fcgi setenvif.
  4. Sprawdź składnię przez apache2ctl configtest (powinno zwrócić Syntax OK).
  5. Przeładuj serwer przez systemctl reload apache2.
Dla aplikacji takich jak Laravel czy Symfony w DocumentRoot wskaż katalog public projektu, a nie jego korzeń — inaczej plik .env i kod źródłowy byłyby dostępne przez przeglądarkę.

Ten sam serwer, wiele domen

Na tym polega sens VirtualHostów: jeden Apache obsługuje wiele witryn, bo dla każdego żądania dopasowuje nagłówek Host do właściwego ServerName. Każda domena dostaje własny plik w sites-available i osobne logi. Jeśli część reguł chcesz przenieść na Nginx w roli proxy, wyjątki dla pojedynczych ścieżek ułożysz w konfiguratorze bloków location Nginx.

Najczęściej zadawane pytania

Dlaczego strona zwraca 403 Forbidden mimo poprawnej ścieżki?

Najczęściej w bloku <Directory> brakuje Require all granted. Apache od 2.4 domyślnie odmawia dostępu do katalogów, których nie otworzysz jawnie. Generowany tu vhost zawsze wstawia tę linię.

Włączyłem SSL, a Apache nie startuje. Co sprawdzić?

Blok SSL musi nasłuchiwać na porcie 443, dlatego narzędzie przenosi go z 80 na 443 automatycznie. Sprawdź też, czy włączony jest moduł ssl i czy pliki fullchain.pem oraz privkey.pem istnieją pod podaną ścieżką. Powód zawsze wpisuje error log.

Co wpisać w DocumentRoot dla Laravela?

Katalog public projektu, na przykład /var/www/example.com/public. Wskazanie korzenia projektu wystawiłoby na świat plik .env i cały kod. Ta sama zasada dotyczy Symfony.

Dlaczego strona pokazuje domyślną witrynę zamiast mojej?

Zwykle vhost nie został włączony przez a2ensite albo koliduje z witryną 000-default. Wyłącz ją przez a2dissite 000-default, sprawdź apache2ctl configtest i przeładuj. Apache używa pierwszego pasującego bloku.

Czy muszę używać PHP-FPM?

Nie, ale to zalecany układ. Puste pole pomija blok <FilesMatch> i vhost obsłuży pliki statyczne. Gdy podasz gniazdo, pamiętaj o modułach proxy_fcgi i setenvif, a wersja PHP w ścieżce gniazda musi odpowiadać usłudze FPM.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!