Teszteléshez egyszerűen futtatható Apache konténerben.
$ docker run -dit --name my-apache-app -p 8090:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
Apache indítása, leállítása és újraindítása különböző parancsokkal.
$ sudo apachectl status
$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl graceful-stop
$ sudo apachectl restart
$ sudo apachectl graceful
$ sudo apachectl reload
# systemd megfelelői
$ sudo systemctl status apache2
$ sudo systemctl stop apache2
$ sudo systemctl restart apache2
# httpd -k parancsok
$ sudo httpd -k restart
$ sudo httpd -k stop
$ sudo httpd -k graceful
Apache konfigurációs fájlok helye Debian alapú rendszereken.
$ /usr/local/apache2/conf/httpd.conf
$ /etc/apache2/apache2.conf
# Ellenőrzés
$ apachectl -V
$ apachectl -t
Apache hibalog és hozzáférési naplók beállítása.
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Példa virtuális hosthoz
ErrorLog ${APACHE_LOG_DIR}/test-error.log
LogLevel info
CustomLog ${APACHE_LOG_DIR}/test-access.log combined
# Debian alapú rendszeren
/var/log/apache2
Apache direktívák, például a DocumentRoot és a .htaccess használata.
DocumentRoot "/usr/local/apache2/docs/dummy-host2.example.com"
# .htaccess fájl
# Azonnali hatás, nem igényel újraindítást
# Biztonsági és teljesítmény okokból nem ajánlott
Több domain kiszolgálása egy szerverről.
$ apachectl -t -D DUMP_VHOSTS
Statikus és dinamikus modulok kezelése.
# Modulok listázása
$ apachectl -t -D DUMP_MODULES
# Debian alapú rendszeren
$ a2enmod modul_neve
$ a2dismod modul_neve
# Elérhető modulok
/etc/apache2/mods-available
/etc/apache2/mods-enabled
# Feltételes direktíva
# konfiguráció
Több domain kiszolgálása Apache alatt.
NameVirtualHost *
DocumentRoot /web/example.com/www
ServerName www.example.com
ServerAlias example.com
CustomLog /web/example.com/logs/access.log combined
ErrorLog /web/example.com/logs/error.log
Külön conf fájlok bevonása.
Include /etc/apache/virtual-hosts/*.conf
Biztonsági okokból a verzióinformáció kikapcsolása.
ServerSignature Off
ServerTokens Prod
Saját hibaoldal beállítása.
ErrorDocument 404 /404.html
mod_alias használata könyvtár aliashoz.
Alias /common /web/common
mod_alias segítségével.
Redirect permanent /old http://example.com/new
CGI szkriptek futtatása.
ScriptAlias /cgi-bin/ /web/cgi-bin/
AddHandler cgi-script .cgi
Alapértelmezett index fájlok beállítása.
DirectoryIndex index.cfm index.cfm
Könyvtárlistázás engedélyezése vagy tiltása.
# Kikapcsolás
Options -Indexes
# Bekapcsolás
Options +Indexes
Parancssorból htpasswd használatával.
htpasswd -c /etc/apacheusers
Egyszerű jelszavas védelem beállítása.
AuthName "Authentication Required"
AuthType Basic
AuthUserFile /etc/apacheusers
Require valid-user
Csak adott IP vagy subnet engedélyezése.
# Csak egy IP
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
# Csak subnet
Order Deny,Allow
Deny from all
Allow from 176.16.0.0/16
Átirányítások és URL átírások.
# Rewrite engine bekapcsolása
RewriteEngine On
# Példa: /news/123 → /news.cfm?id=123
RewriteRule ^/news/([0-9]+)$ /news.cfm?id=$1 [PT,L]
# www → non-www
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Az Apache beállítások ellenőrzése és újraindítása.
# Konfiguráció tesztelése
$ sudo apache2ctl configtest
# Ha az eredmény: Syntax OK → mehet élesben
# Újraindítás a beállítások érvényesítéséhez
$ sudo systemctl restart apache2
HTTP és HTTPS forgalom engedélyezése ufw segítségével.
# Csak HTTP (80-as port)
$ sudo ufw allow "Apache"
# Csak HTTPS (443-as port)
$ sudo ufw allow "Apache Secure"
# HTTP és HTTPS együtt
$ sudo ufw allow "Apache Full"
SSL modul engedélyezése és HTTPS virtuális hoszt beállítása.
# SSL modul engedélyezése
$ sudo a2enmod ssl
# Virtuális hoszt konfiguráció
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Ugyanaz mint a *:80 részben
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# SSL beállítások
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key