====NextCloud auf dem Raspberry Pi einrichten==== ===0. Vorbereitung=== aktuelles RaspberryPiOS-Image auf SD-Karte schreiben [[https://downloads.raspberrypi.org/raspbian_lite_latest|Lite Image für Headless]] oder [[https://downloads.raspberrypi.org/raspbian_latest|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 [[piwebmin|Webmin]] installieren und anpassen Weitere Software installieren sudo apt install mc gpm htop [[staticip|Feste IP-Adresse zuweisen]] [[usbraspi|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 ''; 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 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 Options +FollowSymlinks AllowOverride All Dav off SetEnv HOME /var/www/html SetEnv HTTP_HOME /var/www/html 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 /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