aktuelles RaspberryPiOS-Image auf SD-Karte schreiben Lite Image für Headless oder volles Image mit Desktop
ssh aktivieren
RasPi starten
Webmin installieren und anpassen
Weitere Software installieren
sudo apt install mc gpm htop
Betriebssystem auf USB-Stick verschieben
USB-Platte fest mounten (PARTUUID eintragen in /etc/fstab)
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
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
Webseite aufrufen
<ip des Raspberry Pi>/nextcloud
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
Redis-Server inklusive passendes PHP-Modul installieren
sudo apt install php-redis redis-server