
Apache Webserver: Installation und Performance-Optimierung von A bis Z (mit PHP-FPM & FastCGI)
İçindekiler
Apache Webserver: Installation und Performance-Optimierung von A bis Z (mit PHP-FPM & FastCGI)
Dieser Blogbeitrag führt Sie durch die vollständige Installation und Optimierung eines Apache Webservers, wobei der Fokus auf der Integration von PHP-FPM und FastCGI liegt, um die Performance deutlich zu verbessern. Wir decken alle Schritte von der Installation bis zur fortgeschrittenen Konfiguration ab.
Inhaltsverzeichnis
- Apache Webserver Installation
- Grundkonfiguration von Apache
- PHP Installation und Konfiguration
- PHP-FPM Installation und Konfiguration
- Integration von Apache mit PHP-FPM via FastCGI
- Performance-Optimierung
- KeepAlive Einstellungen
- Mod_deflate (Kompression)
- Caching-Strategien
- HTTP/2 aktivieren
- Sicherheit
- Monitoring und Logging
- Fazit
1. Apache Webserver Installation
Die Installation von Apache ist plattformabhängig. Hier zeigen wir die Installation unter Debian/Ubuntu und CentOS/RHEL.
Debian/Ubuntu
sudo apt update
sudo apt install apache2
CentOS/RHEL
sudo yum update
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
2. Grundkonfiguration von Apache
Die Hauptkonfigurationsdatei für Apache befindet sich üblicherweise unter /etc/apache2/apache2.conf
(Debian/Ubuntu) oder /etc/httpd/conf/httpd.conf
(CentOS/RHEL). Einige wichtige Konfigurationen umfassen:
- ServerName: Setzen Sie den Servernamen auf Ihren Domainnamen oder die IP-Adresse.
- VirtualHosts: Konfigurieren Sie VirtualHosts für jede Website, die auf dem Server gehostet wird.
- DocumentRoot: Geben Sie das Wurzelverzeichnis für jede Website an.
Beispiel einer VirtualHost-Konfiguration (/etc/apache2/sites-available/meine-seite.conf
):
<VirtualHost *:80>
ServerName meine-seite.de
DocumentRoot /var/www/meine-seite
<Directory /var/www/meine-seite>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Aktivieren Sie die Seite mit:
Debian/Ubuntu
sudo a2ensite meine-seite.conf
sudo systemctl reload apache2
CentOS/RHEL
# Inkludieren Sie die Konfigurationsdatei in der httpd.conf
# z.B. Include /etc/httpd/conf.d/meine-seite.conf
sudo systemctl reload httpd
3. PHP Installation und Konfiguration
Installieren Sie PHP, die benötigten Erweiterungen und das PHP-FPM Paket.
Debian/Ubuntu
sudo apt install php php-cli php-fpm php-mysql php-gd php-curl php-xml php-mbstring
CentOS/RHEL
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-curl php-xml php-mbstring
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Die PHP-Konfigurationsdatei (php.ini
) befindet sich üblicherweise unter /etc/php/[PHP-VERSION]/php.ini
(Debian/Ubuntu) oder /etc/php.ini
(CentOS/RHEL). Passen Sie diese Datei entsprechend Ihren Bedürfnissen an.
4. PHP-FPM Installation und Konfiguration
PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI Implementierung mit einigen zusätzlichen Funktionen, die für hochfrequentierte Websites nützlich sind. Die Hauptkonfigurationsdatei befindet sich unter /etc/php/[PHP-VERSION]/fpm/php-fpm.conf
und die Pool-Konfigurationen unter /etc/php/[PHP-VERSION]/fpm/pool.d/
.
Erstellen Sie eine Pool-Konfiguration für Ihre Website (z.B. /etc/php/[PHP-VERSION]/fpm/pool.d/meine-seite.conf
):
[meine-seite]
user = www-data
group = www-data
listen = /run/php/php[PHP-VERSION]-fpm-meine-seite.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[error_log] = /var/log/php-fpm-meine-seite-error.log
php_admin_flag[log_errors] = on
Ersetzen Sie [PHP-VERSION]
durch die tatsächliche PHP-Version (z.B. 7.4, 8.0). Passen Sie user
und group
an den Benutzer und die Gruppe an, unter denen Ihr Webserver läuft (üblicherweise www-data
oder apache
).
Starten/Neustarten Sie PHP-FPM:
sudo systemctl restart php[PHP-VERSION]-fpm
5. Integration von Apache mit PHP-FPM via FastCGI
Konfigurieren Sie Apache, um PHP-Dateien über FastCGI an PHP-FPM zu übergeben. Bearbeiten Sie die VirtualHost-Konfiguration Ihrer Website (z.B. /etc/apache2/sites-available/meine-seite.conf
):
<VirtualHost *:80>
ServerName meine-seite.de
DocumentRoot /var/www/meine-seite
<Directory /var/www/meine-seite>
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy
Yorumlar