Wie installiert man Nextcloud 19 auf Debian Buster mit postgreSQL 11.5 php7.4-fpm Apache2 und HTTP/2
Was ist Neu
ChangeLog
Aber jetzt lassen Sie uns die neue Nextcloud installieren mit postreSQL und php7.4-fpm auf Debian 10 (Buster).
Bedarf:
– eine frische Debian 10 (Buster) installation ohne Gui
– Shell-Zugriff und entsprechende Rechte
– einen DNS A und falls vorhanden einen AAAA record für den Apache vhostStep 1: Install postgreSQL
Zuerst installieren wir postgreSQL als Database-Server:
apt install -y postgresql postgresql-contrib
Jetzt können Sie eine Verbindung zu postgreSQL herstellen mit:
root@db01:/# sudo -u postgres psql
psql (11.5 (Debian 11.5-1+deb10u1))
Type „help“ for help.postgres=#
Sie können Informationen über die Verbindung erhalten mit:
postgres=# \conninfo
You are connected to database „postgres“ as user „postgres“ via socket in „/var/run/postgresql“ at port „5432“.
und Sitzung beenden mit:
postgres-# \q
Step 2: Install Apache2
Mit dem folgenden Befehl installieren wir den Apache-Webserver:
apt install -y apache2 apache2-utils
Step 3: Install php7.4-fpm an recommended moduls
Vor der Installation von php7.4 müssen wir Debian Buster die folgenden Repositories hinzufügen:
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo „deb https://packages.sury.org/php/ $(lsb_release -sc) main“ | sudo tee /etc/apt/sources.list.d/sury_php.list
sudo apt update
Jetzt können wir mit dem folgenden Befehl beginnen, die benötigten Pakete zu installieren:
apt install -y php7.4-cli php7.4-common php7.4-bcmath php7.4-gmp php7.4-mbstring php7.4-gd php-imagick php7.4-intl php7.4-bz2 php7.4-xml php7.4-pgsql php7.4-zip php7.4-dev php7.4-curl php7.4-fpm php-dompdf redis-server php-redis php-smbclient php7.4-ldap
Step 4: Configure Apache2 and php7.4-fpm
Jetzt aktivieren wir die benötigten Module in Apache2 mit:
a2enmod proxy_fcgi setenvif mpm_event rewrite headers env dir mime ssl http2
und danach aktivieren wir php7.4-fpm:
a2enconf php7.4-fpm
Jetzt haben wir die apache2.conf bearbeitet, um die Verwendung von .htaccess-Dateien zu ermöglichen:
nano /etc/apache2/apache2.conf
und ändern Sie den folgenden Code:
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
zu:
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Um HTTP / 2 zu aktivieren, müssen wir diese Zeile zu apache2.conf hinzufügen:
Protocols h2 h2c http/1.1
jetzt müssen wir die php.ini für die nextcloud vorbereiten:
nano /etc/php/7.4/fpm/php.ini
mit folgenden Richtlinien erweitern:
[extend]
opcache.enabled=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
und passen Sie die folgenden Zeilen an:
max_execution_time = 300
max_input_time = 600
memory_limit = 512M
upload_max_filesize = 10240M
Danach müssen der Webserver und php7.4-fpm neu gestartet werden:
systemctl restart apache2 php7.4-fpm
Step 5: Install Certbot and other tools
Um eine SSL-Zertifikat von LetsEncrypt anzufordern, verwenden wir Certbot und das Apache-Plugin:
apt install python-certbot-apache certbot wget curl sudo unzip
Step 6: Create Database
Bevor wir die Nextcloud installieren können, müssen wir zuerst eine Datenbank in postgreSQL erstellen. Dazu führen wir folgende Befehle aus:
sudo -u postgres psql
dann Zeile für Zeile ausführen:
CREATE USER nextcloud WITH PASSWORD ‚your-password‘;
CREATE DATABASE nextclouddb TEMPLATE template0 ENCODING ‚UNICODE‘;
ALTER DATABASE nextclouddb OWNER TO nextcloud;
GRANT ALL PRIVILEGES ON DATABASE nextclouddb TO nextcloud;
\q
Step 7: Download Nextcloud and create filesystem
Jetzt ist es Zeit, die neueste Version von Nextcloud 19 von nextcloud herunterzuladen:
wget https://download.nextcloud.com/server/releases/latest-19.zip
und entpacken Sie das heruntergeladene Archiv:
unzip latest-19.zip
Danach verschieben wir den Ordner nextcloud an die richtige Stelle.
Wir verschieben den gesamten Ordner in den Pfad /var/www/html/
mv nextcloud /var/www/html/
chown -R www-data:www-data /var/www/html/nextcloud
Sie können das heruntergeladene Archiv jetzt löschen:
sudo rm latest-19.zip
Für unsere nextcloud-Dateien bereiten wir ein Verzeichnis außerhalb von /var/www/html/nextcloud vor:
mkdir /nextcloud_data
und ändern Sie den Eigentümer in www-data:
chown -R www-data:www-data /nextcloud_data
Das Dokumentenstammverzeichnis für Apache lautet jetzt /var/www/html/nextcloud
Step 8: Create Apache2 vHost and secure with SSL
Um einen Apache-vhost zu erstellen, erstellen wir einfach eine neue .conf in /etc/apache2/sites-available/:
nano /etc/apache2/sites-available/001-nextcloud.conf
Fügen Sie den folgenden Inhalt hinzu und passen Sie Ihre Namen an:
ServerName nextcloud.your-domain.tld
ServerAdmin webmaster@your-domain.tld
DocumentRoot /var/www/html/nextcloudErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Dann aktivieren wir diese Site und deaktivieren den Standard-vHost:
a2ensite 001-nextcloud.conf
a2dissite 000-default.conf
systemctl reload apache2
Da wir die Site natürlich über https erreichen möchten, erstellen wir ein LetsEncrypt-Zertifikat. Der einfachste Weg, dies zu tun, ist mit Certbot, das wir oben bereits installiert haben:
certbot –apache –rsa-key-size 4096
In der letzten Abfrage bestätigen wir mit „2“, dass eine Umleitung erfolgen soll.
Certbot erstellt dann eine zweite vhost-Konfigurationsdatei, die wir dann erneut bearbeiten:
Wir fügen den folgenden Block unter der DocumentRoot-Direktive hinzu:
Header always set Strict-Transport-Security „max-age=15768000; preload“
Header always set Referrer-Policy „strict-origin-when-cross-origin“
# Prevent MIME based attacks
Header always set X-Content-Type-Options „nosniff“
Header always set X-Frame-Options „SAMEORIGIN“# SSL Configuration – uses strong cipher list – these might need to be downgraded if you need to support older browsers/devices
SSLEngine on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder OnRequire all granted
AllowOverride All
Options FollowSymLinks MultiViewsDav off
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
Satisfy Any
dann müssen wir den Webserver erneut laden:
systemctl reload apache2
Step 9: Configure Nextcloud
Für die endgültige Konfiguration rufen wir unsere Domain im Browser auf:
Nehmen wir nun die config.php von Nextcloud, um den empfohlenen Speichercache zu konfigurieren:
nano /var/www/html/nextcloud/config/config.php
Fügen Sie den folgenden Code hinzu:
‚memcache.local‘ => ‚\OC\Memcache\Redis‘,
‚memcache.locking‘ => ‚\\OC\\Memcache\\Redis‘,
‚redis‘ => array(
‚host‘ => ‚localhost‘,
‚port‘ => 6379,
),
Es sieht aus wie das:
und konfigurieren Sie den Cron-Job des Benutzers entsprechend www-data (passen Sie den Pfad und / oder den Benutzer an, wenn Sie einen anderen verwenden):
sudo crontab -u www-data -e
Fügen Sie am Ende die folgende Zeile hinzu:
*/5 * * * * php7.4 -f /var/www/html/nextcloud/cron.php
Neustart von Apache2 und php-fpm:
systemctl restart apache2 && sudo systemctl restart php7.4-fpm
Vergessen Sie nicht, Ihre Mail-Einstellungen zu konfigurieren.
Das wars dann auch schon.