Giga@Sixkiller

[Anleitung] Nextcloud PHP7 inkl. Let´s Encrypt

[Anleitung] Nextcloud PHP7 inkl. Let´s Encrypt

 

Software installieren:

sudo apt-get install apache2 php7.0 php7.0-gd php7.0-curl php7.0-common php7.0-intl php-pear php7.0-apcu php7.0-xml libapache2-mod-php7.0 php7.0-mbstring php7.0-zip curl libcurl3 libcurl3-dev php7.0-mysql mariadb-server-10.1 smbclient

Nextcloud installieren:

cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/nextcloud-13.0.0.zip
sudo unzip nextcloud-13.0.0.zip
sudo rm nextcloud-13.0.0.zip
sudo rm -R html
sudo mv nextcloud html
sudo chown -R www-data:www-data /var/www/html

Wenn man eine Dyn-DNS bei SPDYN hat:

SPDYN:

cd
sudo 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

Config anpassen:

sudo nano /etc/spdnsu.conf

updateHost: update.spdyn.de
host: xxxxx.spdns.de
user: xxxxx.spdn.de
pwd: xxxx-yyyy-ssss (token eingeben)
isToken = 1

Crontab bearbeiten:

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

Testen:

./updater/spdnsu
cat /tmp/spdnsuIP.cnf

hier muss die IP ausgegeben werden

Let`s Encrypt

Hinweis: Es muss Port 80 und 443 zB in der Fritzbox freigegeben sein

sudo systemctl restart apache2
sudo a2enmod ssl
sudo service apache2 restart
sudo apt install git -y
cd /etc
sudo git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo ./letsencrypt-auto

hier wird man aufgefordert, seine Email und Internetadresse einzugeben (xxxx.spdns.de)

sudo nano /etc/letsencrypt/cli.ini
rsa-key-size = 4096
text = True
redirect = True
renew-by-default = True
agree-tos = True
email = mail@mail.de

Zertifikat erneuern:

sudo /etc/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/html/ -d xxxx.spdns.de
sudo crontab -e
0 1 2 * * /etc/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/html/ -d xxxx.spdns.de

Testen

https://www.ssllabs.com/ssltest/analyze.html?d=xxxx.spdns.de
sudo cat /var/log/letsencrypt/letsencrypt.log 

MariaDB konfigurieren:

sudo mariadb
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER nextcloud@localhost identified by 'password';   --->> Passwort ersetzen
GRANT ALL PRIVILEGES on nextcloud.* to nextcloud@localhost;
FLUSH privileges;
quit;

Wenn man das Passwort bei MariaDB aendern moechte:

sudo systemctl stop mariadb
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root' AND Host = 'localhost';
sudo systemctl start mysql
sudo systemctl start mariadb

Nextcloud aufrufen:

nextcloud
passwort
nextcloud
localhost

Sicherheitswarnungen:

HSTS Fehlermeldung:

sudo a2enmod headers
sudo service apache2 restart
ssudo nano /etc/apache2/apache2.conf
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
sudo service apache2 restart
sudo nano /var/www/html/config/config.php

vor dem „),“ dieses eintragen

'memcache.local' => '\OC\Memcache\APCu',
sudo nano /etc/php/7.0/apache2/php.ini
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
sudo service apache2 restart

Fehlerbehebung:

– Fehlender Index „share_with_index“ in der Tabelle „oc_share“.
– Fehlender Index „parent_index“ in der Tabelle „oc_share“.
– Fehlender Index „fs_mtime“ in der Tabelle „oc_filecache“.
– Der „Referrer-Policy“ HTTP-Header ist nicht gesetzt auf „no-referrer“, „no-referrer-when-downgrade“, „strict-origin“ oder „strict-origin-when-cross-origin“. Dadurch können Verweis-Informationen preisgegeben werden. Siehe die W3C-Empfehlung.

Zuerst unter etc/apache.conf folgendes eingeben

Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
Header always set Referrer-Policy “no-referrer”

Danach folgendes ausfuehren:

cd /var/www/html
sudo -u www-data php occ db:add-missing-indices

Fehlermeldung:
Fehlender Index „owner_index“ in der Tabelle „oc_share“.
Fehlender Index „initiator_index“ in der Tabelle „oc_share“

cd /var/www/html
sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ db:convert-filecache-bigint
sudo -u www-data php occ maintenance:mode --off
sudo -u www-data php occ db:add-missing-indices
Installieren des Paketes php-imagick

sudo apt install php-imagick

Print Friendly, PDF & Email