[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