Outils pour utilisateurs

Outils du site


Panneau latéral

Traductions de cette page:

Avez-vous remarqué ?

Il n'y a aucune publicités ou scripts de profilage (tracker) sur ce site.

Ce n'est que grâce à votre aide que l'auteur peut financer l'hébergement et le temps consacré à cet ouvrage.

Si vous voulez l'encourager, vous pouvez faire un don ♥. (même un tout petit ;-))

4-httpd:services

Exemples de services WEB

Cette section propose des exemples de services que vous pouvez auto-héberger. Puisque les applications sont régulièrement mises à jour, il conviendra de ne pas reproduire tête baissée les procédures indiquées, et de vérifier que la démarche correspond à la version du service que vous souhaitez installer.

Après l'installation, il est vivement conseillé de suivre les publications et nouvelles concernant ces applications pour mettre à jour si de nouvelles versions sont disponibles.

Comme vous le constaterez, la méthode d'installation est sensiblement la même pour la plupart des applications :

  1. On crée un dossier pour le nouveau site dans /var/www/htdocs ;
  2. On télécharge l'application, souvent sous forme d'archive que l'on décompresse ;
  3. On déplace les fichiers de l'application dans le dossier prévu à cet effet ;
  4. On change les permissions sur les fichiers : # chown -R www:daemon /var/www/htdocs/lesite
  5. On ajoute une section dans /etc/httpd.conf ;
  6. On recharge httpd avec rcctl reload httpd ;
  7. On termine l'installation en allant sur le nouveau site.

:!: On suppose ici que vous avez déjà procédé à l'installation de httpd et de PHP.

Un cloud avec NextCloud

NextCloud est un service qui vous permet de synchroniser vos documents, contacts, rendez-vous sur n'importe quelle machine grâce à ses multiples clients. Vous pouvez bien entendu installer entièrement nextcloud à partir de l'archive publiée sur leur site, mais on va présenter l'installation à partir du port OpenBSD qui dispose de quelques révisions de sécurité, bien que peut-être un peu moins à jour.

Installation de Nextcloud

Installez le paquet nextcloud, puis lisez le contenu de /usr/local/share/doc/pkg-readme/nextcloud. ^^

Ok, je détaille. :) Notez que sera en fait répété ici le contenu du fichier ci-dessus.

Nextcloud est maintenant installé dans /var/www/nextcloud.

On peut désormais [1-intro:editfile|éditer]] le fichier /etc/httpd.conf afin d'ajouter une section pour nextcloud qui permet d'augmenter la taille maximale des données uploadées. Cette configuration est longue, mais assure une sécurité optimale pour limiter les accès à votre installation.

server "cloud.chezmoi.tld" {
        listen on * port 80
        block return 301 "https://$SERVER_NAME$REQUEST_URI"
}

server "cloud.chezmoi.tld" {
        listen on * tls port 443
        root "/htdocs/nextcloud" 
        directory index index.php
        hsts
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }

        # Set max upload size to 513M (in bytes)
        connection max request body 537919488
        connection max requests 1000
        connection request timeout 3600
        connection timeout 3600

        block drop

        # Ensure that no '*.php*' files can be fetched from these directories
        location "/nextcloud/config/*" {
                block drop
        }

        location "/nextcloud/data/*" {
                block drop
        }

        # Note that this matches "*.php*" anywhere in the request path.
        location "/nextcloud/*.php*" {
                root "/nextcloud"
                request strip 1
                fastcgi socket "/run/php-fpm.sock"
                pass
        }


        location "/nextcloud/apps/*" {
                root "/nextcloud"
                request strip 1
                pass
        }

        location "/nextcloud/core/*" {
                root "/nextcloud"
                request strip 1
                pass
        }

        location "/nextcloud/settings/*" {
                root "/nextcloud"
                request strip 1
                pass
        }

        location "/nextcloud" {
                block return 301 "$DOCUMENT_URI/index.php"
        }

        location "/nextcloud/" {
                block return 301 "$DOCUMENT_URI/index.php"
        }

        location "/.well-known/carddav" {
                block return 301 "https://$SERVER_NAME/nextcloud/remote.php/dav"
        }

        location "/.well-known/caldav" {
                block return 301 "https://$SERVER_NAME/nextcloud/remote.php/dav"
        }

        location "/.well-known/webfinger" {
                block return 301 "https://$SERVER_NAME/nextcloud/public.php?service=webfinger"
        }

        location match "/nextcloud/oc[ms]%-provider/*" {
                directory index index.php
                pass
        }
        location "/.well-known/acme-challenge/*" {
            root "/acme"
            request strip 2
        }
}

Éditez la configuration de php dans /etc/php-7.3.ini pour y mettre :

opcache.enable=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

Configurez une base de données. Ici, on part du principe que cette base sera SQLite. Vous n'avez rien de plus à faire que configurer php en conséquence.

Pour configurer nextcloud, retenez que les chemins ne doivent pas tenir compte de /var/www puisque l'installation est dans un chroot.

  • /15 * * * * su -m www -c “/usr/local/bin/php-7.3 -f /var/www/nextcloud/cron.php”

Enfin, installez redis

# pkg_add redis
# rcctl enable redis
# rcctl start redis

puis ajoutez les lignes suivantes dans /var/www/nextcloud/config/config.php, juste avant le dernier “),

'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '', // Facultatif

Enfin, créez le fichier “CAN_INSTALL” pour permettre l'installation de nextcloud à partir d'un navigateur :

# touch /var/www/nextcloud/config/CAN_INSTALL

Rechargez httpd et php

# rcctl reload httpd
# rcctl restart php73_fpm

Pour terminer l'installation, ouvrez un navigateur à l'adresse de votre cloud, par exemple https://cloud.chezmoi.tld/nextcloud.

Si vous avez des erreurs à propos de l'UTF-8 qui apparaissent, lancez les commandes suivantes pour résoudre ce problème dû au chroot :

# mkdir -p /var/www/usr/share/locale/UTF-8/
# cp /usr/share/locale/UTF-8/LC_CTYPE /var/www/usr/share/locale/UTF-8/

Autre remarque, afin d'augmenter la limite en taille des fichiers que vous aurez à envoyer, vous devez modifier le fichier /etc/php-7.3.ini pour changer les valeurs dans les variables suivantes :

post_max_size = 513M
upload_max_filesize = 513M

Ces limites sont relativement élevées. N'hésitez pas à réduire ces valeurs selon vos besoins.

Si vous voulez utiliser un accès webdav, c'est bien expliqué dans le manuel d'utilisation de Nextcloud.

Avec l'installation décrite ci-dessus, ça revient à utiliser cette URL :

https://cloud.chezmoi.tld/nextcloud/remote.php/webdav/

Webmail

Le webmail vous servira à consulter votre messagerie à partir d'un navigateur web.

Rainloop

RainLoop est un excellent webmail qui est facile à installer et à mettre à jour. Il permet non seulement de consulter les messages présents sur votre serveur mais aussi ceux présents chez d'autres hébergeurs, un peu comme le fait Thunderbird. De plus, il intègre par défaut un support pour le chiffrement PGP, bien que partiel.

Pour que RainLoop fonctionne correctement, vous devrez installer l'extension php-curl et l'activer comme décrit plus haut.

Nous allons mettre RainLoop dans un dossier /var/www/htdocs/webmail que nous allons créer et dans lequel nous nous plaçons :

# mkdir -p /var/www/htdocs/webmail
# cd /var/www/htdocs/webmail

On télécharge l'archive puis on la décompresse :

# ftp "https://www.rainloop.net/repository/webmail/rainloop-community-latest.zip"
# unzip rainloop*.zip

Afin d'attribuer des permissions raisonnables aux fichiers de RainLoop, on exécute les commandes suivantes :

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www:daemon .

Il ne nous reste plus qu'à configurer httpd. Comme d'habitude, on rajoute dans le fichier /etc/httpd.conf une nouvelle section :

server "webmail.chezmoi.tld" {
        listen on * tls port 443
        root "/htdocs/webmail"
        directory index index.php
        # 35M maxi, la valeur par défaut de smtpd
        connection max request body 36700160
        hsts
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }
        location "/data*"                { block }

        location "/*.php*" {
                fastcgi socket "/run/php-fpm.sock"
        }
}

On recharge httpd : rcctl reload httpd puis on ouvre dans un navigateur la page d'administration du webmail située à l'adresse suivante : https:/chezmoi.tld/?admin.

Par défaut, le login administrateur est admin et le mot de passe 12345. Changez-les tout de suite.

Pour la gestion des pièces jointes, qui est maximum de 35M par défaut avec le serveur mail smtpd, vous devriez changer les valeurs suivantes dans la configuration avancée de php.

post_max_size = 35M
upload_max_filesize = 35M

Configuration de RainLoop

RainLoop permet de consulter des messages provenant de serveurs différents. La configuration se déroule à l'adresse chezmoi.tld/?admin. Ainsi, si vous vous dirigez dans l'onglet “Domains”, vous pouvez en voir plusieurs pré-configurés.

Nous ajoutons un nouveau domaine (le vôtre) en cliquant sur “+ Add Domain”.

Une fenêtre s'ouvre. Complétez le champ “Name” avec le nom de domaine de votre serveur. Pour la configuration IMAP et SMTP, vous pourriez réaliser la même configuration que pour n'importe quel client. J'indique ici une configuration qui fonctionnera avec la mise en place d'un serveur mail telle que décrite dans le présent document.

Cliquez sur “Test” Afin de vérifier que tout fonctionne comme prévu.

Dirigez-vous maintenant vers la page principale (sans le ?admin) de votre webmail pour vous y connecter. Attention, il faut rentrer votre adresse mail complète comme login :

Roundcubemail

Nous allons ici installer le très connu roundcube. Cette application est complète, toutefois relativement complexe à installer. Vous voudrez peut-être installer le paquet roundcubemail déjà tout prêt, mais peut-être à une version plus ancienne, et lire le fichier /usr/local/share/doc/pkg-readmes/roundcubemail. (C'est toujours une bonne idée pour notamment vérifier la sécurité de la configuration d'httpd)

Installons tout d'abord quelques dépendances qu'il faudra activer:

# pkg_add sqlite3
# pkg_add php-pspell-7.3.10 php-zip-7.3.10 libmcrypt
# pkg_add php-intl-7.3.10 

On doit ensuite modifier la configuration de PHP. On édite le fichier /etc/php-7.3.ini pour y mettre à la fin :

[suhosin]
suhosin.session.encrypt = 0

Une fois cette modification effectuée, relancez PHP :

# rcctl enable php73_fpm
# rcctl restart php73_fpm

On va mettre roundcube dans le dossier /var/www/htdocs/roundcube.

On télécharge l'archive de roundcube qu'on décompresse :

# cd /var/www/htdocs/
# ftp -o roundcube.tgz https://github.com/roundcube/roundcubemail/releases/download/1.3.8/roundcubemail-1.3.8-complete.tar.gz
# tar xvzf roundcube.tgz

Maintenant, on renomme le nouveau dossier roundcubemail* puis on crée les dossiers nécessaires au bon fonctionnement de roundcube :

# mv roundcubemail-* roundcube
# mkdir -p roundcube/temp roundcube/logs

Nous allons créer la base sqlite pour roundcube. On fabrique un dossier qui contiendra la base de données :

# mkdir /var/www/htdocs/roundcube/db

La commande suivante crée la base :

# cd /var/www/htdocs/roundcube
# sqlite3 -init SQL/sqlite.initial.sql db/sqlite.db
-- Loading resources from roundcube/SQL/sqlite.initial.sql
SQLite version 3.24.0 2018-06-04 19:24:41
Enter ".help" for usage hints.

(Tapez .exit pour quitter sqlite3)

Enfin, on modifie les permissions de tous ces nouveaux fichiers :

# cd /var/www/htdocs/
# chown -R www:daemon roundcube
# chmod 0775 roundcube/db
# chmod 0660 roundcube/db/sqlite.db

On ajoute le nouveau site dans la configuration de httpd. Pour cela, on édite le fichier /etc/httpd.conf et on ajoute quelque chose comme :

server "webmail.chezmoi.tld" {
        listen on * port 80
        block return 301 "https://$SERVER_NAME$REQUEST_URI"
        no log
}

server "webmail.chezmoi.tld" { 
        listen on * tls port 443 
        root "/htdocs/roundcube" 
        directory index index.php
        no log

        hsts 
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }
        location "*.php*" {
            fastcgi socket "/run/php-fpm.sock"
        }
        # Deny Protected directories
        location "/config*" { block }
        location "/temp*" { block }
        location "/logs*" { block }
        location "/README" { block }
        location "/INSTALL" { block }
        location "/LICENSE" { block }
        location "/CHANGELOG" { block }
        location "/UPGRADING" { block }
        location "/bin*" { block }
        location "/SQL*" { block }
        location "/db*" { block }
        location "*.md" { block }
        location "\.*" { block }
} 

Rechargez httpd et PHP puis allez à la page d'installation de votre nouveau webmail avec un navigateur : https://webmail.chezmoi.tld/installer.

Suivez les indications données. La plupart des choses n'ont pas besoin d'être modifiées. Vérifiez tout de même que :

  • Pour la base de données, vous choisissez SQLite.
  • Le nom de la base de données (Database name) doit être celui-ci (avec tous les /…): htdocs/roundcube/db/sqlite.db
  • Les autres champs pour la base de données doivent être vides.
  • Pour smtp_server, la valeur doit être localhost.

Dans le navigateur sera générée la configuration. Enregistrez-la dans le fichier

/var/www/roundcubemail/config/config.inc.php

Vérifiez bien qu'il contient au moins ceci (attention au nombre de /) :

$config['db_dsnw'] = 'sqlite:////htdocs/roundcube/db/sqlite.db?mode=0660';
$config['smtp_server'] = 'localhost';

Vous avez une dernière page de test, puis vous pouvez allez à l'URL de votre webmail pour voir que tout fonctionne.

Bien que tout semble être en état de marche, n'oublions pas la sécurité. Modifiez le fichier config.inc.php pour désactiver l'installateur.

$config['enable_installer'] = false;

Puis supprimez le dossier d'installation totalement :

# rm -r /var/www/htdocs/roundcube/installer

Ça y est, votre webmail est prêt!

À l'avenir, pour mettre roundcube à jour, lisez le fichier UPGRADING et la section Update manually.

Blog et CMS

Blogotext

Blogotext est un moteur de blog léger et un peu plus ;). Il pourra vous permettre en outre d'envoyer et partager des fichiers, faire office d'agrégateur de flux RSS, marque page de liens, prise de notes… C'est un outil génial et complet !

Son installation est très simple et ne nécessite que peu de dépendances, à savoir le paquet sqlite3. Vous y ajouterez php-curl* et php-intl* s'ils ne sont pas déjà installés.

Pour télécharger blogotext, on peut utiliser ftp :

# ftp -o /tmp/blogotext.tar.gz "https://api.github.com/repos/BlogoText/blogotext/tarball/3.7.6"

On décompresse l'archive à partir du dossier /var/www/htdocs :

# cd /var/www/htdocs
# tar xvzf /tmp/blogotext.tar.gz

Un dossier blogotext-3.7.6 est créé. On le renomme en blogotext pour plus de simplicité :

# mv Blogotext-blogotext* blogotext

Maintenant, on modifie les permissions pour que ces nouveaux fichiers appartiennent au serveur web :

# chown -R www:daemon /var/www/htdocs/blogotext

On peut alors éditer le fichier /etc/httpd.conf afin d'ajouter une section pour blogotext :

server "blog.chezmoi.tld" {
    listen on * port 80
    block return 301 "https://$SERVER_NAME$REQUEST_URI"
}

server "blog.chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/blogotext" 
    directory index index.php

# taille maximale que l'on peut envoyer en bytes
    connection max request body 136700160
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "/*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

Pour prendre en compte ces changements, on recharge httpd avec

# rcctl reload httpd

Vous pouvez maintenant terminer l'installation dans un navigateur à l'adresse de votre blog https://blog.chezmoi.tld/.

Pour poster de nouveaux articles et administrer votre blog, rendez-vous à l'adresse https://blog.chezmoi.tld/admin/auth.php. Notez que par sécurité, vous pouvez renommer le dossier admin sur votre serveur.

Dotclear

Dotclear est un autre moteur de blog. Vous pouvez utiliser n'importe quelle base de données avec ce dernier, mais SQLite reste un choix prudent et simple en auto-hébergement.

Pour installer dotclear, nous allons commencer par préparer la configuration du serveur web (http). À nouveau, nous supposons que vous avez déjà installé PHP.

Dans le fichier /etc/httpd.conf, ajoutez un nouveau site :

server "blog.chezmoi.tld" {
        listen on * port 80
        block return 301 "https://$SERVER_NAME$REQUEST_URI"
}

server "blog.chezmoi.tld" {
        listen on * tls port 443
        root "/htdocs/dotclear" 
        directory index index.php

        # taille maximale que l'on peut envoyer en bytes
        connection max request body 136700160
        hsts
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }

        location "/*.php*" {
                fastcgi socket "/run/php-fpm.sock"
        }
}

Ensuite, on crée le dossier qui va accueillir dotclear.

# mkdir -p /var/www/htdocs/dotclear

On télécharge le fichier d'installation de dotclear :

# ftp -o /var/www/htdocs/dotclear/dotclear-loader.php https://download.dotclear.org/loader/dotclear-loader.php

Modifiez les permissions sur le dossier qui contiendra dotclear puis rechargez httpd :

# chown -R www:daemon /var/www/htdocs/dotclear
# rcctl reload httpd

Terminez l'installation dans un navigateur à l'URL suivante :

http://blog.chezmoi.tld/dotclear-loader.php

Si vous avez choisi SQLite, il faudra juste compléter le nom du fichier pour la base en le baptisant à votre souhait.

Vous pouvez lire la documentation officielle de dotclear concernant l'installation.

Une fois celle-ci terminée, pensez à supprimer le fichier d'installation :

# rm /var/www/htdocs/dotclear/dotclear-loader.php 

Wordpress

Wordpress est un moteur relativement lourd mais qui peut permettre de créer n'importe quel site. Si vous recherchez un CMS plus léger et facile à installer, regardez du côté de PluXML.

Quelques dépendances sont à installer, dont la base de données MariaDB :

# pkg_add php-mysqli-7.3.10 mariadb-server
# cd /etc/php-7.3.sample
# for i in *; do ln -sf ../php-7.3.sample/$i ../php-7.3/; done
# rcctl restart php73_fpm

Vous devez maintenant créer une base de données dans MariaDB, le clone libre de MySQL. Référez-vous à la partie dédiée à cette manipulation. Veillez à retenir le nom de la base choisie, l'utilisateur et le mot de passe.

On télécharge ensuite la dernière version de wordpress :

# ftp -o /tmp/wordpress.tar.gz "https://wordpress.org/latest.tar.gz"

On décompresse l'archive dans le dossier /var/www/htdocs

# cd /var/www/htdocs
# tar xvzf /tmp/wordpress.tar.gz

On modifie les permissions du nouveau dossier :

# chown -R www:daemon /var/www/htdocs/wordpress

On ajoute maintenant une section dans /etc/httpd.conf

server "blog.chezmoi.tld" {
        listen on * tls port 443
        root "/htdocs/wordpress"
        directory index index.php
        hsts
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }
        # Set max upload size to 35M (in bytes)
        connection max request body 36700160

        # protected files and dir
        location "/.*"                { block }
        location "/upload/*.php"      { block }
        location "/files/*.php"       { block }

        # Any other PHP file
        location "/*.php*" {
                fastcgi socket "/run/php-fpm.sock"
        }
}

Enfin, on recharge httpd : rcctl reload httpd.

Dirigez-vous à l'adresse du nouveau site pour terminer l'installation et remplir les informations concernant la base de données qui vient d'être créée.

L'installation de Wordpress est terminée :) Vous pouvez désormais ajouter du contenu et personnaliser votre site.

Si toutefois Wordpress ne vous convenait pas, regardez le paragraphe suivant qui parle de PluXML, nettement plus simple à gérer.

PluXML

PluXML est une application très légère qui ne nécessite aucune base de données mais qui pourtant s'avère efficace dans la création d'un site.

Son installation est des plus simples comme vous pourrez le constater.

On commence par télécharger l'archive contenant PluXML après s'être placés dans un dossier temporaire :

# cd /tmp
# ftp -o pluxml.zip "https://www.pluxml.org/download/pluxml-latest.zip"

Vous avez récupéré une archive .zip que l'on décompresse :

# unzip pluxml.zip

Cela nous permet maintenant de déplacer le dossier contenant PluXML à un emplacement approprié pour httpd :

# mv PluXml /var/www/htdocs/pluxml

N'oublions pas de modifier les permissions :

# chown -R www:daemon /var/www/htdocs/pluxml

Il ne nous reste plus qu'à ajouter un nouveau site dans la configuration de httpd. Éditez le fichier /etc/httpd.conf pour y mettre :

server "chezmoi.tld" {
    listen on * port 80
    block return 301 "https://$SERVER_NAME$REQUEST_URI"
}

server "chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/pluxml/"
    directory index index.php
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
    # Permet l'envoi de fichier de 35M (en bytes)
    connection max request body 36700160

    # On cache le fichier version:
    location "/version" { block }

    # Ligne très importante pour éviter le vol de mot de passe
    location "/data/configuration/users.xml" { block }
}

Parfait ! Maintenant, il ne vous reste plus qu'à recharger httpd puis à consulter votre site dans un navigateur pour achever l'installation :

Une fois terminée, pensez à supprimer le fichier d'installation de PluXML :

# rm /var/www/htdocs/pluxml/install.php

Vous pouvez désormais ajouter de nouveaux articles ou des pages statiques pour créer votre site. N'hésitez pas à échanger avec la communauté sur le forum de PluXML.

Drupal

Drupal est un gestionnaire de contenu très répandu mais aussi relativement lourd. Cependant, vous pourrez l'utiliser pour créer toutes sortes de sites.

Avant toutes choses, vous devez avoir déjà installé PHP avec au moins les paquets php-curl, php-gd, un support de base de données et appliqué la configuration relative au chroot. Vous pouvez utiliser n'importe quelle base de données entre SQLite, MySQL ou PostgreSQL.

On télécharge Drupal en utilisant le lien que vous pouvez retrouver à cette page.

# cd /tmp
# ftp -o drupal.tgz https://www.drupal.org/download-latest/tar.gz

Une fois l'archive récupérée, on extrait les fichiers puis on les place dans un dossier accessible par le serveur httpd qui sera ici /var/www/htdocs/drupal :

# tar xvzf drupal.tgz
# mv drupal-*/ /var/www/htdocs/drupal

N'oubliez pas de changer les permissions :

# chown -R www:daemon /var/www/htdocs/drupal

Puisque nous en sommes à configurer la partie serveur httpd, éditez le fichier /etc/httpd.conf pour y ajouter votre nouveau site :

server "chezmoi.tld" {
        listen on * port 80
        block return 301 "https://$SERVER_NAME$REQUEST_URI"
        no log
}

server "chezmoi.tld" {
        listen on * tls port 443
        root "/htdocs/drupal"
        directory index index.php
        connection max request body 36700160
        hsts
        tls {
            certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
            key "/etc/ssl/private/chezmoi.tld.key"
        }

        location "*.php*" {
                fastcgi socket "/run/php-fpm.sock"
        }
}

À titre d'exemple, voici les manipulations à faire pour utiliser MariaDB (mysql) avec drupal. Ces manipulations ne sont pas à effectuer si vous utilisez SQLite.

Il faut créer un utilisateur pour la base de données qui aura le droit de créer une nouvelle table. La table s'appellera drupal_base et l'utilisateur drupaluser. On entre # mysql -u root -p puis :

MariaDB [(none)]> CREATE DATABASE drupal_base;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY 'motdepasse';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,
ALTER, CREATE TEMPORARY TABLES ON drupal_base.* TO 'drupaluser'@'localhost';
Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

On a presque fini, courage. Rechargez la configuration de httpd avec la commande habituelle

# rcctl reload httpd

Vous pouvez maintenant terminer l'installation en ouvrant dans un navigateur https://chezmoi.tld/ afin d'être redirigé vers la page d'installation.

Et voilà, vous êtes prêts à fabriquer votre site. ^^

CardDAV et CalDAV avec Baïkal

Baïkal est un serveur Cal et CardDAV permettant de synchroniser votre calendrier et vos contacts. Il ne fait que ça, c'est pourquoi il le fait bien tout en restant léger.

Vous aurez besoin pour l'utiliser de PHP et de SQLite.

Vérifiez quelle est la dernière version de Baikal. Vous pouvez ensuite la télécharger avec ftp:

# ftp -o /tmp/baikal.zip "https://github.com/fruux/Baikal/releases/download/0.4.6/baikal-0.4.6.zip"

On se déplace dans le dossier web pour décompresser baikal et modifier les droits sur les fichiers :

# cd /var/www/htdocs/
# unzip /tmp/baikal.zip
# chown -R www:daemon baikal

Ajoutez une nouvelle section dans le fichier /etc/httpd.conf pour configurer httpd. Notez qu'on ne configure ici qu'un accès via une adresse en “https” :

server "dav.chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/baikal/html" 
    directory index index.php
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "/.well-known/caldav" { 
        block return 301 "https://$SERVER_NAME/dav.php" 
    }
    location "/.well-known/carddav" { 
        block return 301 "https://$SERVER_NAME/dav.php" 
    }

    location "/.ht*" { block }
    location "/Core*" { block }
    location "/Specific*" { block }

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

Reste à recharger httpd avec rcctl reload httpd. Vous pouvez désormais vous rendre à l'adresse https://dav.chezmoi.tld pour terminer l'installation.

Configuration de Thunderbird pour Baïkal

Pour utiliser votre calendrier, vous pouvez récupérer l'excellente extension lightning pour Thunderbird.

Pour la télécharger, c'est par ici. Enregistrez le fichier .xpi puis ouvrez-le dans Thunderbird à partir du menu des modules accessible dans le menu de Thunderbird remarquable par ses 3 traits horizontaux en haut à droite.

Il faudra cliquer sur le petit engrenage pour choisir d'installer à la main l'extension précédemment téléchargée :

Ci-dessous, vous pourrez lire des instructions issues de guillaume-leduc.fr pour utiliser votre instance de Baïkal avec Thunderbird.

Vous pouvez créer un nouvel agenda en faisant un clic-droit dans la zone où sont listés tous les calendriers.

Lors de la configuration de votre agenda CalDAV, vous devrez renseigner l'adresse suivante pour un agenda “sur le réseau” :

https://dav.chezmoi.tld/cal.php/calendars/UTILISATEUR/ID_AGENDA/

Vous remplacerez UTILISATEUR et ID_AGENDA selon l'adresse visible dans votre navigateur. N'oubliez pas le / final. Dans l'exemple ci-dessous, ça donne une URL qui se termine par /toto/default/ :

Pour un carnet d'adresses, l'URL à renseigner est la suivante :

https://dav.chezmoi.tld/card.php/addressbooks/UTILISATEUR/CARNET/

Configuration de Rainloop pour Baïkal

Si vous utilisez le webmail RainLoop, sachez qu'il est possible d'utiliser la synchronisation des contacts avec votre instance de Baïkal.

Dans l'interface d'administration de Rainloop, allez dans l'onglet “Contacts” puis cochez “Enable contacts” et “Allow contact sync” :

Ensuite, connectez-vous en simple utilisateur. Dans les paramètres de ce dernier accessibles en haut à droite, vous trouverez un onglet “Contact” permettant de préciser l'adresse de votre instance Baïkal sur le même modèle que pour Thunderbird, autrement dit :

https://dav.chezmoi.tld/card.php/addressbooks/UTILISATEUR/CARNET/

Wiki

Il existe tellement de moteurs de wiki qu'il est difficile de faire un choix. Ces derniers sont souvent très configurables et permettent parfois d'en faire des blogs voire des sites complets.

Nous allons nous intéresser ici à l'installation de dokuwiki, un des moteurs les plus connus et les plus pratiques grâce à ses multiples extensions et le peu de dépendances qu'il nécessite : PHP (c'est tout :P.).

L'installation est semblable à la plupart des sites web comme vous pourrez le voir, c'est pourquoi elle ne sera pas exhaustive.

Téléchargement de dokuwiki :

# ftp -o /tmp/dokuwiki.tgz "http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz"

Extraction de l'archive :

# cd /var/www/htdocs
# tar xvzf /tmp/dokuwiki.tgz

On renomme le dossier et on change les droits :

# mv dokuwiki-* wiki
# chown -R www:daemon wiki

La configuration de httpd peut se réaliser ainsi dans le fichier /etc/httpd.conf:

server "wiki.chezmoi.tld" {
    listen on * port 80
    block return 301 "https://$SERVER_NAME$REQUEST_URI"
    no log
}

server "wiki.chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/wiki"
    directory index doku.php
    # Set max upload size to 35M (in bytes)
    connection max request body 36700160
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }

    location "/data*"         { block }
    location "/conf*"         { block }
    location "/bin*"          { block }
    location "/inc*"          { block }
    location "/vendor*"          { block }
}

Ajustez les permissions par sécurité :

# chmod 0700 bin/ conf/ data/ inc/ vendor/

Rechargez httpd avec rcctl reload httpd, puis ouvrez dans un navigateur l'adresse de votre wiki vers le fichier install.php pour terminer l'installation.

Une fois l'installation terminée, supprimez le fichier install.php

# rm /var/www/htdocs/wiki/install.php

Lecteur de flux RSS

Vous pouvez installer sur votre serveur un outil qui vous permettra de lire en un seul endroit les nouveautés publiées sur vos sites favoris grâce à leurs flux RSS. C'est nettement plus pratique que consulter les pages WEB une par une.

KrISS : simple mais efficace

KrISS est un lecteur de flux qui tient en un seul fichier PHP. Oui, un seul ! Pourtant, il est complet et rapide, tout ce qu'il faut pour une utilisation personnelle.

Ceux qui souhaiteraient proposer un service d'agrégateur de flux à plusieurs personnes pourront très bien installer KrISS dans différents dossiers, un par utilisateur.

L'installation est simple comme tout, il faut télécharger le fichier de KrISS puis le placer sur votre serveur web (http).

  • Préparez votre serveur pour PHP et ajoutez-y l'extension curl. Réalisez aussi la configuration relative au chroot afin de pouvoir résoudre les noms de domaine.
  • Téléchargez KrISS : ftp -o /tmp/index.php https://raw.github.com/tontof/kriss_feed/master/index.php
  • Créez le dossier qui contiendra KrISS : # mkdir -p /var/www/htdocs/kriss
  • Déplacez le fichier index.php à l'endroit souhaité : # mv /tmp/index.php /var/www/htdocs/kriss
  • Ajustez les permissions : # chown -R www:daemon /var/www/htdocs/kriss
  • Ajustez éventuellement la configuration de /etc/httpd.conf, mais ça a sûrement déjà été fait lors de la configuration de PHP :
server "chezmoi.tld" {
    root "/htdocs/kriss"
    listen on * tls port 443
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }
    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }

    location "/kriss/" {
        directory index index.php
    }
}

Relancez httpd avec rcctl reload httpd puis ouvrez votre navigateur sur l'emplacement de KrISS afin de terminer l'installation.

Profitez ;)

TinyTinyRSS : application complète

Tiny Tiny RSS est un autre agrégateur de flux. Ce dernier est très complet et conviendra davantage à ceux souhaitant proposer ce service à plusieurs personnes. Toutefois, son installation est loin d'être simple, et il s'avère souvent plus pratique d'avoir plusieurs instances de KrISS à la place. Mais libre à vous d'utiliser votre outil favori.

Pour l'installer, vous devez avoir déjà installé PHP, et appliqué la configuration relative au chroot ainsi que PostgreSQL ou MySQL et créé une table pour Tiny Tiny RSS.

Nous allons utiliser PostgreSQL par souci de performance. On va créer une base uniquement pour Tiny Tiny RSS. Nous faisons le choix de passer par un utilisateur ttrss qui aura accès à la base :

# psql -U postgres -c "CREATE USER ttrss \
        WITH PASSWORD 'mot_de_passe_de_l_utilisateur';"

# psql -U postgres 
\connect template1
CREATE DATABASE "ttrssdb" WITH ENCODING 'UTF-8';
GRANT ALL PRIVILEGES ON DATABASE "ttrssdb" TO ttrss;
ALTER DATABASE "ttrssdb" OWNER TO ttrss;
\q

Nous pouvons enfin passer à la configuration de ttrss. On le télécharge dans le dossier /var/www/htdocs/ttrss :

# cd /var/www/htdocs
# git clone --depth=1 https://tt-rss.org/git/tt-rss.git ttrss

Ensuite, nous modifions les permissions pour le serveur web (http) :

# chown -R www:daemon /var/www/htdocs/ttrss

On édite /etc/httpd.conf pour y ajouter notre nouveau site :

server "rss.chezmoi.tld" {
    listen on * port 80
    block return 301 "https://$SERVER_NAME$REQUEST_URI"
    no log
}

server "rss.chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/ttrss"
    directory index index.php
    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

On recharge la configuration de httpd :

# rcctl reload httpd

Vous pouvez désormais terminer l'installation en ouvrant votre navigateur à l'adresse https://rss.chezmoi.tld/install/.

On vous demande les identifiants pour accéder à la base de données. Ce sont ceux que vous avez créés juste avant pour l'utilisateur ttrss.

Cliquez ensuite sur “Initialize database” :

Cliquez sur “Save Configuration” pour l'enregistrer. Vous pouvez bien sûr modifier cette configuration selon vos besoins avant.

Vous pouvez maintenant vous diriger à l'adresse http://rss.chezmoi.tld pour vérifier que tout fonctionne bien. Les identifiants par défaut sont “admin” et “password”, qu'il faudra changer au plus vite.

Si tout s'est bien passé, vous pouvez supprimer l'installateur :

# rm -r /var/www/htdocs/ttrss/install

Vous souhaiterez certainement mettre à jour régulièrement la liste des flux de façon automatique. Si vous avez lu la documentation relative à TinyTinyRSS, vous savez qu'il faut exécuter le fichier update.php. Par exemple, dans une tâche cron :

@hourly /usr/local/bin/php-7.3 /var/www/htdocs/ttrss/update.php --feeds --quiet

Il vous sera peut-être demandé de modifier les permissions sur certains répertoires. Vous devez alors entrer :

chown -R 777 /var/www/htdocs/ttrss/cache/images
chown -R 777 /var/www/htdocs/ttrss/cache/upload
chown -R 777 /var/www/htdocs/ttrss/cache/export
chown -R 777 /var/www/htdocs/ttrss/feed-icons
chown -R 777 /var/www/htdocs/ttrss/lock

Statistiques des visites sur vos sites

Webalizer

Malheureusement, webalizer ne semble plus mis à jour, mais il continue de bien fonctionner.

Webalizer est un outil qui peut générer graphiques et tableaux à partir des logs (journaux) de votre serveur. En un clin d'œil vous pourrez trouver à propos de votre site :

  • Horaires de visites ;
  • Nombre de clics ;
  • Quantité de données chargées ;
  • Pages 404 (pratique pour traquer les liens morts) ;
  • D'où viennent les visiteurs…

D'autres outils similaires existent, en particulier matomo. Ce dernier est toutefois moins facile à mettre en place (base de données MySQL) et nécessite l'insertion de code html dans toutes vos pages web. Il est aussi moins efficace si les visiteurs utilisent des addons Firefox comme noscript ou μblock. Cependant, les données récoltées sont plus pertinentes. Vous voudrez donc peut-être compléter l'installation de webalizer avec matomo.

Quoi qu'il en soit, nous allons voir ici une méthode pour obtenir de belles statistiques avec webalizer.

Comme d'habitude, on commence par l'installer avec la commande magique :

# pkg_add webalizer

Pour le configurer, nous allons utiliser comme base le modèle fourni. On le copie par exemple dans /etc/ :

# cp /usr/local/share/examples/webalizer/sample.conf /etc/webalizer.chezmoi.tld.conf

Éditez ce nouveau fichier pour l'adapter à vos besoins. Voici quelques options pratiques que vous voudrez certainement changer :

  • LogFile /var/www/logs/access.log : Emplacement des journaux du serveur web.
  • OutputDir /var/www/htdocs/chezmoi.tld/stats : Vous choisissez où seront enregistrées les pages html générées. Référez-vous à la partie sur httpd pour configurer votre serveur web (http) et accéder aux statistiques avec un navigateur. Attention de bien créer ce répertoire au préalable, sinon Webalizer plantera avec un message d'erreur.
  • HideSite *chezmoi.tld et HideReferrer chezmoi.tld/ : On cache les liens provenant des clics réalisés sur votre site vers votre site.
  • HideURL *.css , HideURL *.woff : On cache les extensions de fichiers non souhaitées.
  • IgnoreURL /favicon.ico : On ignore certaines URL lorsque les statistiques sont générées.
  • Color* : Pour changer les couleurs, car le thème par défaut, n'est pas très attrayant tout de même.
  • HTMLHead … : tout ce qui sera rajouté dans l'entête de la page html générée. Vous pouvez de cette façon ajouter quelques lignes CSS pour modifier l'apparence, par exemple :
HTMLHead <style type="text/css">
HTMLHead body {
HTMLHead background: radial-gradient(circle,#2569A0,#000046);
HTMLHead }
HTMLHead </style>

Vous trouverez un exemple de configuration de webalizer à la fin du document

Vous pouvez générer une première fois les statistiques avec la commande suivante :

# webalizer -c /etc/webalizer.chezmoi.tld.conf

Et hop, toutes les pages html et les graphiques sont dans le dossier défini par la variable OutputDir, il suffit de vous y rendre avec un navigateur web pour les étudier.

Cependant, vous devrez régler encore quelques petits détails. Par exemple, la partie des “Referers” qui recense les sites sur lesquels le votre est cité doit être bien maigre. Il faut régler la façon dont httpd produit les logs. Rien de bien compliqué, il faut juste ajouter dans le fichier /etc/httpd.conf la ligne suivante dans le site pour lequel on veut des statistiques : log style combined.

Euh, on peut avoir un exemple siouplé? 8-)

Voici :

server "chezmoi.tld" {
    listen on * tls port 443
    root "/htdocs/chezmoi.tld"
    directory index index.html
    log style combined

    hsts
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }
}

N'oubliez pas de recharger httpd avec rcctl reload httpd.

Mais on doit lancer la commande webalizer manuellement ? C'est nul ce truc !

On n'en reste pas là bien entendu. Afin que les statistiques soient générées par exemple tous les jours, nous pourrions profiter du fichier /etc/daily.local.

De plus, il faut éviter que les logs n'aient été archivés avant d'avoir été traités par webalizer. Nous allons donc modifier la configuration de l'outil qui compresse les logs régulièrement. Il s'agit de newsyslog. On édite le fichier /etc/newsyslog.conf qui ressemble à ça :

# $OpenBSD: newsyslog.conf,v 1.34 2015/10/14 20:54:07 millert Exp $
#
# configuration file for newsyslog
#
# logfile_name      owner:group     mode count size when  flags
/var/cron/log       root:wheel      600  3     10   *     Z
/var/log/aculog     uucp:dialer     660  7     *    24    Z
/var/log/authlog    root:wheel      640  7     *    168   Z
/var/log/daemon                     640  5     30   *     Z
/var/log/lpd-errs                   640  7     10   *     Z
/var/log/maillog                    640  7     *    24    Z
/var/log/messages                   644  5     30   *     Z
/var/log/secure                     600  7     *    168   Z
/var/log/wtmp                       644  7     *    $W6D4 B
/var/log/xferlog                    640  7     250  *     Z
/var/log/pflog                      600  3     250  *     ZB "pkill -HUP -u root -U root -t - -x pflogd"
/var/www/logs/access.log            644  4     *    $W0   Z "pkill -USR1 -u root -U root -x httpd"
/var/www/logs/error.log             644  7     250  *     Z "pkill -USR1 -u root -U root -x httpd"

C'est l'avant-dernière ligne que nous allons changer afin de lancer webalizer avant de faire tourner les logs du serveur web (http). Elle ressemblera à :

/var/www/logs/access.log            644  4     *    $W0   Z "/usr/local/bin/webalizer -c /etc/webalizer.chezmoi.tld.conf && pkill -USR1 -u root -U root -x httpd"

Pour vérifier que tout fonctionne bien, lancez newsyslog en le forçant à archiver les logs et en le faisant parler. Vous devriez obtenir quelque chose de la sorte :

# newsyslog -vF
/var/cron/log <3Z>: size (KB): 7.24 [10] --> trimming log....
/var/log/authlog <7Z>: age (hr): 88 [168] --> trimming log....
/var/log/daemon <5Z>: size (KB): 0.41 [30] --> trimming log....
/var/log/lpd-errs <7Z>: size (KB): 2.02 [10] --> trimming log....
/var/log/maillog <7Z>: age (hr): 16 [24] --> trimming log....
/var/log/messages <5Z>: size (KB): 0.45 [30] --> trimming log....
/var/log/secure <7Z>: age (hr): -1 [168] --> trimming log....
/var/log/wtmp <7B>: --> trimming log....
/var/log/xferlog <7Z>: size (KB): 0.00 [250] --> trimming log....
/var/log/pflog <3ZB>: size (KB): 64.26 [250] --> trimming log....
/var/www/logs/access.log <4Z>: --> trimming log....
/var/www/logs/error.log <7Z>: size (KB): 212.87 [250] --> trimming log....
/var/www/logs/mateteestmalade.log <7Z>: size (KB): 3.93 [250] --> trimming log....
Webalizer Xtended RB30 (06-Apr-2014) / [OpenBSD https://www.openbsd.org/] 5.9 amd64 / English
Copyright 2005-2014 by Patrick K. Frei
Based on Webalizer V2.23-08
Using logfile /var/www/logs/access.log (clf)
Using GeoIP Country Edition (/var/db/GeoIP/GeoIP.dat)
GEO-106FREE 20151201 Build 1 Copyright (c) 2015 MaxMind Inc All Rights Reserved
Creating output in /var/www/htdocs/chezmoi.tld/stats
Hostname for reports is 'chezmoi.tld'
Reading history file... webalizer.hist
Skipping bad record (1)
No valid records found!
Generating summary report

Il y a les messages de webalizer qui montrent qu'il a été exécuté.

Et voilà, les statistiques sont générées régulièrement et avant que les logs ne soient archivés.

Matomo

Matomo est nettement plus lourd pour générer des statistiques. Si votre serveur a une puissance limitée, préférez webalizer.

Pour PHP, installez et activez ces paquets : php-curl php-gd. Il y a aussi besoin des bibliothèques geoip et cli qui sont normalement intégrées dans le paquet PHP d'OpenBSD.

Installez une base MySQL (mariadb). Voici un récapitulatif tiré de la documentation de matomo:

# mysql -u root -p
mysql> CREATE DATABASE matomo_db_name_here;
mysql> CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON matomo_db_name_here.* TO 'matomo'@'localhost';

Ensuite, on télécharge matomo dans le dossier /var/www/htdocs/matomo :

# ftp -o /tmp/matomo.zip "http://builds.matomo.org/matomo.zip" 
# cp /tmp && unzip /tmp/matomo.zip
# mv matomo /var/www/htdocs/

Configurez maintenant un nouveau site dans le fichier /etc/httpd.conf :

server "stats.chezmoi.tld" { 
    listen on * tls port 443 
    root "/htdocs/matomo/"
    directory index index.php

    hsts 
    tls {
        certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
        key "/etc/ssl/private/chezmoi.tld.key"
    }

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

Modifiez les permissions sur ce dossier :

# chown -R www:daemon /var/www/htdocs/matomo

Rechargez httpd avec rcctl reload httpd puis dirigez-vous avec un navigateur sur l'adresse du site fraîchement activé pour terminer l'installation de matomo.

N'oubliez pas d'ajouter à vos pages web le code d'intégration donné.

goaccess

Plus proche de webalizer que de Matomo dans son fonctionnement, goaccess propose une interface plus moderne. Il peut en outre générer des rapports au format html, mais aussi vous laisser consulter les statistiques dans terminal en temps-réel.

Afin de profiter de statistiques incrémentales au fil du temps, il faut installer la saveur “tokyocabinet” du paquet :

# pkg_add -z goaccess-*-tokyocabinet

Pensez à regarder l'exemple donné dans le paquet : /usr/local/share/examples/goaccess/goaccess.conf

Vous pouvez créer à partir de l'exemple un fichier de configuration pour goaccess qu'on appelera ici /etc/goaccess.conf. Vous pouvez lire des exemples pour des logs enregistrés au format “combined” ou “default”. Voici ce à quoi la configuration peut ressembler pour httpd au format classique :

# format des [logs #logs]
time-format %T %z
date-format %d/%b/%Y
log-format %v %h %^ %^ [%d:%t] "%r" %s %b "%R" "%u"
# Base de donnees pour la geolocalisation
geoip-database /var/db/GeoIP/GeoLite2-Country.mmdb
# Ne s'arrete pas si une ligne ne peut être parsee
num-test 0
# Dossier où seront enregistrees les statistiques
db-path /var/goaccessdb/

On crée le dossier qui contiendra les données de goaccess : mkdir -p /var/goaccessdb/.

Ensuite, vous pouvez générer les statistiques. Pensez à le faire avant la rotation des logs (voir le paragraphe sur webalizer).

goaccess /var/www/logs/chezmoi.tld.log -o /var/www/htdocs/chezmoi.tld/stats.html \
    --load-from-disk --keep-db-files

Si vous constatez des erreurs de ce type:

Fatal error has occurred
Error occurred at: src/tcabdb.c - tc_adb_create - 126
Unable to open an abstract database: /var/goaccessdb//8mcs9SUehdb_cumts.tcb#lcnum=1024#ncnum=512#lmemb=128#nmemb=256#bnum=32749#opts=l#mode=wct

Avant de créer les statistiques, vous devez augmenter la limite du nombre de fichiers qui peuvent être ouverts avec la commande ulimit -n 256. Ensuite, goaccess fonctionnera comme prévu.

Contribu(trices|teurs) :

prx
4-httpd/services.txt · Dernière modification: 2020/06/02 10:17 de prx