Dies ist eine alte Version des Dokuments!
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 Webmin und anpassen
Weitere Software installieren
sudo apt install mc htop
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 pegasus37.no-ip.info
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
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
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
