Nextcloud (Ubuntu 18.04)

Aus Tutorials
Zur Navigation springen Zur Suche springen

Voraussetzungen

sudo apt-get update
sudo apt-get install -y libapache2-mod-php php-curl php-gd php-json php-mbstring php-zip php-xml php-common php-mysql php-intl php-imagick php-bcmath php-gmp

Installation

https://nextcloud.com/install/
cd ~/temp
wget https://download.nextcloud.com/server/releases/nextcloud-19.0.0.zip
unzip nextcloud-19.0.0.zip
sudo mv nextcloud /mnt/synology/web1/www/nextcloud19_0_0
cd /mnt/synology/web1/www/
sudo chown -R www-data:www-data nextcloud19_0_0
sudo ln -s nextcloud19_0_0 nextcloud

MariaDB-Datenbank anlegen

mysql -u root -p
mysql> create database if not exists nextcloud;
mysql> create user 'nextcloud'@'%' identified by '<password>';
mysql> grant all on nextcloud.* to 'nextcloud'@'%'; 
mysql> flush privileges;
mysql> quit;

Konfiguration

Apache

sudo a2enmod rewrite && sudo a2enmod headers && sudo a2enmod env && sudo a2enmod dir && sudo a2enmod mime && sudo a2enmod ssl
sudo systemctl restart apache2.service 

Conf-Datei

sudo vi /etc/apache2/conf-available/nextcloud.conf
Alias /nextcloud "/mnt/synology/web1/www/nextcloud/"

<Directory /mnt/synology/web1/www/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
    Dav off
  </IfModule>
</Directory>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2.service
http://10.0.0.176/nextcloud/

Port 443 (HTTPS)

Erstellung eines SSL-Zertifikates siehe SSL_Zertifikat

sudo vi /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
        ServerName nextcloud.kirner.or.at
        Redirect / https://nextcloud.kirner.or.at
</VirtualHost>
sudo vi /etc/apache2/sites-available/nextcloud-ssl.conf
<VirtualHost *:443>
    ServerName nextcloud.kirner.or.at
    ServerAlias nextcloud.kirner.or.at
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/nextcloud.crt
    SSLCertificateKeyFile /etc/ssl/private/apache.key
    # Pfad zu den Webinhalten
    DocumentRoot /mnt/synology/web1/www/nextcloud

    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
    </IfModule>

    KeepAlive On
    KeepAliveTimeout 5

    ErrorLog ${APACHE_LOG_DIR}/nextcloud.kirner.or.at-error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud.kirner.or.at-access.log combined
</VirtualHost>
sudo a2ensite nextcloud
sudo a2ensite nextcloud-ssl
sudo systemctl reload apache2.service

Optionale Konfigurationen

Cronjobs

sudo crontab -e
*/5  *  *  *  * sudo -u www-data php -f /mnt/synology/web1/www/nextcloud/cron.php

Links

https://docs.nextcloud.com/server/19/admin_manual/configuration_server/background_jobs_configuration.html

Redis Server

Installation

siehe Redis-Server

Konfiguration

sudo vi /mnt/synology/web1/www/nextcloud/config/config.php
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
  'host' => '/var/run/redis/redis-server.sock',
  'port' => 0,
  'timeout' => 0.0,
  'dbindex' => 1, // use different database for different applications
),

Links

https://docs.nextcloud.com/server/19/admin_manual/configuration_files/files_locking_transactional.html

HTTP2

Installation

siehe Apache HTTP#HTTP2 einrichten

Links

https://docs.nextcloud.com/server/19/admin_manual/installation/server_tuning.html

Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB

Die Dateien

sudo vi /etc/php/7.3/apache2/php.ini

und

sudo vi /etc/php/7.3/fpm/php.ini

editieren und jeweils folgenden Eintrag anpassen:

memory_limit = 512M

Security

Siehe Nextcloud_Security

Update

Allgemein

cd /mnt/synology/web1/www/nextcloud/
sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php /mnt/synology/web1/www/nextcloud/updater/updater.phar
sudo -u www-data php occ maintenance:mode --off

Links

https://docs.nextcloud.com/server/stable/admin_manual/maintenance/upgrade.html

Nextcloud 21

Dem Modul php-imagick fehlt die SVG-Unterstützung. Für eine bessere Kompatibilität wird empfohlen, es zu installieren.

sudo apt-get install libmagickcore-6.q16-6-extra
Links

https://blog.wydler.eu/2021/04/12/nextcloud-21-php-erweiterung-php-imagick-fehlt/

Nextcloud 22

The PHP OPcache module is not properly configured

The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.


Die Dateien

sudo vi /etc/php/7.3/apache2/php.ini

und

sudo vi /etc/php/7.3/fpm/php.ini

editieren und jeweils folgenden Einträge einkommentieren:

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

Folgenden Eintrag auf 64 erhöhen:

opcache.interned_strings_buffer=64

Danach die Konfiguration neu laden:

sudo systemctl reload apache2.service
Links

https://help.nextcloud.com/t/the-php-opcache-is-not-properly-configured/36147

Apps

Nextcloud Apps

Links

https://docs.nextcloud.com/server/19/admin_manual/installation/

https://docs.nextcloud.com/server/19/admin_manual/installation/example_ubuntu.html


Zurück zu Nextcloud