Autor: MacFlieger
September 24, 2017, 19:37:04
Reserviert für Ergänzungen
sudo apt-get purge xy
sudo apt-get clean
sudo apt-get autoremove --purge
"update" aktualisiert die Paketquellensudo raspi-config
sudo nano /boot/cmdline.txt
In die Befehlszeile wird dann hinter dem Eintrag "fsck.repair=yes" noch zusätzlich "fsck.mode=force" eingetragen.sudo tune2fs -l /dev/mmcblk0p2
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on
Dann nach Updates suchen und diese installieren. Dabei beachten, ob auch das owncloud-Paket ein Update bekommt:sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge
"update" aktualisiert die Paketquellensudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off
sudo -u www-data php /var/www/html/nextcloud/updater/updater.phar
Danach evtl noch den Upgrader starten und die Rechte korrigieren:sudo -u www-data php /var/www/owncloud/occ upgrade
sudo /root/setPermissions
sudo apt-get install samba samba-common-bin
sudo smbpasswd -a pi
Dabei wird ein Kennwort abgefragt, welches dann nur für die SMB-Verbindung gilt.sudo nano /etc/samba/smb.conf
Am Ende der Datei die folgenden Zeilen eingefügen:[USB-HDD]
path=/media/usb-hdd
available=yes
browseable=yes
guest ok=no
writeable=yes
Danach den Editor wieder mit Ctrl-X, J und Return beenden.sudo nano /root/dbbackup
Der Inhalt ist (Kennwort beim Befehl mysqldump muss durch das Kennwort des root-Benutzers von MySQL ersetzt werden):#!/bin/bash
backup=/media/usb-hdd/backup/DB
anzahl=7
datum=`date +%Y-%m-%d_%H-%M-%S`
# Evtl. Backupordner mounten
#mount -t cifs //192.168.1.1/raspberry /media/usb-hdd/backup -o user=username,pass=kennwort
# Ordner anlegen
mkdir $backup/$datum
# Backup erstellen
cp -R /var/www/html/nextcloud/config $backup/$datum/
mysqldump -pKennwort -u root nextcloud >$backup/$datum/nextcloud.sql
# Ordner loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Evtl. Backupordner umounten
#umount /media/usb-hdd/backup
Den Editor mit Ctrl-X, J und Return beenden.sudo chmod 755 /root/dbbackup
sudo crontab -e
Wieder ans Ende der Datei:0 2 * * * /root/dbbackup >/dev/null 2>&1
Und erneut mit Ctrl-X, J und Return beenden.sudo nano /root/sdbackup
Der Inhalt ist:#!/bin/bash
backup=/media/usb-hdd/backup/SD
anzahl=3
datum=`date +%Y-%m-%d_%H-%M-%S`
dienste="service mysql"
# Evtl. Backupordner mounten
#mount -t cifs //192.168.1.1/raspberry /media/usb-hdd/backup -o user=username,pass=kennwort
# Dienste anhalten
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on
$dienste stop
# Backup erstellen
dd if=/dev/mmcblk0 of=$backup/$datum.img bs=1MB
# Dienste wieder starten
$dienste start
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off
# Backups loeschen
ls -trd $backup/* | head -n-$anzahl | xargs rm -rf
# Evtl. Backupordner umounten
#umount /media/usb-hdd/backup
Den Editor mit Ctrl-X, J und Return beenden.sudo chmod 755 /root/sdbackup
sudo crontab -e
Wieder ans Ende der Datei:0 3 * * 5 /root/sdbackup >/dev/null 2>&1
Und erneut mit Ctrl-X, J und Return beenden.sudo mkdir -p /media/usb-hdd/nextcloud/data
sudo chown -R www-data:www-data /media/usb-hdd/nextcloud/data
sudo chmod 0770 /media/usb-hdd/nextcloud/data
sudo reboot
sudo /root/setPermissions
Die grundlegende Einrichtung von Nextcloud ist abgeschlossen.sudo nano /etc/php/7.0/fpm/pool.d/www.conf
Die folgenden Zeilen müssen auskommentiert werden:env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Abschließend PHP7.FPM neu starten:sudo /etc/init.d/php7.0-fpm reload
sudo nano /etc/php/7.0/fpm/php.ini
Dann die folgenden Zeilen suchen und entsprechend ändern:opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1
Editor wieder mit Ctrl-X, J und Return beenden und PHP7 neu starten:sudo /etc/init.d/php7.0-fpm reload
sudo nano /var/www/html/nextcloud/config/config.php
Dann vor der schließenden Klammer folgende Zeile hinzufügen:'memcache.local' => '\OC\Memcache\APCu',
sudo nano /var/www/html/nextcloud/.user.ini
Nach den Zeilen mit upload_max filesize und post_max_size suchen und so ändern:php_value upload_max_filesize 2G
php_value post_max_size 2G
post_max_size = 2G
Editor wieder mit Ctrl-X, J und Return beenden.sudo crontab -u www-data -e
Beim allererstenmal bekommt man evtl. noch eine Frage, welchen Editor man verwenden möchte. Dort wählen wir dann den mittlerweile vertrauten Editor "nano" aus.*/15 * * * * php -f /var/www/nextcloud/cron.php >/dev/null 2>&1
Editor wieder mit Ctrl-X, J und Return verlassen. Ab jetzt wird das Skript alle 15 Minuten aufgerufen.cloud4.apfelinsel.de. IN CNAME hsdbdhsurf74hb3s.myfritz.net
cloud4.apfelinsel.de. IN CNAME raspberry.hsdbdhsurf74hb3s.myfritz.net
cloud4.apfelinsel.de. IN CNAME de1.portmap64.net
cloud6.apfelinsel.de. IN CNAME raspberry.hsdbdhsurf74hb3s.myfritz.net
sudo apt-get update
sudo apt-get install nginx mariadb-client mariadb-server php7.0-common php7.0-fpm php7.0-cli php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-pear php7.0-gd php7.0-zip php7.0-xml php7.0-mbstring php7.0-apcu
sudo mysql_secure_installation
Dabei dann immer mit Y antworten bzw. das gewünschte root-Kennwort eingeben.sudo mysql -u root -p
In diese MySQL-Shell gibt man nun die folgenden Befehle ein und schliesst die Shell zum Schluss wieder mit exit. "HierdasKennwort" muss natürlich gegen das gewünschte Kennwort für den nextcloud -Benutzer ausgetauscht werden.CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'HierdasKennwort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
exit;
cd /var/www/html
sudo wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.zip
sudo unzip nextcloud-12.0.3.zip
sudo rm nextcloud-12.0.3.zip
sudo chown -R www-data:www-data nextcloud
sudo openssl genrsa -out serverx.key 4096
sudo openssl req -new -key serverx.key -out serverx.csr
sudo openssl x509 -req -days 365 -in serverx.csr -signkey serverx.key -out serverx.crt
sudo chmod 400 serverx.key
sudo mv serverx.key /root/serverx.key
sudo mv serverx.crt /root/serverx.crt
sudo nano /etc/dhcpcd.conf
Dann wird die Zeileslaac private
inslaac hwaddr
Den Editor mit Ctrl-X, J und Return verlassen und den raspberry neu starten:sudo reboot
sudo nano /etc/php/7.0/fpm/php.ini
Hier nach max_execution_time suchen und ändern:max_execution_time = 300
Den Editor mit Ctrl-X, J und Return verlassen.sudo nano /etc/php/7.0/fpm/pool.d/www.conf
Hier nach request_terminate_timeout suchen, auskommentieren und ändern:request_terminate_timeout = 300
Den Editor mit Ctrl-X, J und Return verlassen.sudo /etc/init.d/php7.0-fpm reload
sudo nano /etc/nginx/sites-available/default
Der alte Inhalt wird durch den folgenden Text komplett ersetzt. Dabei cloud4.apfelinsel.de bzw. cloud6.apfelinsel.de entsprechend der gewünschten Variante verwenden und die Namen "cloudx" und "serverx" entsprechend anpassen.upstream php-handler {
server unix:/run/php/php7.0-fpm.sock;
}
server {
listen 80;
server_name cloudx.apfelinsel.de;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cloudx.apfelinsel.de;
ssl_certificate /root/serverx.crt;
ssl_certificate_key /root/serverx.key;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /var/www/html/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
# last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
fastcgi_read_timeout 300;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
# add_header Strict-Transport-Security "max-age=15768000;
# includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}
Abschließend noch Nginx neustarten:sudo service nginx reload
sudo nano /root/setPermissions
Dann im Editor folgendes Skript eingeben und mit CTRL-X, J und Return speichern.#!/bin/bash
ncpath='/var/www/html/nextcloud'
datapath='/media/usb-hdd/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750
find ${datapath}/ -type f -print0 | xargs -0 chmod 0640
find ${datapath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${htuser}:${htgroup} ${ncpath}/
chown -R ${htuser}:${htgroup} ${datapath}/
Nun muss das Skript noch als ausführbar markiert werden:sudo chmod +x /root/setPermissions
sudo fdisk -l
Es erscheint eine Liste aller Speichergeräte, z.B.:...
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 31116287 30985216 14,8G 83 Linux
...
Device Boot Start End Sectors Size Id Type
/dev/sda1 256 732558335 732558080 2,7T 7 HPFS/NTFS/exFAT
Die beiden Einträge /dev/mmcblk0p1 und /dev/mmcblk0p2 sind die SD-Karte.umount /dev/sda1
Und nun neu formatiert (Sicherheitsabfrage mit J für Ja beantworten:sudo mkfs.ext4 /dev/sda1
sudo mkdir /media/usb-hdd
Zum automatischen Einbinden brauchen wir die UUID (Universally Unique Identifier). Durch folgenden Befehl werden diese aufgelistet:sudo blkid
Wichtig ist nur die UUID von /dev/sda1, z.B.:/dev/sda1: UUID="e7ef2304-18ab-2a56-7521-12bf3481b1ca" TYPE="ext4"
Die UUID zwischen den Anführungszeichen sollte man kopieren und anschliessend die Datei /etc/fstab ergänzen:sudo nano /etc/fstab
An das Ende der Textdatei muss ein Eintrag für die USB-Festplatte eingetragen werden, z.B.:# USB-Platte
UUID=e7ef2304-18ab-2a56-7521-12bf3481b1ca /media/usb-hdd ext4 defaults 0 0
Editor wieder mit Ctrl-X, J und Return verlassen.sudo mount -a
Dann anschließend die Abfrage des Zustandes:sudo blkid -o list -w /dev/null
In der Liste sollte die Festplatte dann mit korrektem Ordner /media/usb-hdd auftauchen:device fs_type label mount point UUID
-------------------------------------------------------------------------------------
...
/dev/sda1 ext4 /media/usb-hdd e7ef2304-18ab-2a56-7521-12bf3481b1ca
sudo raspi-config
Innerhalb des Konfigurationsprogrammes wird mit den Cursor- und der Return-Taste navigiert.sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get clean
sudo apt-get autoremove --purge