Outils pour utilisateurs

Outils du site


linux:apache2.4 (lu 20279 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:apache2.4 [09-07-2025 20:51] edmc73linux:apache2.4 [27-08-2025 08:53] (Version actuelle) edmc73
Ligne 1: Ligne 1:
 ====== Apache 2.4 ====== ====== Apache 2.4 ======
 +
 +Petite config d'apache
 +
 +  apt install libapache2-mod-fcgid
 +  a2enmod actions fcgid alias proxy_fcgi
 +
 +  * **actions** est utilisé pour exécuter des scripts CGI sur la base de type de média ou de méthode de requête.
 +  * **fcgid** est une alternative haute performance à mod_cgi qui démarre un nombre suffisant d’instances du programme CGI pour traiter des requêtes simultanées.
 +  * **alias** permet le mappage des différentes parties du système de fichiers hôte dans l’arborescence du document, et la redirection des URL.
 +  * **proxy_fcgi** permet à Apache de transmettre des requêtes à PHP-FPM.
  
  
Ligne 33: Ligne 43:
 Faites de même pour chaque site. Faites de même pour chaque site.
  
 +===== PHP-FPM =====
 Configurer des pools PHP-FPM séparés : Configurer des pools PHP-FPM séparés :
 Si vous utilisez PHP-FPM (ce qui est fortement recommandé pour cette configuration), créez un fichier de configuration de pool pour chaque site. Ces fichiers se trouvent généralement dans /etc/php/X.X/fpm/pool.d/ (où X.X est votre version de PHP). Si vous utilisez PHP-FPM (ce qui est fortement recommandé pour cette configuration), créez un fichier de configuration de pool pour chaque site. Ces fichiers se trouvent généralement dans /etc/php/X.X/fpm/pool.d/ (où X.X est votre version de PHP).
Ligne 63: Ligne 74:
 Répétez cette configuration pour chaque site, en changeant [site1], user, group, listen et chdir en conséquence. Répétez cette configuration pour chaque site, en changeant [site1], user, group, listen et chdir en conséquence.
  
-Configurer votre serveur web (Nginx ou Apache) :+ 
 +===== Configurer votre serveur web (Nginx ou Apache) =====
  
 Nginx : Pour chaque hôte virtuel (server block), configurez-le pour qu'il utilise le socket PHP-FPM du pool correspondant. Nginx : Pour chaque hôte virtuel (server block), configurez-le pour qu'il utilise le socket PHP-FPM du pool correspondant.
Ligne 115: Ligne 127:
 </VirtualHost> </VirtualHost>
 </code> </code>
 +
 +Exemple avec plusieurs version de php pour le même site en fonction du répertoire
 +<code>
 +<VirtualHost *:80>
 +    ServerName monsite.com
 +    DocumentRoot /var/www/monsite
 +
 +    # Version par défaut pour toutes les URL (PHP 8.2)
 +    <FilesMatch \.php$>
 +        SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
 +    </FilesMatch>
 +
 +    # Utiliser PHP 7.4 pour toutes les requêtes vers /blog
 +    <LocationMatch "^/blog/.*\.php$">
 +        SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
 +    </LocationMatch>
 +
 +    # Utiliser PHP 8.0 pour toutes les requêtes vers /api
 +    <LocationMatch "^/api/.*\.php$">
 +        SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost/"
 +    </LocationMatch>
 +
 +</VirtualHost>
 +</code>
 +
 +
 Redémarrer les services : Redémarrer les services :
 Après toutes ces modifications, redémarrez les services concernés : Après toutes ces modifications, redémarrez les services concernés :
Ligne 130: Ligne 168:
 Isolation des processus : Les processus PHP de chaque site sont isolés, ce qui améliore la stabilité. Isolation des processus : Les processus PHP de chaque site sont isolés, ce qui améliore la stabilité.
  
 +===== Postfix =====
 Facilite la configuration de Postfix : Avec chaque site s'exécutant sous un user différent, Postfix verra des expéditeurs comme site1user@votre_serveur ou site2user@votre_serveur.  Facilite la configuration de Postfix : Avec chaque site s'exécutant sous un user différent, Postfix verra des expéditeurs comme site1user@votre_serveur ou site2user@votre_serveur. 
  
-Vous pouvez alors utiliser la configuration sender_canonical_maps de Postfix mentionnée précédemment pour réécrire site1user@votre_serveur en no-reply@site1.com et site2user@votre_serveur en contact@site2.net, etc.+Configurer main.cf pour utiliser les tables de réécriture : 
 + 
 +Modifiez votre fichier /etc/postfix/main.cf et ajoutez les lignes suivantes (ou assurez-vous qu'elles sont présentes et non commentées) : 
 +<code> 
 +# Pour réécrire l'adresse de l'expéditeur basée sur le domaine d'origine 
 +sender_canonical_maps = hash:/etc/postfix/sender_canonical 
 +# Alternativement, ou en complément, pour réécrire les adresses génériques (plus global) 
 +smtp_generic_maps = hash:/etc/postfix/generic 
 +</code> 
 +sender_canonical_maps est généralement préféré pour les envois spécifiques de vos applications, car il se concentre sur l'expéditeur. 
 + 
 +smtp_generic_maps peut aussi être utilisé, mais il est plus "générique" comme son nom l'indique, et est souvent utilisé pour des réécritures plus larges, par exemple, pour s'assurer que toutes les adresses locales (user@localhost) sont réécrites avec un domaine public. 
 + 
 +Créer les fichiers de mappage : 
 + 
 +Pour sender_canonical_maps (recommandé) : 
 + 
 +Créez un fichier /etc/postfix/sender_canonical et ajoutez-y les règles de réécriture. Par exemple, si votre site site1.com utilise un utilisateur système webuser1 pour envoyer des mails, et que site2.net utilise webuser2, vous pouvez faire ceci : 
 +<code> 
 +# /etc/postfix/sender_canonical 
 +webuser1@yourserver.com    no-reply@site1.com 
 +webuser2@yourserver.com    contact@site2.net 
 +@site1.local              @site1.com 
 +@site2.local              @site2.net 
 +</code> 
 +Remplacez yourserver.com, site1.com, site2.net, site1.local, site2.local par vos noms d'hôte et domaines réels. @siteX.local est utile si vos applications PHP génèrent des adresses d'expéditeur avec le nom de l'hôte local. 
 + 
 +Pour smtp_generic_maps (alternative ou complément) : 
 + 
 +Créez un fichier /etc/postfix/generic et ajoutez-y des règles similaires : 
 +<code> 
 +# /etc/postfix/generic 
 +/^webuser1@.*/     no-reply@site1.com 
 +/^webuser2@.*/     contact@site2.net 
 +</code> 
 +Cette approche utilise des expressions régulières pour capturer n'importe quelle adresse provenant de webuser1 et la réécrire. 
 + 
 +Générer les bases de données Postfix : 
 +Après avoir modifié les fichiers sender_canonical ou genericvous devez les convertir en une base de données que Postfix peut utiliser efficacement. Exécutez les commandes suivantes : 
 + 
 +Bash 
 +<code> 
 +sudo postmap /etc/postfix/sender_canonical 
 +# Si vous utilisez aussi generic: 
 +sudo postmap /etc/postfix/generic 
 +</code> 
 +Recharger Postfix : 
 + 
 +Pour que les modifications prennent effet, rechargez Postfix : 
 + 
 +Bash 
 + 
 +  sudo postfix reload 
 + 
 +Points importants à considérer : 
 + 
 +DNS (SPF, DKIM, DMARC) : Pour que vos e-mails ne soient pas marqués comme spam, il est crucial de configurer correctement les enregistrements DNS SPF, DKIM et DMARC pour chaque domaine qui envoie des e-mails. Ces enregistrements indiquent aux serveurs de messagerie destinataires que votre serveur Postfix est autorisé à envoyer des e-mails pour ces domaines. 
 + 
 +Utilisateurs système et PHP : Assurez-vous que vos applications PHP envoient les e-mails en utilisant des utilisateurs système distincts ou des adresses d'expéditeur (From: header) que Postfix peut identifier et réécrire. Si vos scripts PHP définissent déjà correctement l'adresse From:, Postfix honorera souvent cela. Cependant, la réécriture avec sender_canonical_maps est une sécurité supplémentaire si les scripts ne sont pas parfaits. 
 + 
 +Nom d'hôte du serveur : Assurez-vous que le nom d'hôte de votre serveur Postfix est correctement configuré (paramètre myhostname dans main.cf).
  
 C'est la méthode standard pour héberger plusieurs sites PHP de manière isolée et sécurisée. C'est la méthode standard pour héberger plusieurs sites PHP de manière isolée et sécurisée.
  
linux/apache2.4.1752094271.txt.gz · Dernière modification : de edmc73