Beschreibung der Aufgabe / des Problems
Ein Webserver wird benötigt, um PHP-Webseiten oder Anwendungen wie Nextcloud zu betreiben.
Dabei soll ein Linux Webserver in einer Proxmox VM oder einem LXC Container eingerichtet werden.
Zusätzlich soll:
- PHP über PHP-FPM ausgeführt werden
- ein SFTP Upload Benutzer für Webseiten eingerichtet werden
- die Verzeichnisstruktur für mehrere Webseiten vorbereitet werden
Diese SOP beschreibt die vollständige Installation eines PHP Webservers mit Apache, PHP-FPM und SFTP Zugriff .
Ziel / Endergebnis
Nach Abschluss dieser SOP existiert ein funktionierender:
- Apache Webserver
- PHP-FPM Installation
- Webverzeichnisstruktur
- SFTP Upload Benutzer
- funktionierende PHP-Testseite
Serverstruktur:
/var/www/html/
├── webseite
└── nextcloud
Upload erfolgt über SFTP mit FileZilla .
Voraussetzungen
Folgende Voraussetzungen müssen erfüllt sein:
- optional: FileZilla für Dateiübertragung
- Linux Server (z.B. Debian oder Ubuntu)
- Root oder Sudo Zugriff
- Internetverbindung
- Proxmox VM oder LXC Container (empfohlen)
- SSH Zugriff auf den Server
Link: https://www.youtube.com/watch?v=csmVMghOF80&t=4s
Text-Anleitung
- System aktualisieren
sudo apt update
sudo apt upgrade -y
sudo apt install sudo curl wget unzip -y
2. Apache Webserver installieren
sudo apt install apache2 -y
Status prüfen:
sudo systemctl status apache2
Webserver testen:
- PHP und Erweiterungen installieren
sudo apt install php php-fpm php-cli php-mysql php-xml php-curl php-zip php-gd php-mbstring php-intl -y
4. Apache für PHP-FPM konfigurieren
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php*-fpm
Diese Module ermöglichen die Kommunikation zwischen:
- Apache
- PHP-FPM
5. SFTP Benutzer erstellen
sudo adduser webftp
Dieser Benutzer wird später für Datei-Uploads über SFTP verwendet.
6. Webserver Verzeichnis absichern
Root bleibt Eigentümer der Hauptverzeichnisse.
sudo chown root:root /var/www
sudo chmod 755 /var/www
sudo chown root:root /var/www/html
sudo chmod 755 /var/www/html
7 Webseiten Ordner erstellen
sudo mkdir -p /var/www/html/webseite
sudo mkdir -p /var/www/html/nextcloud
Berechtigungen setzen:
sudo chown -R webftp:www-data /var/www/html/webseite
sudo chown -R webftp:www-data /var/www/html/nextcloud
sudo chmod -R 775 /var/www/html/webseite
sudo chmod -R 775 /var/www/html/nextcloud
8. SSH für SFTP konfigurieren
SSH Konfiguration öffnen:
sudo nano /etc/ssh/sshd_config
Am Ende hinzufügen:
Match User webftp
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Dadurch:
- wird der Benutzer auf
/var/wwwbeschränkt - kann nur SFTP verwenden
- kein SSH Terminal
SSH neu starten:
sudo systemctl restart ssh
9. PHP Testseite erstellen
nano /var/www/html/webseite/info.php
<?php
phpinfo();
?>
Im Browser aufrufen: http://SERVER-IP/webseite/info.php
Die Seite zeigt:
- PHP Version
- installierte Module
- Serverinformationen
Besonderheiten
Diese Installation nutzt:
- Apache
- PHP-FPM (bessere Performance als mod_php)
- SFTP Upload Benutzer
Empfohlen für:
Proxmox Lab Umgebungen
Nextcloud
PHP Webseiten
Webentwicklung
Weiterführende Fragen
Wie installiere ich einen PHP Webserver auf Linux?
Ein PHP Webserver wird installiert, indem Apache oder Nginx installiert wird und anschließend PHP sowie PHP-FPM hinzugefügt werden.
Wie installiere ich Apache und PHP auf Debian?
sudo apt install apache2 php php-fpm
Was ist PHP-FPM?
PHP-FPM (FastCGI Process Manager) ist eine moderne Methode, PHP über Webserver wie Apache oder Nginx auszuführen.
Wie teste ich PHP auf einem Webserver?
Mit einer Datei: info.php (s.o.)
Wie lade ich Dateien auf einen Webserver hoch?
Über:
- SFTP
- FTP Client (z.B. FileZilla)