Installation Nextcloud unter Ubuntu 24.04 LTS

Aus Privates Wiki
Zur Navigation springen Zur Suche springen

Installation Nextcloud unter Ubuntu 24.04 LTS Zur Navigation springen Zur Suche springen

Diese Anleistung basiert auf folgender Anleitung: https://apfelcast.com/nextcloud-25-auf-linux-server-ubuntu-22-04-installieren-einfache-anleitung

<B<Die Anleitung wurde wegen neuer PHP Version 8.3 etwas angepasst

Die beiden zusätzlichen Änderungen am Schuss ergeben sich nach dem überprüfen der Einstellungen in Nextcloud.


Nextcloud 29 Installation auf Basis Ubuntu 24.04 LTS

Betriebsystem auf aktuellen Stand bringen

apt update && apt upgrade -y


Installion apache

apt install apache2


Installion PHP 8.3

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update


Installion PHP 8.3 Module ohne php-dompdf wie bei PHP 8.1 Module

apt install php8.3 libapache2-mod-php8.3 php8.3-zip php8.3-xml php8.3-mbstring php8.3-gd php8.3-curl php8.3-imagick libmagickcore-6.q16-6-extra php8.3-intl php8.3-bcmath php8.3-gmp php8.3-cli php8.3-mysql php8.3-zip php8.3-gd  php8.3-mbstring php8.3-curl php8.3-xml php-pear unzip nano php8.3-apcu redis-server ufw php8.3-redis


anpassen der PHP.ini Datei

nano /etc/php/8.3/apache2/php.ini
memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin
output_buffering = Off


Installation Datenbank Server

apt install mariadb-server


Maria DB Server Konfiguration

mysql_secure_installation


öffnen SQL Dialog

mysql


create database calles nextcloud

CREATE DATABASE nextcloud; 


create database user with password

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';


grant accesss to databse

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';


save changes and exit

FLUSH PRIVILEGES;
EXIT;


Download lastest nextcloud version

cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
mv nextcloud /var/www/


create new conf

nano /etc/apache2/sites-available/nextcloud.conf 
<VirtualHost *:80>
  ServerAdmin master@domain.com
  DocumentRoot /var/www/nextcloud/
  ServerName demo.domain.com
  ServerAlias www.demo.domain.com

  Alias /nextcloud "/var/www/nextcloud/" 
  <Directory /var/www/nextcloud/>
     Options +FollowSymlinks
     AllowOverride All
     Require all granted
     <IfModule mod_dav.c>
        Dav off
     </IfModule>
     SetEnv HOME /var/www/nextcloud
     SetEnv HTTP_HOME /var/www/nextcloud
  </Directory> 
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Enable the NextCloud and Rewrite Module

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime


restart apache

service apache2 restart


prepare data folder

mkdir /home/data/
chown -R www-data:www-data /home/data/


prepare nextcloud Folder

chown -R www-data:www-data /var/www/nextcloud/
chmod -R 755 /var/www/nextcloud/


install certbot and create Let's Encrypt SSL-Certificate

apt install certbot python3-certbot-apache

Falls diese Maschine hinter einem Reverseproxy platziert ist, dann vorübergehend Port 80 und Port 443 direkt auf diese Maschine weiterleiten. Nur dann funktioniert der nächste Schritt und unter /etc/apache2/sites_available die Datei nextcloud-le-ssl.conf angelegt. Nach dem nächsten Schritt kann das Portforwarding sofern vorhanden wieder auf den Reverse Proxy umgestellt werden.

erstes Zertifikat anfordern

certbot --apache -m master@domain.com -d cloud.domain.com


--> only lasts 90 days

gegebenenfall das Paket cron installieren

install crontab
crontab -e
40 3 * * 0 letsencrypt renew >> /var/log/letsencrypt-renew.log && service apache2 reload > /dev/null 2>&1

Falls ein Revers Proxy im Einsatz ist, dann bitte den nachfolgenden Link beachten.

Nextcloud Server hinter einem Nginx Reverse Proxy Server

--> Domain ansurfen und Einrichtung abschließen


Abschliessende Änderungen:

   Erweitern der Datei : /etc/apache2/sites-available/nextcloud-le-ssl.conf um folgenden Eintrag

Fettgedrucktes unter Servername einfügen

Strict-Transport-Security:

<VirtualHost *:443>
   ServerName cloud.nextcloud.com
   <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
   </IfModule>
</VirtualHost>


   Erweitern der Einstellungen in der Datein /var/www/nextcloud/config/config.php um folgenden Eintrag

'default_phone_region' => 'DE',

(bei einer Snap Installation unter Ubuntu 20.04 liegt die Datei unter /var/snap/nextcloud/current/config/config.php)

   Erweiterung der Crontabelle des Users www-data für regelmäßige vom System auszuführende Wartungsaufgaben alle 5 Minuten. [Hinweis]

crontab -u www-data -e

  • /5 * * * * php -f /var/www/nextcloud/cron.php