Diese Anleitung zeigt anhand eines nicht verwalteten (unmanaged) VPS, wie der Apache-Webserver und PHP auf einem AlmaLinux- oder Rocky Linux 9-System installiert werden können. Zusammen mit dem Datenbankserver (siehe: Installation von MariaDB unter AlmaLinux 9) ergibt dies die sogenannte LAMP-Umgebung (Linux, Apache, MySQL/MariaDB, PHP), die für WordPress und die meisten PHP-Anwendungen erforderlich ist.
Wenn Sie den Server nicht über die Befehlszeile verwalten möchten, sollten Sie die Verwendung eines Control Panels in Betracht ziehen (siehe: Welches Control Panel sollte ich für meinen VPS wählen?).
Führen Sie die Befehle als Root-Benutzer oder mit „sudo“ aus.
1. Aktualisierung des Systems
sudo dnf update -y
2. Installation von Apache
sudo dnf install -y httpd
sudo systemctl enable --now httpd
Wenn auf dem Server „firewalld“ läuft (die Ausgabe von „sudo firewall-cmd --state“ lautet „running“), öffnen Sie bitte die Web-Ports (siehe: Wie richte ich eine Firewall auf meinem VPS ein?). Auf den AlmaLinux-Cloud-Images ist „firewalld“ standardmäßig nicht installiert; dort entfällt dieser Schritt:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Zu diesem Zeitpunkt wird im Browser unter der Adresse http://<szerver IP-címe> bereits die Apache-Testseite angezeigt.
3. Auswahl der PHP-Version
AlmaLinux 9 bietet mehrere PHP-Versionen als Module (Module Stream) an. Die verfügbaren Versionen sind:
dnf module list php
Die Standardversion ist 8.0, die von den PHP-Entwicklern nicht mehr unterstützt wird und auf der viele neuere Anwendungen nicht mehr laufen. Wählen Sie eine neuere Version aus, beispielsweise 8.3 (sofern diese in der Liste aufgeführt ist):
sudo dnf module reset php -y
sudo dnf module enable php:8.3 -y
Sollten Sie eine neuere PHP-Version als die in der Liste aufgeführten benötigen oder mehrere PHP-Versionen parallel ausführen wollen, können Sie das Remi-Repository nutzen. Die Möglichkeiten werden im Artikel „PHP-Installation unter AlmaLinux 9 und 10“ verglichen.
4. Installation von PHP und gängigen Plugins
sudo dnf install -y php php-fpm php-cli php-mysqlnd php-gd php-xml php-mbstring php-intl php-opcache php-pecl-zip
WordPress und die meisten CMS funktionieren mit diesen Plugins; die installierten Plugins werden mit dem Befehl „php -m“ aufgelistet.
Unter AlmaLinux 9 führt Apache PHP über den PHP-FPM-Dienst aus; dies wird automatisch durch das Paket „php-fpm“ konfiguriert (/etc/httpd/conf.d/php.conf). Starten Sie den Dienst und laden Sie Apache neu:
sudo systemctl enable --now php-fpm
sudo systemctl restart httpd
Überprüfung
php -v
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
Öffnen Sie die Adresse http://<szerver IP-címe>/info.php: Auf der PHP-Konfigurationsseite muss in der Zeile „Server API“ der Wert „FPM/FastCGI“ stehen. Löschen Sie die Datei nach der Überprüfung, da sie zahlreiche Informationen über den Server preisgibt:
sudo rm /var/www/html/info.php
5. Virtueller Host für die Domain
Wenn Sie die Websites einer oder mehrerer Domains auf einem Server bereitstellen möchten, richten Sie für jede davon einen virtuellen Host ein. Erstellen Sie das Verzeichnis für die Website:
sudo mkdir -p /var/www/example.hu/public_html
sudo chown -R apache:apache /var/www/example.hu
Anschließend die Konfigurationsdatei:
sudo nano /etc/httpd/conf.d/example.hu.conf
<VirtualHost *:80>
ServerName example.hu
ServerAlias www.example.hu
DocumentRoot /var/www/example.hu/public_html
<Directory /var/www/example.hu/public_html>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/example.hu-error.log
CustomLog /var/log/httpd/example.hu-access.log combined
</VirtualHost>
Die Einstellung „AllowOverride All“ ermöglicht die Verwendung von .htaccess-Dateien, die beispielsweise für die ansprechenden URLs von WordPress erforderlich sind (siehe: Was ist eine .htaccess-Datei und wozu dient sie?).
Überprüfen Sie die Konfiguration und starten Sie anschließend Apache neu:
sudo apachectl configtest
sudo systemctl reload httpd
Stellen Sie den A-Eintrag Ihrer Domain (sowie den der Subdomain „www“) auf die IP-Adresse des Servers ein. Bis die DNS-Einträge aktualisiert sind, können Sie die Seite auch mit dem Befehl „curl“ testen (siehe: Netzwerk-Fehlerbehebung).
6. SELinux
Das in AlmaLinux standardmäßig aktivierte SELinux behandelt die Dateien unter „/var/www“ korrekt. Wenn die Website Schreibvorgänge durchführen muss (Uploads, Cache), eine Verbindung zu einem externen Dienst herstellt oder E-Mails versendet, ist hierfür eine gesonderte Berechtigung erforderlich, zum Beispiel:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/example.hu/public_html/wp-content(/.*)?"
sudo restorecon -Rv /var/www/example.hu
sudo setsebool -P httpd_can_network_connect on
Im Detail: SELinux: Warum erhalte ich die Fehlermeldung „Permission denied“?
7. PHP-Einstellungen
Die allgemeinen PHP-Einstellungen befinden sich in der Datei „/etc/php.ini“. Die am häufigsten geänderten Werte sind:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
date.timezone = Europe/Budapest
Die Anzahl der PHP-FPM-Prozesse können Sie in der Datei „/etc/php-fpm.d/www.conf“ über den Wert „pm.max_children“ steuern. Passen Sie diesen Wert an den Arbeitsspeicher Ihres Servers an, da ein zu hoher Wert zu Speicherengpässen führen kann (siehe: Speicher knapp: OOM-Killer und Auslagerungsdatei).
Starten Sie PHP-FPM nach der Änderung neu:
sudo systemctl restart php-fpm
8. SSL-Zertifikat
Wenn die Domain bereits auf den Server verweist, beantragen Sie bitte ein kostenloses Let’s Encrypt-Zertifikat mit Certbot: Beantragung eines Let’s Encrypt-Zertifikats mit Certbot. Certbot ergänzt den virtuellen Apache-Host automatisch um die HTTPS-Einstellungen.
Nginx anstelle von Apache
Wenn Sie anstelle von Apache den Webserver Nginx verwenden möchten, erfolgt die Installation ähnlich: „sudo dnf install nginx“, gefolgt von „sudo systemctl enable --now nginx php-fpm“. Das php-fpm-Paket enthält auch für Nginx eine vorgefertigte PHP-Konfiguration (/etc/nginx/default.d/php.conf). Die virtuellen Hosts können Sie im Verzeichnis /etc/nginx/conf.d/ als server-Blöcke anlegen; fügen Sie für PHP in jeden davon die Zeile „include /etc/nginx/default.d/*.conf;“ ein. Nginx verwendet keine .htaccess-Dateien; Weiterleitungen müssen im server-Block angegeben werden. Die neueste Nginx-Version kann aus dem eigenen Repository der Entwickler installiert werden, siehe: Installation der Nginx-Mainline-Version unter AlmaLinux.
AlmaLinux 10
Unter AlmaLinux und Rocky Linux 10 sind keine Module vorhanden: Schritt 3 entfällt, und das System installiert PHP 8.3. PHP 8.4 ist seit AlmaLinux 10.2 als Pakete mit dem Präfix „php8.4-“ aus dem System-Repository verfügbar (z. B. „php8.4-fpm“); diese ersetzen die Version 8.3. Einzelheiten hierzu finden Sie im Artikel „PHP-Installation unter AlmaLinux 9 und 10“. Die übrigen Schritte bleiben unverändert.