GNU/Linux >> Tutoriels Linux >  >> OpenSuse

Comment installer ownCloud 9 avec Nginx sur OpenSUSE Leap 42.1

ownCloud est une application de partage de fichiers OpenSource basée sur le langage de programmation PHP. OwnCloud fournit la synchronisation et le partage de fichiers auto-hébergés avec une interface Web agréable et des applications de synchronisation pour toutes les principales plates-formes mobiles et de bureau avec une fonctionnalité comme dropbox, méga, etc. ownCloud facilite l'accès et la synchronisation des fichiers, des calendriers et des contacts sur votre appareils.

Dans ce tutoriel, je vais vous guider pour créer votre propre plateforme de serveur de synchronisation et de partage avec ownCloud. Nous installerons ownCloud avec Nginx comme serveur Web, MariaDB (un fork MySQL) comme base de données et php-fpm pour gérer la demande de php sur Linux OpenSUSE Leap 42.1.

Prérequis

  • OpenSUSE Leap 42.1
  • Privilèges root
  • Comprendre la commande zypper

Étape 1 - Installer SuSEfirewall2

SuSEfirewall est un script de pare-feu qui stocke sa configuration dans le fichier "/etc/sysconfig/SuSEfirewall2". Avec SuSEfirewall2, vous pouvez ouvrir des ports en éditant le fichier "SuSEfirewall2".

Installez SuSEfirewall2 avec la commande zypper :

zypper in SuSEfirewall2

Une fois le pare-feu installé, allez dans le répertoire sysconfig et modifiez la configuration "SuSEfirewall2" avec vim :

cd /etc/sysconfig/
vim SuSEfirewall2

Allez à la ligne 253 et ajoutez les ports de tous les services que vous souhaitez utiliser. Dans cette étape, je vais ajouter les ports :ssh, http et https.

FW_SERVICES_EXT_TCP="22 80 443"

Enregistrez le fichier et quittez l'éditeur.

Ensuite, démarrez SuSEfirewall2 et activez-le pour qu'il s'exécute au démarrage :

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Redémarrez maintenant le service sshd :

systemctl restart sshd

Si vous souhaitez tester le port du serveur SSH, vous pouvez utiliser la commande telnet pour vous connecter au port 22 :

telnet 192.168.1.101 22

Étape 2 - Installer Nginx

Nginx est un serveur Web léger avec une faible consommation de mémoire et de processeur. Nous utiliserons nginx comme serveur Web pour notre installation ownCloud.

Installez nginx avec la commande zypper :

zypper in nginx

Démarrez nginx et activez-le au démarrage avec la commande systemctl :

systemctl start nginx
systemctl enable nginx

Ensuite, ajoutez un fichier index.html pour tester si nginx fonctionne.

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

Vous pouvez maintenant accéder au serveur Web nginx à partir de votre navigateur Web, ou vous pouvez le vérifier avec curl :

curl -I 192.168.1.101
curl 192.168.1.101

Étape 3 - Installer et configurer MariaDB

MariaDB est un fork basé sur OpenSource RDBMS de la base de données MySQL. Dans cette étape, nous allons installer et configurer MariaDB. Ensuite, nous créerons un nouvel utilisateur et une nouvelle base de données pour l'installation d'ownCloud.

Installez MariaDB avec la commande zypper ci-dessous :

zypper in mariadb mariadb-client

Démarrez maintenant MariaDB et ajoutez-le au démarrage du système :

systemctl start mysql
systemctl enable mysql

MariaDB a été démarré, vous pouvez maintenant configurer le mot de passe root pour MariaDB avec la commande ci-dessous :

mysql_secure_installation

Définissez le mot de passe MariaDB/MySQL :

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

Le mot de passe root MariaDB a été configuré. Nous pouvons maintenant nous connecter au shell MariaDB/MySQL et créer une nouvelle base de données et un nouvel utilisateur pour ownCloud.

Connectez-vous au shell MariaDB/MySQL :

mysql -u root -p
TYPE your password

Créez une nouvelle base de données "owncloud_db" et un nouvel utilisateur "ownclouduser" avec le mot de passe "[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

La base de données pour l'installation d'ownCloud a été créée.

Étape 4 - Installer et configurer PHP-FPM

PHP-FPM (FastCGI Process Manager) est une alternative FastCGI moderne pour gérer les sites avec beaucoup de visiteurs. PHP-FPM dispose d'une gestion avancée des processus et est facile à gérer et à configurer.

Dans cette étape, nous installerons php-fpm et certaines extensions PHP, puis nous configurerons le serveur Web nginx pour gérer les requêtes de fichiers php via php-fpm.

Installez php-fpm avec cette commande "zypper in":

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

Lorsque l'installation est terminée, allez dans le répertoire php-fpm et copiez le fichier de configuration par défaut :

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

Modifiez le fichier php-fpm.conf avec l'éditeur vim ou nano :

vim php-fpm.conf

Décommentez la ligne 32 pour activer le journal php-fpm. S'il y a une erreur plus tard dans vos scripts PHP, vous pouvez trouver le fichier journal dans le répertoire "/var/log/".

error_log = log/php-fpm.log

Changez les lignes 148 - 149 en "nginx" pour l'utilisateur/groupe unix des processus.

user = nginx
group = nginx

Modifiez la valeur à la ligne 159 pour exécuter php-fpm avec un fichier socket.

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

Décommentez et modifiez la valeur des lignes 170 à 172 pour définir les autorisations du socket unix.

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

Enregistrez le fichier et quittez l'éditeur.

Ensuite, éditez le fichier php.ini dans le répertoire cli :

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

Décommentez et modifiez la valeur de la ligne 758 :

cgi.fix_pathinfo=0

Enregistrez et quittez.

Copiez le fichier php.ini dans le répertoire conf.d :

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

Configurez maintenant le chemin du gestionnaire de session php. Dans ce tutoriel, nous exécutons php-fpm en tant qu'utilisateur nginx, assurez-vous donc que l'utilisateur nginx peut écrire dans le répertoire sessions. Vous pouvez voir la configuration du chemin de session dans le fichier php.ini à la ligne 1390.

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

Modifiez le propriétaire du répertoire de session "/var/lib/php5/", faites de l'utilisateur nginx le propriétaire du répertoire :

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

Ensuite, configurez php-fpm pour qu'il fonctionne avec le serveur Web nginx. Accédez au répertoire de configuration nginx et sauvegardez le fichier nginx.conf avant de modifier la configuration.

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

Ajoutez la nouvelle configuration suivante à la ligne 65 - cette configuration gérera toutes les requêtes de fichiers PHP.

       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;
       }

Enregistrez et quittez, puis testez la configuration nginx pour vous assurer qu'il n'y a pas d'erreur dans la configuration :

nginx -t

S'il n'y a pas d'erreur, vous pouvez voir les résultats ci-dessous :

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

Démarrez maintenant php-fpm et ajoutez-le à stat au démarrage, puis redémarrez le service nginx :

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

Nginx et php-fpm sont configurés, vous pouvez tester le fichier php en créant un nouveau fichier phpinfo() dans le répertoire racine du web :

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

Ouvrez votre navigateur et visitez l'IP du serveur :

http://192.168.1.101/info.php

ou vous pouvez utiliser curl :

curl -I 192.168.1.101/info.php

Étape 5 - Générer un certificat SSL

Exécuter ownCloud via une connexion https sécurisée est très important pour garder vos fichiers sécurisés et privés. Si vous utilisez ownCloud sur votre propre entreprise, vous pouvez acheter le certificat SSL, ou si vous voulez un certificat SSL gratuit, vous pouvez utiliser Let's-encrypt. Ici je vais créer un certificat SSL dit "auto-signé", le cryptage d'un certificat auto-signé n'est pas inférieur à un certificat officiel mais vous devrez accepter un avertissement de sécurité dans votre navigateur lorsque vous accéderez au service la première fois .

Créez un nouveau répertoire "ssl" et générez le certificat avec la commande openssl :

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

Ensuite, modifiez les autorisations de la clé :

chmod 600 example-owncloud.key

Étape 6 - Installer et configurer ownCloud

Dans cette étape, nous allons installer ownCloud et configurer un nouvel hôte virtuel nginx pour le domaine ownCloud. Nous allons installer owncloud avec le nom de domaine "example-owncloud.co", et le fichier racine web dans le répertoire "/srv/www/owncloud/".

Télécharger ownCloud

Allez dans le répertoire "/srv/www/" et téléchargez la source ownCloud et extrayez-la :

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

Créez maintenant un nouveau répertoire de données sous le répertoire owncloud pour stocker toutes les données utilisateur. Remplacez le propriétaire du répertoire ownCloud par l'utilisateur nginx :

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

Configurer un hôte virtuel Nginx pour ownCloud

Accédez au répertoire nginx et créez un nouveau répertoire pour la configuration du fichier de l'hôte virtuel :

cd /etc/nginx/
mkdir vhosts.d/

Allez dans le répertoire vhosts.d et créez un nouveau fichier d'hôte virtuel pour owncloud "example-owncloud.conf".

cd vhosts.d/
vim example-owncloud.conf

collez la configuration ci-dessous :

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;
  }
}

Enregistrez le fichier et quittez l'éditeur.

Testez la configuration nginx et n'oubliez pas de redémarrer tous les services :

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

Test

Visitez le domaine owncloud :

exemple-owncloud.co

Vous serez redirigé vers la connexion https.

Ensuite, saisissez votre nom d'utilisateur et votre mot de passe administrateur, le nom, l'utilisateur et le mot de passe de la base de données, puis cliquez sur "Terminer la configuration".

Attendez une seconde et vous verrez le gestionnaire de fichiers owncloud :

L'installation d'ownCloud avec nginx et MariaDB sur OpenSUSE Leap 42.1 est terminée.

Références

  • 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. Comment installer Seafile avec Nginx sur openSUSE Leap 42.1

  2. Comment installer Nginx avec PHP-FPM et MySQL sur openSUSE 12.1

  3. Comment installer Mongodb 5 dans Opensuse Leap 15.3

  4. Comment installer Erlang sur Opensuse Leap 15.3

  5. Comment installer Java 17 dans OpenSUSE Leap 15.3

Comment installer TeamViewer 12 sur openSUSE Leap 42.2

Comment installer Dropbox sur openSUSE Leap 42.2

Comment installer RabbitMQ dans OpenSUSE Leap 15.3

Comment installer Google Chrome sur openSUSE Leap 15

Comment installer PHP 8.0 sur openSUSE 15 Leap

Comment installer le navigateur Tor sur openSUSE Leap 15