{"id":1509,"date":"2026-06-27T18:39:15","date_gmt":"2026-06-27T18:39:15","guid":{"rendered":"https:\/\/sudoit.pl\/?p=1509"},"modified":"2026-06-27T18:59:05","modified_gmt":"2026-06-27T18:59:05","slug":"konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu","status":"publish","type":"post","link":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/","title":{"rendered":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Serwer WWW to jedna z podstawowych us\u0142ug spotykanych w administracji systemami i pracy z aplikacjami webowymi. To w\u0142a\u015bnie on odpowiada za udost\u0119pnianie stron internetowych, plik\u00f3w oraz aplikacji w sieci lokalnej lub publicznie w Internecie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W \u015bwiecie Linuksa jednym z najcz\u0119\u015bciej wykorzystywanych rozwi\u0105za\u0144 tego typu jest Apache HTTP Server, znany po prostu jako Apache lub apache2. To dojrza\u0142y, elastyczny i bardzo popularny serwer WWW, kt\u00f3ry sprawdza si\u0119 zar\u00f3wno przy prostych stronach, jak i bardziej rozbudowanych konfiguracjach. Pozwala tworzy\u0107 miedzy innymi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pojedyncze strony,<\/li>\n\n\n\n<li>wiele witryn na jednym serwerze,<\/li>\n\n\n\n<li>osobne porty,<\/li>\n\n\n\n<li>katalogi u\u017cytkownik\u00f3w,<\/li>\n\n\n\n<li>oraz podstawowe mechanizmy kontroli dost\u0119pu.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"797\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-1024x797.png\" alt=\"\" class=\"wp-image-1397\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-1024x797.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-300x233.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-768x598.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-585x455.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W tym artykule wykorzystam <strong>to samo \u015brodowisko laboratoryjne<\/strong>, kt\u00f3re by\u0142o u\u017cywane wcze\u015bniej przy konfiguracji sieci, routingu i DNS. Nie b\u0119d\u0119 tutaj od nowa opisywa\u0142 konfiguracji interfejs\u00f3w, tras statycznych czy dzia\u0142ania stref DNS, poniewa\u017c te elementy zosta\u0142y ju\u017c om\u00f3wione we wcze\u015bniejszych artyku\u0142ach. Zak\u0142adam, \u017ce \u015brodowisko jest gotowe, routing dzia\u0142a, a hosty potrafi\u0105 si\u0119 ze sob\u0105 komunikowa\u0107. Skupimy si\u0119 natomiast na tym, <strong>jak uruchomi\u0107 Apache, utworzy\u0107 w\u0142asne witryny, obs\u0142u\u017cy\u0107 r\u00f3\u017cne nazwy i porty oraz ograniczy\u0107 dost\u0119p do zasob\u00f3w<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na potrzeby tego artyku\u0142u:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Debian<\/strong> b\u0119dzie pe\u0142ni\u0142 rol\u0119 <strong>serwera WWW z Apache<\/strong><\/li>\n\n\n\n<li><strong>DNS<\/strong> b\u0119dzie rozwi\u0105zywa\u0142 nazwy wskazuj\u0105ce na Debiana<\/li>\n\n\n\n<li><strong>CL1<\/strong> i <strong>CL2<\/strong> b\u0119d\u0105 klientami testuj\u0105cymi dost\u0119p do witryn z dw\u00f3ch r\u00f3\u017cnych podsieci<\/li>\n\n\n\n<li><strong>CentOS<\/strong> pozostaje routerem mi\u0119dzy sieciami<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Czym jest Apache i co warto o nim wiedzie\u0107<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Apache HTTP Server<\/strong> to jeden z najstarszych i najbardziej znanych serwer\u00f3w WWW w \u015bwiecie Linuksa. Jego zadaniem jest odbieranie \u017c\u0105da\u0144 HTTP lub HTTPS od klient\u00f3w i zwracanie odpowiednich zasob\u00f3w, takich jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>strony HTML,<\/li>\n\n\n\n<li>pliki CSS i JavaScript,<\/li>\n\n\n\n<li>obrazy,<\/li>\n\n\n\n<li>katalogi z plikami,<\/li>\n\n\n\n<li>albo dane generowane przez aplikacje.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Najwi\u0119ksz\u0105 zalet\u0105 Apache jest elastyczno\u015b\u0107. Mo\u017cna na nim bardzo \u0142atwo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>uruchomi\u0107 prost\u0105 stron\u0119 statyczn\u0105,<\/li>\n\n\n\n<li>hostowa\u0107 kilka stron na jednej maszynie,<\/li>\n\n\n\n<li>rozdzieli\u0107 ruch wed\u0142ug nazwy hosta,<\/li>\n\n\n\n<li>uruchomi\u0107 dodatkowe witryny na innych portach,<\/li>\n\n\n\n<li>w\u0142\u0105czy\u0107 modu\u0142y,<\/li>\n\n\n\n<li>albo kontrolowa\u0107 dost\u0119p do konkretnych katalog\u00f3w.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Instalacja Apache<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Na Debianie instalacja wygl\u0105da bardzo prosto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">W systemach z rodziny RHEL, takich jak CentOS, odpowiednikiem by\u0142oby:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install httpd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">W tym artykule skupiam si\u0119 jednak na <strong>Debianie<\/strong>, bo to w\u0142a\u015bnie on pe\u0142ni u nas rol\u0119 serwera WWW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Po instalacji warto od razu sprawdzi\u0107 status us\u0142ugi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli wszystko zosta\u0142o zainstalowane poprawnie, us\u0142uga powinna by\u0107 aktywna.<br>Dobrze te\u017c sprawdzi\u0107, czy Apache rzeczywi\u015bcie nas\u0142uchuje na porcie 80:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -tlpn | grep :80<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Na tym etapie mo\u017cesz ju\u017c sprawdzi\u0107 dzia\u0142anie serwera z poziomu przegl\u0105darki, wpisuj\u0105c adres IP Debiana:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;172.16.10.1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli klienci z obu podsieci maj\u0105 poprawny routing do Debiana, to strona testowa Apache powinna si\u0119 wy\u015bwietli\u0107.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"627\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Apache_strona_testowa.png\" alt=\"\" class=\"wp-image-1511\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Apache_strona_testowa.png 822w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Apache_strona_testowa-300x229.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Apache_strona_testowa-768x586.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Apache_strona_testowa-585x446.png 585w\" sizes=\"auto, (max-width: 822px) 100vw, 822px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Gdzie znajduj\u0105 si\u0119 pliki konfiguracyjne Apache<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Po instalacji warto zrozumie\u0107 podstawow\u0105 struktur\u0119 konfiguracji Apache w Debianie. Najwa\u017cniejsze miejsca to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\/etc\/apache2\/apache2.conf<\/strong> \u2013 g\u0142\u00f3wny plik z ustawieniami globalnymi<\/li>\n\n\n\n<li><strong>\/etc\/apache2\/ports.conf<\/strong> \u2013 definicja port\u00f3w, na kt\u00f3rych nas\u0142uchuje Apache<\/li>\n\n\n\n<li><strong>\/etc\/apache2\/sites-available\/<\/strong> \u2013 dost\u0119pne konfiguracje witryn<\/li>\n\n\n\n<li><strong>\/etc\/apache2\/sites-enabled\/<\/strong> \u2013 konfiguracje witryn aktualnie w\u0142\u0105czonych<\/li>\n\n\n\n<li><strong>\/etc\/apache2\/mods-available\/<\/strong> \u2013 dost\u0119pne modu\u0142y<\/li>\n\n\n\n<li><strong>\/etc\/apache2\/mods-enabled\/<\/strong> \u2013 aktualnie w\u0142\u0105czone modu\u0142y<\/li>\n\n\n\n<li><strong>\/var\/www\/html<\/strong> \u2013 domy\u015blny katalog z podstawow\u0105 stron\u0105<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Utworzenie w\u0142asnej strony WWW<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Aby utworzy\u0107 w\u0142asn\u0105 stron\u0119, najpierw przygotujemy dla niej katalog i prosty plik index.html.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Za\u0142\u00f3\u017cmy, \u017ce chcemy uruchomi\u0107 witryn\u0119 firmow\u0105 pod nazw\u0105:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>www.firma.local<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Taka nazwa powinna oczywi\u015bcie wskazywa\u0107 w DNS na adres Debiana, wi\u0119c zak\u0142adam, \u017ce odpowiedni rekord zosta\u0142 ju\u017c wcze\u015bniej dodany w strefie DNS zgodnie z poprzednimi artyku\u0142ami.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy katalog i plik strony:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/www\/StronaFirmy\ntouch \/var\/www\/StronaFirmy\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Do pliku <strong>index.html<\/strong> wpisujemy przyk\u0142adow\u0105 tre\u015b\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;h1&gt;Strona firmowa&lt;\/h1&gt;<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja VirtualHost<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Sama zawarto\u015b\u0107 strony nie wystarczy. Trzeba jeszcze poinformowa\u0107 Apache, \u017ce ma obs\u0142ugiwa\u0107 now\u0105 witryn\u0119 pod konkretn\u0105 nazw\u0105.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W tym celu tworzymy nowy plik konfiguracyjny:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mcedit \/etc\/apache2\/sites-available\/www.firma.local.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142adowa konfiguracja mo\u017ce wygl\u0105da\u0107 tak:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80&gt;\n    ServerName www.firma.local\n    DocumentRoot \/var\/www\/StronaFirmy\n\n    &lt;Directory \/var\/www\/StronaFirmy&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n\n    ErrorLog ${APACHE_LOG_DIR}\/www_firma_error.log\n    CustomLog ${APACHE_LOG_DIR}\/www_firma_access.log combined\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Co oznaczaj\u0105 te dyrektywy?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ServerName<\/strong> \u2013 nazwa hosta, pod kt\u00f3r\u0105 witryna ma odpowiada\u0107<\/li>\n\n\n\n<li><strong>DocumentRoot<\/strong> \u2013 katalog z plikami strony<\/li>\n\n\n\n<li><strong>&lt;Directory &#8230;<\/strong> \u2013 regu\u0142y dost\u0119pu do katalogu<\/li>\n\n\n\n<li><strong>Require all granted<\/strong> \u2013 pozwala wszystkim klientom odczytywa\u0107 stron\u0119<\/li>\n\n\n\n<li><strong>ErrorLog<\/strong> i <strong>CustomLog<\/strong> \u2013 osobne logi dla tej witryny<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To bardzo dobra praktyka, bo dzi\u0119ki osobnym logom \u0142atwiej p\u00f3\u017aniej diagnozowa\u0107 problemy tylko dla jednej strony, zamiast szuka\u0107 wszystkiego w jednym wsp\u00f3lnym pliku.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">W\u0142\u0105czenie witryny<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Po utworzeniu pliku konfiguracyjnego aktywujemy witryn\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite www.firma.local<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Spowoduje to utworzenie dowi\u0105zania symbolicznego w katalogu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/apache2\/sites-enabled\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Przed restartem warto jeszcze sprawdzi\u0107 poprawno\u015b\u0107 konfiguracji:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apache2ctl configtest<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli wynik to <strong>Syntax OK<\/strong>, mo\u017cna bezpiecznie prze\u0142adowa\u0107 us\u0142ug\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po tej operacji strona powinna by\u0107 dost\u0119pna z przegl\u0105darki po nazwie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;www.firma.local<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"978\" height=\"460\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Firmowa.png\" alt=\"\" class=\"wp-image-1515\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Firmowa.png 978w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Firmowa-300x141.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Firmowa-768x361.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Firmowa-585x275.png 585w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dost\u0119p do podkatalogu strony<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">W katalogu witryny mo\u017cemy tworzy\u0107 kolejne podkatalogi, kt\u00f3re b\u0119d\u0105 dost\u0119pne jako osobne \u015bcie\u017cki URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na przyk\u0142ad utw\u00f3rzmy katalog <strong>czat<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/www\/StronaFirmy\/czat\ntouch \/var\/www\/StronaFirmy\/czat\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">W pliku <strong>index.html<\/strong> mo\u017cemy umie\u015bci\u0107 prost\u0105 tre\u015b\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;h1&gt;Czat firmy&lt;\/h1&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po zapisaniu plik\u00f3w podkatalog b\u0119dzie dost\u0119pny pod adresem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;www.firma.local\/czat<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ten przyk\u0142ad bardzo dobrze pokazuje, \u017ce po konfiguracji jednej witryny mo\u017cna \u0142atwo budowa\u0107 dalsz\u0105 struktur\u0119 katalog\u00f3w.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"983\" height=\"331\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Czat_Firmy.png\" alt=\"\" class=\"wp-image-1516\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Czat_Firmy.png 983w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Czat_Firmy-300x101.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Czat_Firmy-768x259.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Czat_Firmy-585x197.png 585w\" sizes=\"auto, (max-width: 983px) 100vw, 983px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dodawanie strony dzia\u0142aj\u0105cej na innym porcie<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Apache mo\u017ce obs\u0142ugiwa\u0107 nie tylko wiele nazw host\u00f3w, ale te\u017c wiele port\u00f3w. To przydatne na przyk\u0142ad wtedy, gdy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>chcesz uruchomi\u0107 stron\u0119 testow\u0105,<\/li>\n\n\n\n<li>wydzieli\u0107 panel administracyjny,<\/li>\n\n\n\n<li>albo pokaza\u0107, jak dzia\u0142a us\u0142uga HTTP poza portem 80.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Najpierw tworzymy katalog i plik strony:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/www\/sklep\ntouch \/var\/www\/sklep\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142adowa zawarto\u015b\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;h1&gt;Strona sklepu dzialajaca na porcie 1020&lt;\/h1&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nast\u0119pnie tworzymy now\u0105 konfiguracj\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mcedit \/etc\/apache2\/sites-available\/sklep.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142adowy plik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:1020&gt;\n    ServerName sklep.firma.local\n    DocumentRoot \/var\/www\/sklep\n\n    &lt;Directory \/var\/www\/sklep&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aktywujemy witryn\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite sklep<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Teraz trzeba jeszcze doda\u0107 nowy port do pliku <strong>ports.conf<\/strong>. Dopisujemy w nim parametr <strong>Listen 1020<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/apache2\/ports.conf<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"399\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa-1024x399.png\" alt=\"\" class=\"wp-image-1518\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa-1024x399.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa-300x117.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa-768x299.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa-585x228.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_Testowa.png 1144w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Potem sprawdzamy sk\u0142adni\u0119 i restartujemy us\u0142ug\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apache2ctl configtest\nsystemctl restart apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Taka witryna b\u0119dzie dost\u0119pna pod adresem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;sklep.firma.local:1020<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"351\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_sklep_inny_port.png\" alt=\"\" class=\"wp-image-1519\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_sklep_inny_port.png 984w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_sklep_inny_port-300x107.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_sklep_inny_port-768x274.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_sklep_inny_port-585x209.png 585w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Udost\u0119pnianie stron u\u017cytkownik\u00f3w przez userdir<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Apache pozwala r\u00f3wnie\u017c u\u017cytkownikom systemu publikowa\u0107 w\u0142asne strony w ich katalogach domowych. To funkcja znana z modu\u0142u <strong>userdir<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na pocz\u0105tek w\u0142\u0105czamy modu\u0142:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod userdir<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy domy\u015blny katalog <strong>strony<\/strong> w <strong>\/etc\/skel<\/strong>, aby nowi u\u017cytkownicy dostawali go automatycznie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/etc\/skel\/public_html\ntouch \/etc\/skel\/public_html\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restartujemy Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nast\u0119pnie tworzymy nowego u\u017cytkownika:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>adduser krystian<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po utworzeniu konta u\u017cytkownik b\u0119dzie mia\u0142 w\u0142asny katalog pod scie\u017ck\u0105 <strong>\/home\/krystian\/public_html<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W pliku <strong>index.html<\/strong> mo\u017cna umie\u015bci\u0107 dowoln\u0105 tre\u015b\u0107, a strona u\u017cytkownika b\u0119dzie dost\u0119pna pod adresem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;www.firma.local\/~krystian<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli strona si\u0119 nie wy\u015bwietla, bardzo cz\u0119sto problemem s\u0105 uprawnienia do katalogu domowego u\u017cytkownika. W takim przypadku mo\u017cna ustawi\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod -R 755 \/home\/krystian\/public_html<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"980\" height=\"252\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_krystiana_apache.png\" alt=\"\" class=\"wp-image-1520\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_krystiana_apache.png 980w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_krystiana_apache-300x77.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_krystiana_apache-768x197.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/Strona_krystiana_apache-585x150.png 585w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Udost\u0119pnienie plik\u00f3w przez stron\u0119 z uwierzytelnianiem<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Apache mo\u017ce te\u017c s\u0142u\u017cy\u0107 nie tylko do wy\u015bwietlania stron HTML, ale r\u00f3wnie\u017c do prostego udost\u0119pniania plik\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Za\u0142\u00f3\u017cmy, \u017ce chcemy udost\u0119pni\u0107 pliki pod nazw\u0105:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pliki.firma.local<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Taka nazwa powinna oczywi\u015bcie wskazywa\u0107 w DNS na Debiana. Je\u015bli nie pamietasz jak doda\u0107 odpowiedni rekord w bind zach\u0119cam do przeczytania poprzedniego <a href=\"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/\" type=\"link\" id=\"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/\">artyku\u0142u o DNS<\/a>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy katalog i kilka plik\u00f3w:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/www\/pliki\ntouch \/var\/www\/pliki\/dok1.txt\ntouch \/var\/www\/pliki\/dok2.txt\ntouch \/var\/www\/pliki\/dok3.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy konfiguracj\u0119 witryny:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mcedit \/etc\/apache2\/sites-available\/pliki.firma.local.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Przyk\u0142adowa konfiguracja:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80&gt;\n    ServerName pliki.firma.local\n    DocumentRoot \/var\/www\/pliki\n\n    &lt;Directory \/var\/www\/pliki&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        AuthType Basic\n        AuthName \"Strefa plikow\"\n        AuthUserFile \/var\/www\/pliki\/.htpasswd\n        Require valid-user\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aktywujemy witryn\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite pliki.firma.local<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tworzymy plik z u\u017cytkownikami:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>htpasswd -cm \/var\/www\/pliki\/.htpasswd krystian\nhtpasswd -m \/var\/www\/pliki\/.htpasswd magdalena<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restartujemy Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po wej\u015bciu na:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;pliki.firma.local<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Apache powinien poprosi\u0107 o nazw\u0119 u\u017cytkownika i has\u0142o. Po zalogowaniu si\u0119 jako Krystian lub Magdalena powinny zosta\u0107 wy\u015bwietlone pliki.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"981\" height=\"368\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/pliki_apache.png\" alt=\"\" class=\"wp-image-1521\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/pliki_apache.png 981w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/pliki_apache-300x113.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/pliki_apache-768x288.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/pliki_apache-585x219.png 585w\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ograniczenie dost\u0119pu do witryny dla okre\u015blonego adresu IP<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Czasem sama autoryzacja u\u017cytkownika nie wystarcza i chcemy dodatkowo ograniczy\u0107 dost\u0119p tylko do wybranych adres\u00f3w IP albo sieci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mo\u017cna to zrobi\u0107 na poziomie Apache, na przyk\u0142ad ograniczaj\u0105c dost\u0119p do katalogu lub ca\u0142ej witryny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W pliku konfiguracyjnym witryny albo w odpowiednim <code>&lt;Directory&gt;<\/code> mo\u017cna u\u017cy\u0107 regu\u0142 dost\u0119pu, na przyk\u0142ad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;Directory \/var\/www\/pliki&gt;\n    Options Indexes FollowSymLinks\n    AllowOverride All\n    Require ip 172.16.10.10\n&lt;\/Directory&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wtedy dost\u0119p do zasobu b\u0119dzie mia\u0142 tylko klient o adresie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>172.16.10.10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">czyli w naszym \u015brodowisku <strong>Windows CL1<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli chcesz dopu\u015bci\u0107 ca\u0142\u0105 podsie\u0107, mo\u017cesz u\u017cy\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Require ip 172.16.10.0\/24<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Po zmianach warto jak zawsze wykona\u0107 poni\u017csze polecenia. Dzi\u0119ki temu od razu wiadomo, czy konfiguracja zosta\u0142a zapisana poprawnie.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apache2ctl configtest\nsystemctl restart apache2<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Serwer WWW to jedna z podstawowych us\u0142ug spotykanych w administracji systemami i pracy z aplikacjami webowymi. To w\u0142a\u015bnie on odpowiada za&hellip;<\/p>\n","protected":false},"author":3,"featured_media":1528,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[26],"tags":[32,34],"class_list":["post-1509","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux","tag-sieci"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT\" \/>\n<meta property=\"og:description\" content=\"Serwer WWW to jedna z podstawowych us\u0142ug spotykanych w administracji systemami i pracy z aplikacjami webowymi. To w\u0142a\u015bnie on odpowiada za&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/\" \/>\n<meta property=\"og:site_name\" content=\"SudoIT\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-27T18:39:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-27T18:59:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Patryk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Patryk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/\"},\"author\":{\"name\":\"Patryk\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\"},\"headline\":\"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu\",\"datePublished\":\"2026-06-27T18:39:15+00:00\",\"dateModified\":\"2026-06-27T18:59:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/\"},\"wordCount\":1310,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/apache_blog_image.png\",\"keywords\":[\"linux\",\"sieci\"],\"articleSection\":[\"Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/\",\"name\":\"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/apache_blog_image.png\",\"datePublished\":\"2026-06-27T18:39:15+00:00\",\"dateModified\":\"2026-06-27T18:59:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/apache_blog_image.png\",\"contentUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/apache_blog_image.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/06\\\/27\\\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sudoit.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#website\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/\",\"name\":\"SudoIT\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sudoit.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\",\"name\":\"Patryk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"caption\":\"Patryk\"},\"url\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/author\\\/patryk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/","og_locale":"en_US","og_type":"article","og_title":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT","og_description":"Serwer WWW to jedna z podstawowych us\u0142ug spotykanych w administracji systemami i pracy z aplikacjami webowymi. To w\u0142a\u015bnie on odpowiada za&hellip;","og_url":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/","og_site_name":"SudoIT","article_published_time":"2026-06-27T18:39:15+00:00","article_modified_time":"2026-06-27T18:59:05+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png","type":"image\/png"}],"author":"Patryk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Patryk","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#article","isPartOf":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/"},"author":{"name":"Patryk","@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd"},"headline":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu","datePublished":"2026-06-27T18:39:15+00:00","dateModified":"2026-06-27T18:59:05+00:00","mainEntityOfPage":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/"},"wordCount":1310,"commentCount":0,"image":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#primaryimage"},"thumbnailUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png","keywords":["linux","sieci"],"articleSection":["Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/","url":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/","name":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu - SudoIT","isPartOf":{"@id":"https:\/\/sudoit.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#primaryimage"},"image":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#primaryimage"},"thumbnailUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png","datePublished":"2026-06-27T18:39:15+00:00","dateModified":"2026-06-27T18:59:05+00:00","author":{"@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd"},"breadcrumb":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#primaryimage","url":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png","contentUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/06\/apache_blog_image.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/sudoit.pl\/index.php\/2026\/06\/27\/konfiguracja-serwera-apache-w-linuxie-witryny-porty-i-kontrola-dostepu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sudoit.pl\/"},{"@type":"ListItem","position":2,"name":"Konfiguracja serwera Apache w Linuxie \u2013 witryny, porty i kontrola dost\u0119pu"}]},{"@type":"WebSite","@id":"https:\/\/sudoit.pl\/#website","url":"https:\/\/sudoit.pl\/","name":"SudoIT","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sudoit.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd","name":"Patryk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","caption":"Patryk"},"url":"https:\/\/sudoit.pl\/index.php\/author\/patryk\/"}]}},"_links":{"self":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1509"}],"version-history":[{"count":6,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1509\/revisions"}],"predecessor-version":[{"id":1527,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1509\/revisions\/1527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/media\/1528"}],"wp:attachment":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}