Giga@Sixkiller

[Anleitung] Nextcloud inkl. Let`s Encrypt

[Anleitung] Nextcloud inkl. Let`s Encrypt

Nextcloud inkl. Let`s Encrypt auf einem Raspberry Pi 2

sudo apt-get install apache2 mariadb-server libapache2-mod-php5
sudo apt-get install php5-gd php5-json php5-mysql php5-curl
sudo apt-get install php5-intl php5-mcrypt php5-imagick

-> Hier Passwort fuer die MariaDB vergeben

Konfiguration MariaDB

sudo apt-get install phpmyadmin

Konfiguration mit „apache2“ bestaetigen / Naechste Aufforderung ebenfalls mit Ja bestaetigen –> Passwort eingeben

Zugriff auf phpmyadmin:  Im Browser localhost/phpmyadmin eingeben (User: root)

Aendern der Konfig-Datei

 

sudo nano /etc/apache2/apache2.conf

hier folgendes eingeben:

Include /etc/phpmyadmin/apache.conf

Apache-Server neu starten

sudo service apache2 restart

 

unter https://nextcloud.com/install/ die.tar.bz2 inkl. der md5 Datei herunterladen

in den Ordner (wo die Datei liegt) wechseln

cd /home/pi

zur Kontrolle kann man ls eingeben, dann muss man beide dateien sehen

cmd5sum -c nextcloud-11.0.3.tar.bz2.md5 < nextcloud-11.0.3.tar.bz2
sudo wget https://download.nextcloud.com/server/releases/nextcloud-11.0.3.tar.bz2.asc
sudo wget https://nextcloud.com/nextcloud.asc
sudo gpg --import nextcloud.asc
sudo gpg --verify nextcloud-11.0.3.tar.bz2.asc nextcloud-11.0.3.tar.bz2

Dateien entpacken

sudo tar -xjf nextcloud-11.0.3.tar.bz2
Ordner in wwww kopieren
sudo cp -r nextcloud /var/www

Nextcloud.conf erstellen und bearbeiten

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

hier folgendes eintragen

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Symlink erstellen

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Erweiterungen installieren

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo a2enmod setenvif

Apache-Server neu starten

sudo service apache2 restart
Rechte anpassen
sudo chown -R www-data:www-data /var/www/nextcloud/

Nextcloud im Browser aufrufen localhost/nextcloud

User und PW vergeben…und finish anklicken

ueber phpmyadmin neuen Benutzer anlegen. Benutzername und PW vergeben Datenbank mit gleichen Namen anklicken, alle Rechte

Fertig

+++++++++++++++++++++++++++++++++++++

SSL einrichten

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart
cd /etc/apache2/
cd sites-available/
sudo nano default-ssl.conf

Hier folgendes einfuegen

ServerName cloud.nextcloud.com (anpassen)
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
    </IfModule>
sudo nano 000-default.conf
Hier folgendes einfuegen
ServerName cloud.nextcloud.com (anpassen)
   Redirect permanent / https://cloud.nextcloud.com/ 

Apache-Server neu starten

sudo service apache2 restart
spdns Dynamic DNS Update-Client installieren
udo wget http://my5cent.spdns.de/wp-content/uploads/2014/12/spdnsUpdater_bin.tar.gz
sudo tar -zxvf spdnsUpdater_bin.tar.gz
sudo mv spdnsu.conf /etc/
sudo mkdir updater
sudo mv spdnsu updater/
sudo chmod u+x updater/spdnsu
sudo chown -R pi:pi /home/pi/updater/
sudo rm spdnsUpdater_bin.tar.gz
Folgendes anpassen:
sudo nano /etc/spdnsu.conf

Host / User / Passwort (bei SPDYN den Token eingeben)

sudo crontab -e

hier folgendes eingeben

*/10 * * * * /home/pi/updater/spdnsu

Testen kann man das natuerlich auch:

./updater/spdnsu
es muss eine IP ausgegeben werden

Nun let`s encrypt:
sudo a2enmod ssl
sudo a2enmod headers
sudo service apache2 restart
sudo apt install git -y
cd /etc
cd letsencrypt
sudo git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo ./letsencrypt-auto

Das Zertifikat automatisch erneuern lassen

sudo nano /etc/letsencrypt/cli.ini

hier folgendes eingeben

rsa-key-size = 4096
text = True
redirect = True
renew-by-default = True
agree-tos = True
email = mail@mail.de
sudo /etc/letsencrypt/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/nextcloud/ -d dieeigene.domain.de
sudo crontab -e

hier folgendes eintragen

@weekly root /etc/letsencrypt/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/nextcloud/ -d dieeigene.domain.de
sudo nano /etc/apache2/sites-available/000-default.conf
hier DocumentRoot /var/www/html zu DocumentRoot /var/www/nextcloud aendern

und folgendes eintragen
<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All
</Directory>

Apache-Server neu starten

sudo service apache2 restart
 
Fehlerbehebung:

Memory Cache
sudo nano /var/www/nextcloud/config/config.php

hier folgendes eintragen

'memcache.local' => '\OC\Memcache\APCu',

Nextcloud Update

cd /var/www/nextcloud

sudo -u www-data php occ maintenance:mode --on

cd ../

sudo wget https://download.nextcloud.com/server/releases/neuste.zip

sudo mv nextcloud nextcloud-alt

sudo unzip neuste.zip

sudo cp nextcloud-alt/config/config.php nextcloud/config/config.php

sudo cp -r nextcloud-alt/data nextcloud/

sudo chown -R www-data:www-data nextcloud

cd nextcloud

sudo -u www-data php occ upgrade

sudo -u www-data php occ maintenance:mode --off

cd ../

sudo rm -r nextcloud-alt



 Update Nextcloud 11 -> 12

Das Update 12 laesst sich bei installiertem Lets Encrypt nicht installieren. Das Update bricht mit dem Fehler ".well-known" ab.

Der einzig mir bekannte Work-Arround ist, den Ordner .well-known zu loeschen und spaeter wieder einzufuegen. Bei liegt der Ordner unter /var/www/nextcloud.
 Security & setup warnings

"The PHP Opcache ist not properly configured"
[opcache]
; Determines if Zend OPCache is enabled
;opcache.enable=0
opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0
opcache.enable_cli=1

; The OPcache shared memory storage size.
;opcache.memory_consumption=64
opcache.memory_consumption=128

; The amount of memory for interned strings in Mbytes.
;opcache.interned_strings_buffer=4
opcache.interned_strings_buffer=8

; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 100000 are allowed.
;opcache.max_accelerated_files=2000
opcache.max_accelerated_files=10000

; How often (in seconds) to check file timestamps for changes to the shared
; memory storage allocation. ("1" means validate once per second, but only
; once per request. "0" means always validate)
;opcache.revalidate_freq=2
opcache.revalidate_freq=1

; Enables or disables file search in include_path optimization
;opcache.revalidate_path=0

; If disabled, all PHPDoc comments are dropped from the code to reduce the
; size of the optimized code.
;opcache.save_comments=1
opcache.save_comments=1
sudo systemctl reload apache2
Print Friendly, PDF & Email