/etc/apache2/sites-available eine neue Konfiguration anlegen mit untenstehenden VirtualHost Inhalt. Diese Datei muss unbedingt mit .conf enden, z.B. MEIN_Irgendwas.confsudo a2ensite MEIN_Irgendwas.conf den virtual Host aktivieren.
apt-get install php-imap;php-xml;php-gd;php-mbstring;php-intl;php-apcu;php-ldap<VirtualHost irgendwas.eidolf.de:80>
ServerAdmin E-Mail
ServerName irgendwas.eidolf.de
DocumentRoot /var/www/joomla
ErrorLog ${APACHE_LOG_DIR}/osticket-error.log
CustomLog ${APACHE_LOG_DIR}/osticket-access.log combined
</VirtualHost>
https://wiki.ubuntuusers.de/Apache/Virtual_Hosts/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/NameVirtualWebSite-selfsigned.key -out /etc/ssl/certs/NameVirtualWebSite-selfsigned.crt
Ab jetzt werden ein paar Abfragen zum Zertifikat gestellt, diese einfach ausfüllen.
Einen starken Verschlüsselungsalgorythmus erstellen.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
SSL Konfiguration erstellen
sudo nano /etc/apache2/conf-available/ssl-params.conf
Inhalt:
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now. You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLSessionTickets Off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
sudo nano /etc/apache2/sites-available/NameVirtualWebSite-ssl.confInhalt: (Nur ein Beispiel, kann verbessert werden)
<VirtualHost *:443>
DocumentRoot /var/www/your-domain-root
ServerName your-domain.com
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLProtocol TLSv1
</VirtualHost>
sudo a2enmod ssl
sudo a2enmod headers
Apache neu starten
service apache2 restart
Site aktivieren
sudo a2ensite NameVirtualWebSite-ssl
SSL Konfiguration aktivieren
sudo a2enconf ssl-params
Apache Konfiguration neu laden
service apache2 reload
wget <a class="external free" href="http://link_zur_software/" rel="nofollow">http://Link_zur_Software</a>Mit vi oder nano die httpd.conf öffnen
sudo vi /etc/httpd/conf/httpd.conf
/etc/php/7.x/apache2/php.ini
/etc/php/7.x/cli/php.ini
sudo apt-get update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
Befehl
apache2ctl -M | grep php
Zeigt z.B. folgendes an:
php7_module (shared)
Hier kann es noch etwas umständlich werden, da Module auch manuell in Library Dateien hinterlegt sein können.
Diese können folgendermaßen angezeigt werden.
ls -l /usr/lib/apache2/modules/ | grep php
Etwas genauer um die Dateien zu sehen.
grep -R "libphp" /etc/apache2
Diese Datei mit nano bearbeiten, also in folgendem Beispiel die Datei.
Hier einfach die Zeile auskommentieren.
sudo nano /etc/apache2/mods-available/php7.4.load
Das wird später automatisch deaktiviert.
Befehl
update-alternatives --list php
Zeigt z.B. folgendes an:
/usr/bin/php7.4
/usr/bin/php8.1
/usr/bin/php8.5
Wenn man von 8.1 → 8.5 upgraden möchte.
Liste der installierten 8.1‑Module:
Befehl
dpkg -l | grep php8.1
Das ist der wichtigste Schritt — und der sauberste.
Befehl
dpkg -l | grep php8.1 | awk '{print $2}' | sed 's/8.1/8.5/' | xargs sudo apt install -y
Damit werden alle Module 1:1 übernommen, ohne selbständig die einzelnen Module angeben zu müssen.
Befehl
sudo a2dismod $(apache2ctl -M | grep -oP 'php[0-9]+' | head -n1)
Das deaktiviert automatisch:
php7
Vorher prüfen:
Code
ls /etc/apache2/mods-available/ | grep php
Dann aktivieren:
Code
sudo a2enmod php8.5
sudo systemctl restart apache2
Code
sudo update-alternatives --set php /usr/bin/php8.5
Prüfen:
Code
php -v
Nextcloud läuft zum Stand 06.2026 nur mit php Version 8.4
Nextcloud nutzt entweder Apache‑mod_php oder PHP‑FPM.
Prüfen, ob FPM läuft:
Code
systemctl status php8.1-fpm
Wenn FPM aktiv ist, musst du auch 8.5‑FPM aktivieren:
Installieren
sudo apt install php8.5-fpm
Konfigurieren
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.5-fpm
Aktivieren
sudo systemctl enable --now php8.5-fpm
sudo systemctl disable --now php8.1-fpm
Apache‑Konfiguration prüfen:
Code
ls /etc/apache2/sites-enabled/ | xargs grep -R "php8"
Falls du FPM nutzt, musst du den Socket anpassen:
Code
/run/php/php8.5-fpm.sock
Code
sudo systemctl restart apache2
Im Webinterface unter:
Administration → System
Oder per CLI:
Code
sudo -u www-data php8.5 /var/www/nextcloud/occ status
sudo service httpd restart
cd /etc/apache2/sslopenssl genrsa 4096 > server.keyopenssl req -new -sha256 -key ./server.key > request.csrcat request.csrnano /etc/apache2/sites-available/default-sslchmod 600 --recursive /etc/apache2/ssl/etc/init.d/apache2 reload