Comment installer Hubzilla sur Ubuntu 16.04

Hubzilla est une plate-forme Web open source pour créer des sites Web connectés en interne. Dans l'écosystème de Hubzilla, un serveur exécutant Hubzilla est appelé "hub" et un groupe de plusieurs hubs est appelé "grid". Les hubs au sein d'une grille communiquent entre eux pour partager des informations telles que les identités. Tout le monde peut publier des contenus publiquement ou en privé en utilisant un "canal", qui peut être une personne, un blog ou un forum. Il utilise un framework Zot basé sur JSON pour implémenter des communications et des services décentralisés sécurisés. Hubzilla regorge de fonctionnalités telles que les fils de discussion sur les réseaux sociaux, le stockage de fichiers dans le cloud, le calendrier et les contacts, l'hébergement de pages Web avec un système de gestion de contenu, un wiki et bien plus encore.

Conditions préalables

  • Une instance de serveur Vultr Ubuntu 16.04.
  • Un utilisateur sudo .
  • Un nom de domaine pointé vers l'instance.

Pour ce didacticiel, nous utiliserons hubzilla.example.com le nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine par celui réel.

Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, procédez à l'installation des dépendances.

Installer Nginx

Nginx est un serveur Web de production pour exécuter des applications Web.

Installez Nginx.

sudo apt -y install nginx

Démarrez Nginx et activez-le pour s'exécuter automatiquement au démarrage.

sudo systemctl start nginx
sudo systemctl enable nginx

Installez PHP 7.1

Hubzilla prend en charge les versions PHP supérieures à 5.6. Nous installerons PHP 7.1 pour garantir une vitesse, une sécurité et une compatibilité maximales. Ajoutez le référentiel Ubuntu pour PHP 7.1.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

Installez PHP version 7.1 avec les modules requis par Hubzilla.

sudo apt -y install php7.1 php7.1-mysql php7.1-curl php7.1-json php7.1-cli php7.1-gd php7.1-xml php7.1-mbstring php7.1-fpm imagemagick php7.1-zip

Modifiez le fichier de configuration PHP.

sudo nano /etc/php/7.1/fpm/php.ini

Trouvez la ligne suivante. Décommentez-le et définissez le fuseau horaire approprié.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate time zone

Définissez une limite de mémoire appropriée sur la configuration suivante. Le paramétrer sur -1 donnera une quantité de mémoire disponible illimitée à un script. Augmentez également les limites maximales de téléchargement de fichiers.

memory_limit = -1
upload_max_filesize = 100M
post_max_size = 100M

Ensuite, recherchez la ligne suivante et définissez sa valeur sur 0 après la décommentation.

cgi.fix_pathinfo=0

Démarrez-le php7.1-fpm et activez-le pour qu'il démarre automatiquement au démarrage.

sudo systemctl restart php7.1-fpm
sudo systemctl enable php7.1-fpm

Créez un répertoire de session et fournissez des autorisations d'écriture.

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

Maintenant, passez à l'installation de MariaDB.

Installer MariaDB

MariaDB est un fork de MySQL. Ajoutez le référentiel MariaDB à votre système, car le référentiel Ubuntu par défaut contient une ancienne version de MariaDB.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
sudo apt update

Installez MariaDB.

sudo apt -y install mariadb-server

Fournissez un mot de passe fort pour l'utilisateur root MariaDB lorsque vous y êtes invité. Démarrez MariaDB et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Avant de configurer la base de données, vous devrez sécuriser MariaDB. Vous pouvez le sécuriser en exécutant le mysql_secure_installation script.

sudo mysql_secure_installation

Le mot de passe root de MariaDB vous sera demandé. Fournissez le mot de passe que vous avez défini lors de l'installation. Il vous sera demandé si vous souhaitez modifier le mot de passe existant de l'utilisateur root de votre serveur MariaDB. Vous pouvez ignorer la définition d'un nouveau mot de passe, car vous avez déjà fourni un mot de passe fort lors de l'installation. Répondez " Y" à toutes les autres questions posées.

Connectez-vous au shell MySQL en tant que root.

mysql -u root -p

Fournissez le mot de passe pour que l'utilisateur root MariaDB se connecte.

Exécutez les requêtes suivantes pour créer une base de données et un utilisateur de base de données pour l'installation de Hubzilla.

CREATE DATABASE hubzilla_data;
CREATE USER 'hubzilla_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON hubzilla_data.* TO 'hubzilla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Vous pouvez remplacer le nom hubzilla_data et le nom d' utilisateur de la base de données hubzilla_user selon votre choix. Veuillez vous assurer de changer StrongPassword pour un mot de passe très fort.

Installer Hubzilla

Installez Git. Git est requis pour cloner le référentiel Hubzilla de Github.

sudo apt -y install git

Basculez vers le répertoire racine Web et clonez le référentiel Hubzilla.

cd /var/www
sudo git clone https://github.com/redmatrix/hubzilla.git hubzilla

Créez un nouveau répertoire pour stocker les données Hubzilla.

cd hubzilla
sudo mkdir -p "store/[data]/smarty3"
sudo chmod -R 777 store

Clonez et installez les modules complémentaires Hubzilla.

sudo util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
sudo util/update_addon_repo hzaddons

Fournissez la propriété du répertoire et des fichiers à l'utilisateur Nginx.

sudo chown -R www-data:www-data /var/www/hubzilla

Créer un hôte virtuel

Il est important d'avoir SSL installé sur un site Hubzilla, car les connexions et autres données peuvent être compromises si elles ne sont pas cryptées. Dans ce didacticiel, nous utiliserons des certificats SSL obtenus par l'autorité de certification Let's Encrypt.

Ajoutez le référentiel Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Installez Certbot, qui est l'application cliente de Let's Encrypt CA.

sudo apt -y install certbot

Remarque: Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.

Générez les certificats SSL.

sudo certbot certonly --webroot -w /var/www/html -d hubzilla.example.com

Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/hubzilla.example.com/. Le certificat SSL sera stocké sous fullchain.pem et la clé privée sera stockée sous privkey.pem.

Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.

Ouvrez le fichier de tâche cron.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier.

30 5 * * * /usr/bin/certbot renew --quiet

La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.

Créez un nouveau fichier de configuration pour Hubzilla Server.

sudo nano /etc/nginx/sites-available/hubzilla

Remplissez le fichier.

server {
  listen 80;
  server_name hubzilla.example.com;

  index index.php;
  root /var/www/hubzilla;
  rewrite ^ https://hubzilla.example.com$request_uri? permanent;
}

server {
  listen 443 ssl;
  server_name hubzilla.example.com;

  ssl on;
  ssl_certificate /etc/letsencrypt/live/hubzilla.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hubzilla.example.com/privkey.pem;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
  ssl_prefer_server_ciphers on;

  fastcgi_param HTTPS on;

  index index.php;
  charset utf-8;
  root /var/www/hubzilla;
  access_log /var/log/nginx/hubzilla.log;
  client_max_body_size 20m;
  client_body_buffer_size 128k;

  location / {
    if ($is_args != "") {
        rewrite ^/(.*) /index.php?q=$uri&$args last;
    }
    rewrite ^/(.*) /index.php?q=$uri last;
  }

  location ^~ /.well-known/ {
    allow all;
    rewrite ^/(.*) /index.php?q=$uri&$args last;
  }

  location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|map|ttf|woff|woff2|svg)$ {
    expires 30d;
    try_files $uri /index.php?q=$uri&$args;
  }

  location ~* \.(tpl|md|tgz|log|out)$ {
    deny all;
  }

  location ~* \.php$ {

    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;    
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;    
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location ~ /\. {
    deny all;
  }

    location ~ /store {
        deny  all;
    }
}

Activez la configuration.

sudo ln -s /etc/nginx/sites-available/hubzilla /etc/nginx/sites-enabled/hubzilla

Testez la configuration du serveur Web Nginx.

sudo nginx -t

Vous verrez la sortie suivante.

user@vultr:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si vous ne voyez aucune erreur dans la configuration, redémarrez Nginx pour que la nouvelle configuration puisse prendre effet.

sudo systemctl restart nginx

Emballer

Accédez à l' https://hubzilla.example.comaide de votre navigateur préféré et vous verrez la page Web montrant l'interface "vérification du système". Vous verrez que chaque exigence réussit lors de la vérification du système. Sur l'interface suivante, fournissez les détails de la base de données que vous avez créés précédemment. Ensuite, fournissez l'adresse e-mail de l'administrateur, l'URL du site Web et le fuseau horaire. Hubzilla est maintenant installé sur votre serveur, vous pouvez continuer à créer l'utilisateur administrateur avec l'e-mail administrateur que vous avez utilisé lors de l'installation.

Enfin, vous devrez configurer cron pour exécuter les tâches planifiées toutes les dix minutes.

Créez un nouveau fichier pour le travail cron.

sudo nano /etc/cron.d/hubzilla

Remplissez le fichier avec les éléments suivants.

*/10 * * * * www-data cd /var/www/hubzilla; /usr/bin/php Zotlabs/Daemon/Master.php Cron

Redémarrez le service cron.

sudo systemctl restart cron

Si vous souhaitez créer un ensemble local de documentation, exécutez les commandes suivantes.

cd /var/www/hubzilla
util/importdoc
sudo chown www-data:www-data -R /var/www/hubzilla

Hubzilla est maintenant installé et configuré, vous pouvez inviter vos amis et utiliser la plateforme comme vous le souhaitez.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.