Installation Nextcloud unter Ubuntu 24.04 LTS: Unterschied zwischen den Versionen

Aus Privates Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Installation Nextcloud unter Ubuntu 24.04 LTS
Diese Anleistung basiert auf folgender Anleitung: 
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/ https://apfelcast.com/nextcloud-25-auf-linux-server-ubuntu-22-04-installieren-einfache-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</B>


Die beiden zusätzlichen Änderungen am Schuss ergeben sich nach dem überprüfen der Einstellungen in Nextcloud.
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
'''Nextcloud 25 Installation auf Basis Ubuntu 22.04 LTS'''
-------------------


*Betriebsystem auf aktuellen Stand bringen
  apt update && apt upgrade -y
  apt update && apt upgrade -y




Installion apache
*Installion apache
 
  apt install apache2
  apt install apache2




Installion PHP 8.3
*Installion PHP 8.1
 
  apt install software-properties-common
  apt install software-properties-common
  add-apt-repository ppa:ondrej/php
  add-apt-repository ppa:ondrej/php
Zeile 30: Zeile 24:




*Installion PHP 8.Module
Installion PHP 8.3 Module ohne php-dompdf wie bei PHP 8.1 Module
apt install php8.1 libapache2-mod-php8.1 php8.1-zip php-dompdf php8.1-xml php8.1-mbstring php8.1-gd php8.1-curl php8.1-imagick libmagickcore-6.q16-6-extra php8.1-intl php8.1-bcmath php8.1-gmp php8.1-cli php8.1-mysql php8.1-zip php8.1-gd  php8.1-mbstring php8.1-curl php8.1-xml php-pear unzip nano php8.1-apcu redis-server ufw php8.1-redis


*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
  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


*anpassen der PHP.ini Datei
nano /etc/php/8.1/apache2/php.ini
bzw.
  nano /etc/php/8.3/apache2/php.ini
  nano /etc/php/8.3/apache2/php.ini


Zeile 48: Zeile 45:




Installation Datenbank Server
*Installation Datenbank Server
 
  apt install mariadb-server
  apt install mariadb-server




Maria DB Server Konfiguration
*Maria DB Server Konfiguration
 
  mysql_secure_installation
  mysql_secure_installation




öffnen SQL Dialog
*öffnen SQL Dialog
 
  mysql
  mysql




create database calles nextcloud
*create database calles nextcloud
 
  CREATE DATABASE nextcloud;  
  CREATE DATABASE nextcloud;  




create database user with password
*create database user with password
 
  CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';
  CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';




grant accesss to databse
*grant accesss to databse
 
  GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
  GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';




save changes and exit
*save changes and exit
 
  FLUSH PRIVILEGES;
  FLUSH PRIVILEGES;
  EXIT;
  EXIT;




Download lastest nextcloud version
*Download lastest nextcloud version
 
  cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip
  cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip
  unzip latest.zip
  unzip latest.zip
Zeile 91: Zeile 80:




create new conf
*create new conf
 
nano /etc/apache2/sites-available/nextcloud.conf  


nano /etc/apache2/sites-available/nextcloud.conf </br>
  <VirtualHost *:80>
  <VirtualHost *:80>
  ServerAdmin master@domain.com
    ServerAdmin master@domain.com
  DocumentRoot /var/www/nextcloud/
    DocumentRoot /var/www/nextcloud/
  ServerName demo.domain.com
    ServerName demo.domain.com
  ServerAlias www.demo.domain.com
    ServerAlias www.demo.domain.com
 
  Alias /nextcloud "/var/www/nextcloud/"  
    Alias /nextcloud "/var/www/nextcloud/" </br>
 
    <Directory /var/www/nextcloud/>
  <Directory /var/www/nextcloud/>
      Options +FollowSymlinks
      Options +FollowSymlinks
      AllowOverride All
      AllowOverride All
      Require all granted
      Require all granted
      <IfModule mod_dav.c>
      <IfModule mod_dav.c>
          Dav off
        Dav off
      </IfModule>
      </IfModule>
      SetEnv HOME /var/www/nextcloud
      SetEnv HOME /var/www/nextcloud
      SetEnv HTTP_HOME /var/www/nextcloud
      SetEnv HTTP_HOME /var/www/nextcloud
    </Directory> </br>
  </Directory>  
    ErrorLog ${APACHE_LOG_DIR}/error.log
 
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>
  </VirtualHost>




Enable the NextCloud and Rewrite Module
*Enable the NextCloud and Rewrite Module
 
  a2ensite nextcloud.conf
  a2ensite nextcloud.conf
  a2enmod rewrite
  a2enmod rewrite
Zeile 129: Zeile 114:




restart apache
*restart apache
 
  service apache2 restart
  service apache2 restart




prepare data folder
*prepare data folder
 
  mkdir /home/data/
  mkdir /home/data/
  chown -R www-data:www-data /home/data/
  chown -R www-data:www-data /home/data/




prepare nextcloud Folder
*prepare nextcloud Folder
 
  chown -R www-data:www-data /var/www/nextcloud/
  chown -R www-data:www-data /var/www/nextcloud/
  chmod -R 755 /var/www/nextcloud/
  chmod -R 755 /var/www/nextcloud/




install certbot and create Let's Encrypt SSL-Certificate
*install certbot and create Let's Encrypt SSL-Certificate
 
  apt install certbot python3-certbot-apache
  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.
*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.
*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.
*Nach dem nächsten Schritt kann das Portforwarding sofern vorhanden wieder auf den Reverse Proxy umgestellt werden.
 
erstes Zertifikat anfordern


* erstes Zertifikat anfordern
  certbot --apache -m master@domain.com -d cloud.domain.com
  certbot --apache -m master@domain.com -d cloud.domain.com


 
--> only lasts 90 days
--> only lasts 90 days


gegebenenfall das Paket cron installieren
*gegebenenfall das Paket cron installieren


  install crontab
  install crontab
Zeile 167: Zeile 147:
  40 3 * * 0 letsencrypt renew >> /var/log/letsencrypt-renew.log && service apache2 reload > /dev/null 2>&1
  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.
*Falls ein Revers Proxy im Einsatz ist, dann bitte den nachfolgenden Link beachten.
 
[[Nextcloud Server hinter einem Nginx Reverse Proxy Server]]
Nextcloud Server hinter einem Nginx Reverse Proxy Server


--> Domain ansurfen und Einrichtung abschließen
--> Domain ansurfen und Einrichtung abschließen




Abschliessende Änderungen:
--------------------


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


Fettgedrucktes unter Servername einfügen  
*Erweitern der Datei : /etc/apache2/sites-available/nextcloud-le-ssl.conf um folgenden Eintrag
Fettgedrucktes unter Servername einfügen  


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




    Erweitern der Einstellungen in der Datein /var/www/nextcloud/config/config.php um folgenden Eintrag
*Erweitern der Einstellungen in der Datein /var/www/nextcloud/config/config.php um folgenden Eintrag
 
'default_phone_region' => 'DE',
'default_phone_region' => 'DE',
 
(bei einer Snap Installation unter Ubuntu 20.04 liegt die Datei unter /var/snap/nextcloud/current/config/config.php)
(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]
*Erweiterung der Crontabelle des Users www-data für regelmäßige vom System auszuführende Wartungsaufgaben alle 5 Minuten. [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html Hinweis]]
 
crontab -u www-data -e
crontab -u www-data -e


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

Version vom 6. Juni 2024, 08:07 Uhr

Diese Anleistung basiert auf folgender Anleitung:

https://apfelcast.com/nextcloud-25-auf-linux-server-ubuntu-22-04-installieren-einfache-anleitung

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


Nextcloud 25 Installation auf Basis Ubuntu 22.04 LTS


  • Betriebsystem auf aktuellen Stand bringen
apt update && apt upgrade -y


  • Installion apache
apt install apache2


  • Installion PHP 8.1
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update


  • Installion PHP 8.1 Module
apt install php8.1 libapache2-mod-php8.1 php8.1-zip php-dompdf php8.1-xml php8.1-mbstring php8.1-gd php8.1-curl php8.1-imagick libmagickcore-6.q16-6-extra php8.1-intl php8.1-bcmath php8.1-gmp php8.1-cli php8.1-mysql php8.1-zip php8.1-gd  php8.1-mbstring php8.1-curl php8.1-xml php-pear unzip nano php8.1-apcu redis-server ufw php8.1-redis
  • 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.1/apache2/php.ini
bzw.
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