Proxmox PHP Webserver installieren (Apache + PHP-FPM + SFTP Anleitung)

SOP Übersicht und Anhänge

SOP-Metadaten

SOP-Nummer: SOP1009
Priorität: Prio 4
Dauer: 30 Minuten
Status: Aktuell

Download:

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

Video-Anleitung

Link: https://www.youtube.com/watch?v=csmVMghOF80&t=4s

Text-Anleitung

  1. 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:

http://SERVER-IP

3. 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/www beschrä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

Inhalt:

<?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)

Weiterführende Dokumente

Interne Dokumente:
Externe Dokumente:

Apache Dokumentation

https://httpd.apache.org/docs

PHP Dokumentation

https://www.php.net/docs.php

Was ist eine SOP (Standard Operating Procedure)?

Eine SOP (Standard Operating Procedure) ist eine klar definierte, schriftliche Arbeitsanweisung, die beschreibt, wie ein Prozess Schritt für Schritt korrekt ausgeführt wird. Sie sorgt dafür, dass Aufgaben einheitlich, nachvollziehbar und in gleichbleibender Qualität erledigt werden.