Benutzer-Werkzeuge

Webseiten-Werkzeuge


ncraspi

NextCloud auf dem Raspberry Pi einrichten

0. Vorbereitung

aktuelles RaspberryPiOS-Image auf SD-Karte schreiben Lite Image für Headless oder volles Image mit Desktop
ssh aktivieren
RasPi starten

  • über ssh anmelden
  • raspi-config
    • Passwort ändern
    • Dateisystem erweitern
    • ssh aktivieren
    • Spracheinstrellungen anpassen
    • Zeitzone konfigurieren
  • reboot
  • update/upgrade

Webmin installieren und anpassen

Weitere Software installieren

 sudo apt install mc gpm htop

Feste IP-Adresse zuweisen

Betriebssystem auf USB-Stick verschieben

USB-Platte fest mounten (PARTUUID eintragen in /etc/fstab)

1. Webserver installieren

 sudo apt install -y \
    apache2\
    mariadb-server\
    mariadb-client\
    php7.3\
    php7.3-mysql\
    php7.3-curl\
    php7.3-gd\
    php7.3-zip\
    php7.3-fpm\
    php7.3-mbstring\
    php7.3-xml\
    php7.3-intl\
    php-imagick
    libapache2-mod-php

MariaDB absichern

 sudo mysql_secure_installation

Datenbank für NextCloud anlegen

 sudo mysql -u root -p
 
 create database NextCloud;
 create user 'nextcloud'@'localhost' identified by '<passwort>';
 grant all on NextCloud.* to 'nextcloud'@'localhost';
 flush privileges;
 quit

NextCloud herunterladen

 cd ~/Download
 wget https://download.nextcloud.com/server/releases/latest.zip

und entpacken

 unzip latest.zip

Verzeichnis nextcloud in den Webserver verschieben und Benutzer anpassen

 sudo mv nextcloud /var/www/html
 sudo chown -R www-data.www-data /var/www/html/nextcloud

Konfiguration für virtuellen Host anlegen

 sudo nano /etc/apache2/sites-available/nextcloud.conf

mit dem Inhalt

 <VirtualHost *:80>
    ServerName p37.ddnss.de
    ServerAdmin pegasus37@gmx.net
    DocumentRoot /var/www/html
    
    ErrorLog ${APACHE_LOG_DIR}/hostname.tld_error.log
    CustomLog ${APACHE_LOG_DIR}/hostname.tld_access.log combined
    
    <Directory /var/www/html>
       Options +FollowSymlinks
       AllowOverride All
       
       <IfModule mod_dav.c>
          Dav off
       </IfModule>
       
       SetEnv HOME /var/www/html
       SetEnv HTTP_HOME /var/www/html
    </Directory>
 </VirtualHost>

Webserver neustarten

 sudo systemctl restart apache2

2. Zertifikat einrichten

Pakete installieren

 sudo apt install certbot python-certbot-apache

Zertifikat anfordern Achtung: Der Raspberry pi muss aus dem Internet auf Port 80 und Port 443 erreichbar sein. Vor diesem Schritt müssen die Ports im Router eingerichtet werden.

 sudo certbot --apache

Automatische Zertifikas-Erneuerung anlegen Mit

 sudo crontab -e

die Cron-Tabelle öffnen und neuen Job eintragen

 0 3 * * * /usr/bin/certbot renew --quiet

Nach dem Speichern wird das Zertifikat rechtzeitig vor Ablauf automatisch erneuert.

Für die Hintergrundarbeiten der NextCloud ist noch ein weiterer Cronjob anzulegen, diesmal für den Benutzer www-data:

 sudo crontab -u www-data -e
 */5 * * * * php -f /var/www/html/nextcloud/cron.php

3. Nextcloud einrichten

Webseite aufrufen

 <ip des Raspberry Pi>/nextcloud

PHP-Optimierungen

OPCache aktivieren

 sudo nano /etc/php/7.3/apach2/php.ini

Einträge aktivieren

 opcache.enable=1
 opcache.enable_cli=1
 opcache.interned_strings_buffer=8
 opcache.max_accelerated_files=10000
 opcache.memory_consumption=128
 opcache.save_comments=1
 opcache.revalidate_freq=1

Filegrössen anpassen

 post_max_size = 2G
 upload_max_filesize = 2G
 max_file_uploads = 200
 memory_limit = 512M

PHP-Memory-Cache

Redis-Server inklusive passendes PHP-Modul installieren

 sudo apt install php-redis redis-server
ncraspi.txt · Zuletzt geändert: 2022/03/24 23:56 von noone

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki