[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-imagicksudo apt install php-imagick