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 6: Zeile 6:
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


Die Anleitung wurde wegen neuer PHP Version 8.3 etwas angepasst
<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.
Zeile 13: Zeile 13:
Nextcloud 29 Installation auf Basis Ubuntu 24.04 LTS
Nextcloud 29 Installation auf Basis Ubuntu 24.04 LTS


    Betriebsystem auf aktuellen Stand bringen
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.1
Installion PHP 8.3


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




    Installion PHP 8.1 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
nano /etc/php/8.3/apache2/php.ini
bzw.
nano /etc/php/8.3/apache2/php.ini


memory_limit = 1024M
memory_limit = 1024M
upload_max_filesize = 16G
upload_max_filesize = 16G
post_max_size = 16G
post_max_size = 16G
date.timezone = Europe/Berlin
date.timezone = Europe/Berlin
output_buffering = Off
output_buffering = Off




    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
mv nextcloud /var/www/
mv nextcloud /var/www/




    create new conf
create new conf


nano /etc/apache2/sites-available/nextcloud.conf  
nano /etc/apache2/sites-available/nextcloud.conf  


<VirtualHost *:80>
<VirtualHost *:80>
   ServerAdmin master@domain.com
   ServerAdmin master@domain.com
   DocumentRoot /var/www/nextcloud/
   DocumentRoot /var/www/nextcloud/
Zeile 121: Zeile 116:
   ErrorLog ${APACHE_LOG_DIR}/error.log
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
   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
a2enmod headers
a2enmod headers
a2enmod env
a2enmod env
a2enmod dir
a2enmod dir
a2enmod mime
a2enmod mime




    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
crontab -e
crontab -e
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

Version vom 6. Juni 2024, 08:06 Uhr

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