GNU/Linux >> LINUX-Kenntnisse >  >> OpenSuse

So installieren Sie ownCloud 9 mit Nginx auf OpenSUSE Leap 42.1

ownCloud ist eine OpenSource File-Sharing-Anwendung, die auf der Programmiersprache PHP basiert. OwnCloud bietet selbst gehostete Dateisynchronisierung und -freigabe mit einer netten Weboberfläche und Synchronisierungs-Apps für alle wichtigen Mobil- und Desktop-Plattformen mit Funktionen wie Dropbox, Mega usw. ownCloud macht es einfach, auf Dateien, Kalender und Kontakte zuzugreifen und sie überall zu synchronisieren Geräte.

In diesem Tutorial werde ich Sie anleiten, Ihre eigene Sync-and-Share-Serverplattform mit ownCloud zu erstellen. Wir werden ownCloud mit Nginx als Webserver, MariaDB (ein MySQL-Fork) als Datenbank und php-fpm installieren, um die Anfrage für php unter Linux OpenSUSE Leap 42.1 zu verarbeiten.

Voraussetzung

  • OpenSUSE Leap 42.1
  • Root-Rechte
  • Zypper-Befehl verstehen

Schritt 1 - SuSEfirewall2 installieren

SuSEfirewall ist ein Firewall-Skript, das seine Konfiguration in der Datei "/etc/sysconfig/SuSEfirewall2" speichert. Mit SuSEfirewall2 können Sie Ports öffnen, indem Sie die Datei "SuSEfirewall2" bearbeiten.

Installieren Sie SuSEfirewall2 mit dem zypper-Befehl:

zypper in SuSEfirewall2

Wenn die Firewall installiert ist, gehen Sie in das sysconfig-Verzeichnis und bearbeiten Sie die „SuSEfirewall2“-Konfiguration mit vim:

cd /etc/sysconfig/
vim SuSEfirewall2

Gehen Sie zu Zeile 253 und fügen Sie die Ports aller Dienste hinzu, die Sie verwenden möchten. In diesem Schritt füge ich die Ports ssh, http und https hinzu.

FW_SERVICES_EXT_TCP="22 80 443"

Speichern Sie die Datei und verlassen Sie den Editor.

Starten Sie als nächstes SuSEfirewall2 und aktivieren Sie es, um beim Booten ausgeführt zu werden:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Starten Sie jetzt den sshd-Dienst neu:

systemctl restart sshd

Wenn Sie den SSH-Serverport testen möchten, können Sie den Telnet-Befehl verwenden, um eine Verbindung zu Port 22 herzustellen:

telnet 192.168.1.101 22

Schritt 2 – Nginx installieren

Nginx ist ein leichter Webserver mit geringem Speicher- und CPU-Verbrauch. Wir werden nginx als Webserver für unsere ownCloud-Installation verwenden.

Installieren Sie nginx mit dem zypper-Befehl:

zypper in nginx

Starten Sie nginx und aktivieren Sie es beim Booten mit dem Befehl systemctl:

systemctl start nginx
systemctl enable nginx

Fügen Sie als Nächstes eine index.html-Datei hinzu, um zu testen, ob nginx funktioniert.

echo "This is Nginx Page OpenSUSE Leap" > /srv/www/htdocs/index.html

Jetzt können Sie über Ihren Webbrowser auf den nginx-Webserver zugreifen oder ihn mit curl überprüfen:

curl -I 192.168.1.101
curl 192.168.1.101

Schritt 3 – MariaDB installieren und konfigurieren

MariaDB ist ein OpenSource RDBMS-basierter Fork der MySQL-Datenbank. In diesem Schritt werden wir MariaDB installieren und konfigurieren. Dann erstellen wir einen neuen Benutzer und eine neue Datenbank für die ownCloud-Installation.

Installieren Sie MariaDB mit dem folgenden Zypper-Befehl:

zypper in mariadb mariadb-client

Starten Sie nun MariaDB und fügen Sie es dem Systemstart hinzu:

systemctl start mysql
systemctl enable mysql

MariaDB wurde gestartet, jetzt können Sie das Root-Passwort für MariaDB mit dem folgenden Befehl konfigurieren:

mysql_secure_installation

Legen Sie das MariaDB/MySQL-Passwort fest:

Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Das MariaDB-Root-Passwort wurde konfiguriert. Jetzt können wir uns bei der MariaDB/MySQL-Shell anmelden und eine neue Datenbank und einen neuen Benutzer für ownCloud erstellen.

Melden Sie sich bei der MariaDB/MySQL-Shell an:

mysql -u root -p
TYPE your password

Erstellen Sie eine neue Datenbank „owncloud_db“ und einen neuen Benutzer „ownclouduser“ mit dem Passwort „[email protected]“:

create database owncloud_db;
create user [email protected] identified by '[email protected]';
grant all privileges on owncloud_db.* to [email protected] identified by '[email protected]';
flush privileges;
exit

Die Datenbank für die ownCloud-Installation wurde erstellt.

Schritt 4 – PHP-FPM installieren und konfigurieren

PHP-FPM (FastCGI Process Manager) ist eine moderne FastCGI-Alternative, um Websites mit vielen Besuchern zu verwalten. PHP-FPM verfügt über ein fortschrittliches Prozessmanagement und ist einfach zu verwalten und zu konfigurieren.

In diesem Schritt installieren wir php-fpm und einige PHP-Erweiterungen, dann konfigurieren wir den nginx-Webserver so, dass er php-Dateianfragen über php-fpm verarbeitet.

Installieren Sie php-fpm mit diesem "zypper in"-Befehl:

zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json

Wechseln Sie nach Abschluss der Installation in das Verzeichnis php-fpm und kopieren Sie die Standardkonfigurationsdatei:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Bearbeiten Sie die Datei php-fpm.conf mit dem vim- oder nano-Editor:

vim php-fpm.conf

Kommentieren Sie Zeile 32 aus, um das php-fpm-Protokoll zu aktivieren. Wenn später Fehler in Ihren PHP-Skripten auftreten, finden Sie die Protokolldatei im Verzeichnis "/var/log/".

error_log = log/php-fpm.log

Ändern Sie Zeile 148 - 149 in "nginx" für den Unix-Benutzer/die Unix-Gruppe der Prozesse.

user = nginx
group = nginx

Ändern Sie den Wert in Zeile 159, um php-fpm mit einer Socket-Datei auszuführen.

listen = /var/run/php-fpm.sock

Kommentieren Sie den Wert in den Zeilen 170 - 172 aus und ändern Sie ihn, um die Berechtigungen des Unix-Sockets festzulegen.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Speichern Sie die Datei und verlassen Sie den Editor.

Bearbeiten Sie als Nächstes die Datei php.ini im cli-Verzeichnis:

cd /etc/php5/cli/
vim php.ini

Kommentieren Sie den Wert in Zeile 758 aus und ändern Sie ihn:

cgi.fix_pathinfo=0

Speichern und beenden.

Kopieren Sie die Datei php.ini in das Verzeichnis conf.d:

cp php.ini /etc/php5/conf.d/

Konfigurieren Sie nun den PHP-Session-Handler-Pfad. In diesem Tutorial führen wir php-fpm als nginx-Benutzer aus, stellen Sie also sicher, dass der nginx-Benutzer in das Sitzungsverzeichnis schreiben kann. Sie können die Konfiguration des Sitzungspfads in der php.ini-Datei in Zeile 1390 sehen.

session.save_path = "/var/lib/php5"

Ändern Sie den Eigentümer des Sitzungsverzeichnisses „/var/lib/php5/“, machen Sie den nginx-Benutzer zum Eigentümer des Verzeichnisses:

chown -R nginx:nginx /var/lib/php5/

Konfigurieren Sie als Nächstes php-fpm so, dass es mit dem nginx-Webserver funktioniert. Wechseln Sie zum nginx-Konfigurationsverzeichnis und sichern Sie die nginx.conf-Datei, bevor Sie die Konfiguration bearbeiten.

cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf

Fügen Sie die folgende neue Konfiguration in Zeile 65 hinzu - diese Konfiguration behandelt alle PHP-Dateianfragen.

       location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Speichern und beenden Sie und testen Sie dann die nginx-Konfiguration, um sicherzustellen, dass kein Fehler in der Konfiguration vorliegt:

nginx -t

Wenn kein Fehler auftritt, können Sie die Ergebnisse unten sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie nun php-fpm und fügen Sie es beim Booten zu stat hinzu, starten Sie dann den nginx-Dienst neu:

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx

Nginx und php-fpm sind konfiguriert, Sie können die php-Datei testen, indem Sie eine neue phpinfo()-Datei im Web-Root-Verzeichnis erstellen:

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Öffnen Sie Ihren Browser und besuchen Sie die Server-IP:

http://192.168.1.101/info.php

oder Sie können curl:

verwenden
curl -I 192.168.1.101/info.php

Schritt 5 – SSL-Zertifikat generieren

Das Ausführen von ownCloud über eine sichere https-Verbindung ist sehr wichtig, um Ihre Dateien sicher und privat zu halten. Wenn Sie ownCloud in Ihrem eigenen Unternehmen betreiben, können Sie das SSL-Zertifikat kaufen, oder wenn Sie ein kostenloses SSL-Zertifikat wünschen, können Sie Let's-encrypt verwenden. Hier werde ich ein sogenanntes "selbstsigniertes" SSL-Zertifikat erstellen, die Verschlüsselung eines selbstsignierten Zertifikats ist nicht niedriger als bei einem offiziellen Zertifikat, aber Sie müssen eine Sicherheitswarnung in Ihrem Browser akzeptieren, wenn Sie den Dienst zum ersten Mal aufrufen .

Erstellen Sie ein neues „ssl“-Verzeichnis und generieren Sie das Zertifikat mit dem openssl-Befehl:

cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key

Als nächstes ändern Sie die Berechtigungen des Schlüssels:

chmod 600 example-owncloud.key

Schritt 6 - Installieren und konfigurieren Sie ownCloud

In diesem Schritt werden wir ownCloud installieren und einen neuen virtuellen nginx-Host für die ownCloud-Domain konfigurieren. Wir werden owncloud mit dem Domainnamen „example-owncloud.co“ und der Web-Root-Datei im Verzeichnis „/srv/www/owncloud/“ installieren.

ownCloud herunterladen

Gehen Sie in das Verzeichnis „/srv/www/“ und laden Sie die ownCloud-Quelle herunter und extrahieren Sie sie:

cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip

Erstellen Sie nun ein neues Datenverzeichnis unter dem owncloud-Verzeichnis, um alle Benutzerdaten zu speichern. Ändern Sie den Eigentümer des ownCloud-Verzeichnisses in den nginx-Benutzer:

mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/

Konfigurieren Sie einen virtuellen Nginx-Host für ownCloud

Wechseln Sie in das nginx-Verzeichnis und erstellen Sie ein neues Verzeichnis für die Dateikonfiguration des virtuellen Hosts:

cd /etc/nginx/
mkdir vhosts.d/

Gehen Sie in das vhosts.d-Verzeichnis und erstellen Sie eine neue virtuelle Hostdatei für owncloud „example-owncloud.conf“.

cd vhosts.d/
vim example-owncloud.conf

Fügen Sie die Konfiguration unten ein:

upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm.sock;
}

server {
  listen 80;
  server_name example-owncloud.co;
  # enforce https
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  server_name example-owncloud.co;

  ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
  ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;

  # Path to the root of your installation
  root /srv/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with webfinger
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ =404;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
    fastcgi_intercept_errors on;
  }

  # Adding the cache control header for js and css files
  # Make sure it is BELOW the location ~ \.php(?:$|/) { block
  location ~* \.(?:css|js)$ {
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    # Optional: Don't log access to assets
    access_log off;
  }

  # Optional: Don't log access to other assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
    access_log off;
  }
}

Speichern Sie die Datei und verlassen Sie den Editor.

Testen Sie die nginx-Konfiguration und vergessen Sie nicht, alle Dienste neu zu starten:

nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

Testen

Besuchen Sie die owncloud-Domain:

example-owncloud.co

Sie werden auf die https-Verbindung umgeleitet.

Geben Sie als Nächstes Ihren Admin-Benutzer und das Passwort, den Datenbanknamen, den Benutzer und das Passwort ein und klicken Sie auf „Setup abschließen“.

Warten Sie eine Sekunde und Sie sehen den owncloud-Dateimanager:

Die Installation von ownCloud mit nginx und MariaDB auf OpenSUSE Leap 42.1 ist abgeschlossen.

Referenzen

  • https://doc.owncloud.org/
  • https://www.howtoforge.com/tutorial/install-nginx-php-and-mysql-lemp-stack-on-opensuse-leap-42.1/
  • https://www.howtoforge.com/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/


OpenSuse
  1. So installieren Sie Nginx mit PHP-FPM und MySQL unter openSUSE 12.1

  2. So installieren Sie Mongodb 5 in Opensuse Leap 15.3

  3. So installieren Sie Mysql Server 8 auf OpenSUSE Leap 15.3

  4. So installieren und konfigurieren Sie Redis 6 unter OpenSUSE Leap 15.3

  5. So installieren Sie Java 17 in OpenSUSE Leap 15.3

So installieren Sie TeamViewer 12 auf openSUSE Leap 42.2

So installieren Sie Dropbox auf openSUSE Leap 42.2

So installieren Sie RabbitMQ in OpenSUSE Leap 15.3

So installieren Sie Google Chrome auf openSUSE Leap 15

So installieren Sie PHP 8.0 auf openSUSE 15 Leap

So installieren Sie den Tor-Browser auf openSUSE Leap 15