Outils pour utilisateurs

Outils du site


gestion_du_site_web

Ceci est une ancienne révision du document !



Lighttpd

Pour protéger un répertoire par une authentification “user/password”, on utilise la méthode “basic” avec “htdigest”.

Editer /etc/lighttpd/lighttpd.conf et rajouter le bloc du rép ( son nom, la méthode, le realm, et le user ) dans le block “auth.require”.

Rajouter si besoin une ligne pour un nouvel “user” dans /etc/lighttpd/lighttpd.user qui contient le hash sous la forme htdigest ( user:realm:hashdupass ). Pour ce faire on peut utiliser mdp.sh en éxécutant:

mdp.sh 'user' 'realm' 'motdepasse' ( espaces entre les arguments )

La ligne générée devra être ajoutée dans lighttpd.user.


Pour importer ou exporter un fichier sur ou depuis le serveur:

Il faut un serveur ssh sur la machine émettrice et un sur la réceptrice. Pour vérifier :

“pgrep sshd” sur chacune d'elles.

scp /chemin/fichier NomUtilisateur@NomServeur:/Chemin/Destination

scp -P N°dePort /chemin/fichier NomUtilisateur@NomServeur:/Chemin/Destination (si le serveur ssh écoute sur autre port que 22)

Fonctionne donc dans les deux sens (scp NomUtilisateur@NomServeur:/chemin/fichier /Chemin/Destination).

Pour un répertoire, utiliser l'option -r

scp -r -P N°dePort ...

OBSD:

Serveur oueb :

On active Portmap,mountd et nfsd:

# rcctl enable portmap mountd nfsd
# rcctl start portmap mountd nfsd

/var/www/htdocs/www.chepi.fr/ + liens symboliques vers documents, musique, video

Pour les répertoires “médias” on les “partage” sur le serveur web via:

nfs : /etc/exports (man exports)

/home -maproot=nobody -alldirs -ro -network=192.168.0 -mask=255.255.255.0
rcctl reload mountd

+ entrées dans /etc/fstab

www.chepi.fr:/home/musique /var/www/htdocs/www.chepi.fr/musique nfs ro,nodev,nosuid 0 0
www.chepi.fr:/home/video /var/www/htdocs/www.chepi.fr/video nfs ro,nodev,nosuid 0 0
www.chepi.fr:/home/documents /var/www/htdocs/www.chepi.fr/documents nfs ro,nodev,nosuid 0 0

PHP

Minimum requis

Il est fort possible que vous souhaitiez ajouter le support de PHP à votre site, surtout si vous voulez héberger un moteur de blog ou un CMS. Il s’agit d’un langage de programmation offrant davantage de possibilités que de simples pages HTML.

La commande suivante permet d’installer PHP (à remplacer par la version souhaitée):

# pkg_add php-7.4.7

Pour lister toutes les versions de PHP disponibles (Utile pour supprimer les vieilles versions de php), entrez :

# pkg_info -Q php

Après installation du paquet, on active PHP et on le démarre :

# rcctl enable php74_fpm
# rcctl start php74_fpm

Ici, “74” correspond à la version 7.4.

Nous pouvons maintenant modifier la configuration de httpd pour lui dire de servir les pages au travers de PHP. Quelques lignes sont à ajouter au fichier /etc/httpd.conf :

server "chezmoi.tld" {
      listen on * port 80
      root "/htdocs/monsupersite"
      directory index index.php
      location "*.php*" {
              fastcgi socket "/run/php-fpm.sock"
      }
}

Remarquez l’instruction directory index index.php. Elle permet de rendre l’adresse http://chezmoi.tld/ équivalente à l’adresse http://chezmoi.tld/index.php.

Et voilà, les fichiers “.php” seront correctement interprétés. Cette configuration est suffisante dans la plupart des cas. PHP avec des modules et du chroot

Je vous propose dans cette partie d’aller un peu plus loin pour préparer l’installation d’applications plus complètes (blog, CMS…) en activant des extensions et des options qui ne le sont pas par défaut, toujours dans un souci de sécurité.

Ajouter des modules PHP

Vous avez peut-être remarqué lors de l’installation de PHP une note concernant le dossier /usr/local/share/doc/pkg-readmes. Ce dernier contient des informations très intéressantes que nous allons appliquer ici.

Les extensions installées sont dans le dossier /etc/php-7.4.sample. Afin de les activer, il faut les relier dans le dossier /etc/php-7.4. On peut le faire en deux commandes :

# cd /etc/php-7.4.sample
# for i in *; do ln -sf ../php-7.4.sample/$i ../php-7.4/; done
# rcctl restart php74_fpm

Ainsi, toutes les extensions disponibles pour PHP sont activées. Pensez-y si vous en installez de nouvelles plus tard.

La plupart des extensions sont déjà présentes, mais vous voudrez peut-être y ajouter les paquets suivants (en adaptant le numéro de version):

  php-curl-7.4.7,
  php-gd-7.4.7,
  php-intl-7.4.7,
  php-zip-7.4.7.
  libmcrypt qui donne accès à des fonctionnalités de cryptographie (remplace mcrypt).
  pear, (ainsi que des paquets “pecl-…” qui sont des extensions pratiques)

Modifier la configuration de PHP

On peut souhaiter modifier la configuration de PHP. Il faut pour cela éditer le fichier /etc/php-7.4.ini. Je vous conseille notamment de modifier ces quelques lignes :

; Augmente la taille des fichiers que vous pouvez envoyer sur le site
post_max_size = 10M
upload_max_filesize = 10M
; une application php peut chercher du contenu distant (images..)
allow_url_fopen = On
; Le fuseau horaire
date.timezone = Europe/Paris
; configuration du cache
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.enable_file_override=1

Configuration relative au chroot

Il est possible que votre site doive récupérer des informations ou données venant d’autres sites. Il a donc besoin de résoudre des noms de domaines, vérifier des certificats, connaître l’heure du système. Ces éléments sont situés dans le dossier /etc. Malheureusement, si vous vous souvenez bien, le serveur http est dans un chroot. Où se trouve ce chroot déjà?

Dans /var/www !!!

On va donc être obligé de mettre quelques fichiers qui normalement se trouvent dans /etc à l’intérieur du chroot.

Voici la procédure :

# cd /var/www     # On va dans le chroot
# mkdir etc/      # On fabrique un dossier etc
# cp /etc/resolv.conf etc/resolv.conf            
# cp /etc/hosts etc/hosts              
# cp /etc/localtime etc/localtime                
# mkdir etc/ssl   # On cree un autre dossier
# install -m 444 -o root -g bin /etc/ssl/cert.pem /etc/ssl/openssl.cnf /var/www/etc/ssl

Ces fichiers ne doivent qu’être lisibles et accessibles :

chmod -R 444 /var/www/etc/*
chmod -R a+X /var/www/etc/

Les fichiers copiés servent notamment à :

/etc/resolv.conf et /etc/hosts : Permettent à PHP de traduire un nom de domaine en adresse IP.
/etc/localtime : Permet d’être à la bonne heure.
/etc/ssl/* : Fichiers permettant de vérifier les certificats SSL. Ce dernier doit être régulièrement mis à jour. Ajoutez donc cette ligne dans le fichier /etc/monthly.local :
install -m 444 -o root -g bin /etc/ssl/cert.pem /etc/ssl/openssl.cnf /var/www/etc/ssl

Certaines applications ont besoin d’être capable d’envoyer des mails (forums, wikis…). Puisque PHP est dans un chroot, il ne pourra pas communiquer avec le programme responsable de l’envoi des mails : sendmail. Heureusement, lorsque vous avez installé PHP, l’outil femail-chroot a été lui aussi installé grâce au jeu des dépendances. Pour que PHP puisse l’utiliser, il faut copier “sh” dans le chroot (voir le fichier /usr/local/share/doc/pkg-readmes/femail-chroot*).

# cp /bin/sh /var/www/bin/

Une fois toutes vos modifications réalisées, n’oubliez pas de relancer PHP avec rcctl restart php74_fpm.


httpd : /etc/httpd.conf puis

rrctl restart httpd (man httpd.conf)

Les liens symboliques pour avoir video, musique et documents (tous situés dans /home) à la racine:

ln -s /home/musique /musique

(Pour supprimer un lien symbolique)

rm -i /musique puis valider par "y".

On ajoute également un simple lien symbolique pour “sauvegarde”

ln -s /home/sauvegarde /sauvegarde

Pour redémarrer le service php:

rcctl restart php70_fpm

Bozon

Ajouter les bibliothèques “pear php-pspell php-ldap php-curl php-gd php-mcrypt php-intl php-zip”. Afin de les activer il faut les relier dans le dossier /etc/php-7.0.sample:

cd /etc/php-7.0.sample
for i in *; do ln -sf ../php-7.0.sample/$i ../php-7.0/; done
rcctl restart php70_fpm

Augmenter la taille de mémoire en dernière ligne de /etc/php-fpm.conf

php_admin_value[memory_limit] = 100M (par exemple)

Pour les autres limites de taille de PJ et mémoire faites par le serveur web et php, Cf. Serveur de mails et webmail

Dans le cas où on place des fichiers directement (cp, mv en local sur le serveur ou via Filezilla en distant) dans le dossier /var/www/bozon/uploads/user, on doit régénérer la base afin de rendre ces fichiers visibles dans l'interface de Bozon.

Dokuwiki

La langue de l'interface ainsi que le titre se configurent dans:

/var/www/dokuwiki/conf/local.php

Le nom de la page d'accueilsommaire” se configure dans:

/var/www/dokuwiki/conf/dokuwiki.php

Pour changer le logo.png, cliquer sur Gestionnaire Multimédia, catégorie “wiki”.

gestion_du_site_web.1677346604.txt.gz · Dernière modification: 2023/02/25 18:36 de pit