GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer ownCloud 9.1 avec Nginx et MariaDB sur CentOS 7

OwnCloud est un logiciel serveur pour la synchronisation des données et le partage de fichiers avec une interface Web facile à utiliser, disponible sous une licence open source. OwnCloud peut être installé sur un serveur Web Linux ou Windows, est facile à configurer et dispose d'une documentation en ligne complète. Le client natif est disponible pour Windows, MacOS et Linux (application de bureau). Il existe également une application mobile pour Android et iOS.

Dans ce tutoriel, je vais vous guider pour installer et configurer ownCloud 9.1 sur un serveur CentOS 7. Je vais vous montrer comment configurer ownCloud avec Nginx et PHP 7 (comme FPM) et MariaDB comme système de base de données.

Prérequis

  • Serveur CentOS 7
  • Privilèges racine

Étape 1 - Installer Nginx et PHP7-FPM

Avant de commencer l'installation de Nginx et php7-fpm, nous devons ajouter le référentiel EPEL qui contient des logiciels supplémentaires qui ne sont pas disponibles dans le référentiel de base CentOS. Installez EPEL avec cette commande yum.

yum -y install epel-release

Installez maintenant Nginx à partir du référentiel Epel.

yum -y install nginx

Nous devons maintenant ajouter un autre dépôt pour php7-fpm. Il existe plusieurs dépôts pour PHP 7 disponibles sur le net, je vais utiliser le dépôt webtatic ici.

Ajoutez le référentiel webtatic :

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ensuite, installez PHP7-FPM avec quelques packages supplémentaires pour l'installation d'ownCloud.

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json

Vérifiez la version de PHP à partir du terminal du serveur pour vous assurer que l'installation a réussi.

php -v

Étape 2 - Configurer PHP7-FPM

Dans cette étape, nous allons configurer php-fpm pour qu'il s'exécute avec nginx. Php7-fpm s'exécutera sous l'utilisateur nginx et écoutera sur le port 9000.

Modifiez la configuration par défaut de php7-fpm avec vim.

vim /etc/php-fpm.d/www.conf

Aux lignes 8 et 10, remplacez l'utilisateur et le groupe par 'nginx '.

user = nginx
group = nginx

À la ligne 22, assurez-vous que php-fpm s'exécute sous le port de serveur 9000.

listen = 127.0.0.1:9000

Décommentez les lignes 366-370 pour les variables d'environnement système php-fpm.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Enregistrez le fichier et quittez l'éditeur

Ensuite, créez un nouveau répertoire pour le chemin de la session dans le répertoire '/var/lib/' et changez le propriétaire en utilisateur 'nginx'.

mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/

Démarrez php-fpm et nginx, puis ajoutez-le pour démarrer au démarrage.

sudo systemctl start php-fpm
sudo systemctl start nginx

sudo systemctl enable php-fpm
sudo systemctl enable nginx

La configuration de PHP7-FPM est terminée.

Étape 3 - Installer et configurer MariaDB

OwnCloud prend en charge les bases de données PostgreSQL et MySQL, dans ce tutoriel, nous utiliserons MariaDB pour la base de données ownCloud. Installez le package mariadb-server à partir du référentiel CentOS avec la commande yum.

yum -y install mariadb mariadb-server

Démarrez le service MariaDB et configurez le mot de passe root MariaDB.

systemctl start mariadb
mysql_secure_installation

Tapez votre mot de passe root lorsque vous y êtes invité.

Set root password? [Y/n] Y
New password:
Re-enter new password:

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

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

Nous allons créer une nouvelle base de données 'owncloud_db ' sous l'utilisateur 'ownclouduser ' avec le mot de passe '[email protected] '. Veuillez choisir un mot de passe différent et sécurisé pour votre installation !

mysql -u root -p
Type Password

Tapez la requête MySQL ci-dessous pour créer une nouvelle base de données et un nouvel utilisateur.

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;

La 'base de données owncloud_db' avec l'utilisateur 'ownclouduser' a été créée.

Étape 4 - Générer un certificat SSL auto-signé

Dans ce tutoriel, nous exécuterons owncloud sous une connexion https pour le client. Vous pouvez utiliser un certificat SSL gratuit tel que let's encrypt. Dans ce tutoriel, je vais créer mon propre fichier de certificat SSL avec la commande OpenSSL.

Créez un nouveau répertoire pour le fichier SSL.

mkdir -p /etc/nginx/cert/

Générez ensuite un nouveau fichier de certificat SSL avec la commande OpenSSL ci-dessous.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key

Entrez les détails du certificat SSL comme demandé par la commande OpenSSL. Modifiez ensuite l'autorisation de tous les fichiers de certificat à 600 avec chmod.

chmod 600 /etc/nginx/cert/*

Étape 5 - Télécharger OwnCloud

Nous allons télécharger ownCloud avec la commande wget, nous devons donc d'abord installer le package wget. De plus, nous avons besoin de décompresser le package.

yum -y install wget unzip

Allez dans le répertoire tmp et téléchargez la dernière version stable d'ownCloud 9.1 depuis le site ownCloud avec wget.

cd /tmp
wget https://download.owncloud.org/community/owncloud-9.1.2.zip

Extrayez le fichier zip d'ownCloud et déplacez-le dans le répertoire '/usr/share/nginx/html/'.

unzip owncloud-9.1.2.zip
mv owncloud/ /usr/share/nginx/html/

Ensuite, allez dans le répertoire racine du web nginx et créez un nouveau répertoire 'data' pour owncloud.

cd /usr/share/nginx/html/
mkdir -p owncloud/data/

Remplacez le propriétaire du répertoire 'owncloud' par l'utilisateur et le groupe 'nginx'.

chown nginx:nginx -R owncloud/

Étape 6 - Configurer l'hôte virtuel OwnCloud dans Nginx

À l'étape 5, nous avons téléchargé le code source d'ownCloud et l'avons configuré pour qu'il s'exécute sous le serveur Web Nginx. Mais nous devons encore configurer l'hôte virtuel pour ownCloud.

Créez un nouveau fichier de configuration d'hôte virtuel 'owncloud.conf' dans le répertoire 'conf.d'.

cd /etc/nginx/conf.d/
vim owncloud.conf

Collez la configuration de l'hôte virtuel ownCloud ci-dessous.

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

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

server {
    listen 443 ssl;
    server_name data.owncloud.co;

    ssl_certificate /etc/nginx/cert/owncloud.crt;
    ssl_certificate_key /etc/nginx/cert/owncloud.key;

    # Add headers to serve security related headers
    # Before enabling Strict-Transport-Security headers please read into this topic first.
    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
    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;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    # Path to the root of your installation
    root /usr/share/nginx/html/owncloud/;

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

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
        return 301 $scheme://$host/remote.php/dav;
    }

    location /.well-known/acme-challenge { }

    # set max upload size
    client_max_body_size 512M;
    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;

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

    location / {
        rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        return 404;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        return 404;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.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_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_param front_controller_active true;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri $uri/ =404;
        index index.php;
    }

    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
        # Before enabling Strict-Transport-Security headers please read into this topic first.
        #add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
        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;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log off;
    }

    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
    }
}

Enregistrez le fichier et quittez l'éditeur.

Enfin, testez la configuration Nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service.

nginx -t
systemctl restart nginx

Étape 7 - Configurer SELinux et FirewallD

Dans ce didacticiel, nous laisserons SELinux en mode application, nous avons donc besoin du package d'outils de gestion SELinux pour le configurer.

Installez les outils de gestion SELinux avec cette commande yum.

yum -y install policycoreutils-python

Exécutez ensuite les commandes ci-dessous en tant que root pour permettre à ownCloud de s'exécuter sous SELinux. N'oubliez pas de changer le répertoire d'ownCloud au cas où vous utiliseriez un répertoire différent pour l'installation d'ownCloud.

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.user.ini'

restorecon -Rv '/usr/share/nginx/html/owncloud/'

Ensuite, activez le service firewalld et ouvrez les ports HTTP et HTTPS pour owncloud.

Démarrez firewalld et configurez-le pour qu'il démarre au démarrage.

systemctl start firewalld
systemctl enable firewalld

Ouvrez les ports HTTP et HTTPS avec la commande firewall-cmd, puis rechargez le pare-feu.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

La partie configuration du serveur est terminée.

Étape 8 - L'assistant d'installation d'OwnCloud

Ouvrez maintenant votre navigateur Web et saisissez le nom de domaine ownCloud dans le champ URL. Le mien est :data.owncloud.co, et vous serez redirigé vers la connexion HTTPS sécurisée.

Tapez votre nouveau nom d'utilisateur et mot de passe d'administrateur, puis tapez les informations d'identification de la base de données et cliquez sur 'Terminer la configuration '.

Gestionnaire de fichiers du tableau de bord d'administration.

Paramètres utilisateur.

Paramètres d'administration.

Owncloud a été installé avec succès avec Nginx, PHP7-FPM et MariaDB sur un serveur CentOS 7.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  3. Comment installer Nextcloud avec Nginx et PHP 7.3 sur CentOS 8

  4. Comment installer ownCloud 8 sur un VPS CentOS 7

  5. Installez Magento sur CentOS 7, avec Nginx, PHP-FPM et MariaDB

Comment installer et configurer ownCloud sur CentOS 7

Comment installer Nginx avec ngx_pagespeed sur CentOS

Comment installer OwnCloud 8 avec Nginx et PHP-FPM sur CentOS 6

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer ownCloud sur CentOS 8