Verifiziert mit Ubuntu 22.04.2 LTS Minimalversion und Nextcloud 25.0.3

  1. Minimal-Install Ubuntu
  2. Pakete installieren
    apt-get install rsyslog unzip nano cron apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-imagick libmagickcore-6.q16-6-extra php-xml php-zip php-ldap iptables iptables-persistent -y
  3. Firewalleinstellungen setzen
    nano /etc/iptables/rules.v4
    -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m conntrack --ctstate INVALID -j DROP
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -p tcp -s <ip> --dport 22 -j ACCEPT
    -A INPUT -p TCP --dport 80 -j ACCEPT
    -A INPUT -p TCP --dport 443 -j ACCEPT
    -A INPUT -j REJECT

     

  4. Automatische OS-Updates aktivieren: Aktivieren automatisches Update Ubuntu 22.04 
  5. Datenbank für nextcloud vorbereiten
    1. mysql -uroot
    2. CREATE DATABASE nextcloud;
    3. CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '<password>';
    4. GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
  6.  Verzeichniss anlegen
    1. Nextcloud-Verzeichnis
      mkdir -p /srv/nextcloud/data
    2. Verzeichnis für Domänenvalidierung
      mkdir /srv/cert
  7. nextcloud herunterladen
    wget https://download.nextcloud.com/server/releases/latest.zip -O /srv/nextcloud/latest.zip
  8. ...entpacken
    unzip /srv/nextcloud/latest.zip -d /srv/nextcloud
  9. ...umbenennen
    mv /srv/nextcloud/nextcloud /srv/nextcloud/www
  10. Owner und Berechtigungen setzen
    1. chmod -R o-rwx /srv/nextcloud
    2. chown -R www-data:www-data /srv/nextcloud
  11. Zertifikat anfordern oder installieren
  12. Apache-Site konfigurieren
    1. a2enmod ssl
    2. a2enmod rewrite
    3. nano /etc/apache2/sites-available/nextcloud.conf
      Vorlage Website 2.4

      <VirtualHost *:80>
      ServerName nextcloud.sld.tld
      ServerAdmin Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
      DocumentRoot /srv/cert
      RewriteEngine on
      RewriteCond %{REQUEST_URI} !^\/\.well-known\/pki-validation\/.+\.txt$
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      </VirtualHost>

      <VirtualHost *:443>
      ServerName nextcloud.sld.tld
      ServerAdmin Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
      DocumentRoot /srv/nextcloud/www
      SSLEngine on
      SSLCertificateFile /etc/ssl/mycerts/host.sld.tld.cer.2022
      SSLCACertificateFile /etc/ssl/mycerts/host.sld.tld.chain.2022
      SSLCertificateKeyFile /etc/ssl/private/host.sld.tld.key.2022
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>

      <Directory /srv/nextcloud/www>
      SSLRequireSSL
      Require all granted
      AllowOverride All
      </Directory>

    4. a2ensite nextcloud

  13.  PHP konfigurieren: nano /etc/php/8.1/apache2/php.ini
    1. memory_limit = 512M
    2. opcache.interned_strings_buffer = 16
  14. URI aufrufen und Grundinstallation durchführen