Nextcloud Quick Install

Installation auf einem Ubuntu 22.04 LTS

Modul

Bedeutung und Funktion

apache2

Der Apache HTTP Server, einer der am häufigsten verwendeten Webserver.

mariadb-server

MariaDB, eine relationale Datenbank, die eine Abspaltung von MySQL ist.

openssl

Eine Toolkit-Implementierung des Secure Sockets Layer (SSL) und Transport Layer Security (TLS) Protokolls.

php

PHP, eine Skriptsprache, die hauptsächlich für die serverseitige Webentwicklung verwendet wird.

wget

Ein Befehlszeilenprogramm zum Herunterladen von Dateien aus dem Internet.

curl

Ein Befehlszeilen-Tool für die Datenübertragung mit URL-Syntax.

zip und unzip

Werkzeuge zum Komprimieren und Dekomprimieren von Dateien und Verzeichnissen.

php-mysql

PHP-Erweiterung für die MySQL-Datenbankanbindung.

php-zip

PHP-Erweiterung für die Arbeit mit ZIP-Archiven.

libapache2-mod-php

Apache-Modul für die Integration von PHP in den Webserver.

php-xml

PHP-Erweiterung für die Verarbeitung von XML-Dokumenten.

php-mbstring

PHP-Erweiterung für Multibyte-String-Manipulationen.

php-gd

PHP-Erweiterung für die dynamische Erzeugung von Bildern.

php-curl

PHP-Erweiterung für die Unterstützung von cURL, einem Werkzeug für die Datenübertragung mit URLs.

php-apcu

PHP-Erweiterung für den Alternativen PHP Cache - User Cache, ein Cache-System für PHP-Anwendungen.

php-intl

PHP-Erweiterung für Internationalisierung und Lokalisierung.

php-bcmath

PHP-Erweiterung für präzise mathematische Berechnungen mit beliebiger Genauigkeit.

php-gmp

PHP-Erweiterung für GNU Multiple Precision, für mathematische Operationen.

php-imagick

PHP-Erweiterung für die Manipulation von Bildern mit der ImageMagick-Bibliothek.

libmagickcore-6.q16-6-extra

Zusätzliche Bibliotheken für ImageMagick, die für die Bildmanipulation benötigt werden.

Konfigurationsoption

Bedeutung

output_buffering = Off

Deaktiviert den Ausgabe-Puffer.

memory_limit = 2048M

Legt das maximale Limit für den Speicherverbrauch eines einzelnen PHP-Skripts auf 2048 Megabyte fest.

upload_max_filesize = 20G

Definiert die maximale Größe von hochgeladenen Dateien auf 20 Gigabyte.

post_max_size = 20G

Legt das maximale Limit für die Größe aller POST-Daten in einem HTTP-POST-Request auf 20 Gigabyte fest.

opcache.interned_strings_buffer=16

Reserviert 16 Megabyte Speicher im OPcache für internierte Zeichenketten, was die Leistung in Bezug auf Zeichenkettenoptimierung unterstützt.

extension=apcu.so

Aktiviert die Erweiterung „apcu.so“ (Alternative PHP Cache - User Cache), die einen benutzerdefinierten Cache für PHP-Anwendungen bereitstellt.

apc.enable_cli=1

Aktiviert den APC-Cache auch für PHP-CLI (Command Line Interface) Anwendungen.

Vorbereitung des Webservers

Benötigte Pakete

root@nextcloud:~# apt update && apt upgrade -y

apt install -y apache2  mariadb-server openssl php wget curl zip unzip php-mysql php-zip libapache2-mod-php php-xml php-mbstring php-gd php-curl php-apcu php-intl php-bcmath php-gmp php-imagick libmagickcore-6.q16-6-extra

MariaDB - Datenbank

mysql_secure_installation
	Enter current password for root (enter for none):
	Switch to unix_socket authentication [Y/n] n
	Change the root password? [Y/n] Y
	New password:SQL#Root
	Re-enter new password:SQL#Root
	Remove anonymous users? [Y/n] Y
	Disallow root login remotely? [Y/n] Y
	Remove test database and access to it? [Y/n] Y
	Reload privilege tables now? [Y/n] Y

Nextcloud DB Einrichten

root@nextcloud:~# mysql
	create database nextcloud;
	create user 'nc_user'@'localhost' identified by 'nc_pass';
	grant all privileges on nextcloud.* to 'nc_user'@'localhost' identified by 'nc_pass';
	flush privileges;
	exit;	

Testen

root@nextcloud:~# mysql -u nc_user -p
	show databases;
	exit;

Webserver Anpassen

Apache2 Anpassen

root@nextcloud:~# vi /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/nextcloud
      
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory "/var/www/nextcloud">
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </Directory>

</VirtualHost>

PHP Anpassungen

root@nextcloud:~# vi /etc/php/8.1/apache2/php.ini
	output_buffering = Off
	memory_limit = 2048M
	upload_max_filesize = 20G
	post_max_size = 20G
	opcache.interned_strings_buffer=16

vi /etc/php/8.1/mods-available/apcu.ini
extension=apcu.so
apc.enable_cli=1

Aktivieren der Änderungen

a2enmod rewrite
root@nextcloud:~# systemctl restart apache2
root@nextcloud:~# mkdir /var/www/nextcloud
root@nextcloud:~# cd /var/www/nextcloud/
root@nextcloud:/var/www/nextcloud# wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
root@nextcloud:/var/www/nextcloud# cd ..
root@nextcloud:/var/www# chown -R www-data:www-data nextcloud/

root@nextcloud:~# vi /var/www/nextcloud/config/config.php
	

IP-Adresse im Webbroser aufrufen, es sollte die Initiale Installations Seite der Nextcloud zu sehen sein.

!BILD-Admin!