mod_cgid Exécution des scripts CGI par l'intermédiaire d'un démon CGI externe Base mod_cgid.c cgid_module Uniquement compatible avec les MPMs Unix threadés

Exceptées les optimisations et la directive additionnelle ScriptSock décrite ci-dessous, mod_cgid a un comportement similaire à celui de mod_cgi. Voir le résumé de mod_cgi pour plus de détails à propos d'Apache et CGI.

Sur certains systèmes d'exploitation de type unix, le branchement (forking) d'un processus depuis un serveur multi-threadé est une opération très lourde car le nouveau processus va répliquer tous les threads du processus parent. Pour éviter cette dépense de ressouces pour chaque invocation d'un programme CGI, mod_cgid crée un démon externe qui est responsable du branchement de processus enfants destinés au lancement de scripts CGI. Le serveur principal communique avec ce démon par l'intermédiaire d'un socket de domaine unix.

Si un MPM multi-threadé a été sélectionné lors du processus de compilation, c'est ce module qui est utilisé par défaut à la place de mod_cgi. Du point de vue de l'utilisateur, ce module est identique à mod_cgi quant à sa configuration et son utilisation. La seule différence est la directive additionnelle ScriptSock qui permet de définir le nom du socket à utiliser pour la communication avec le démon CGI.

mod_cgi Exécution de programmes CGI sous des utilisateurs différents ScriptLog ScriptLogLength ScriptLogBuffer ScriptSock Le préfixe du nom de fichier du socket à utiliser pour communiquer avec le démon CGI ScriptSock chemin fichier ScriptSock cgisock server config

Cette directive permet de définir le préfixe du nom de fichier du socket à utiliser pour communiquer avec le démon CGI, préfixe auquel sera ajouté une extension correspondant à l'identifiant processus du serveur. Le socket sera ouvert avec les permissions de l'utilisateur qui a démarré Apache (en général root). Afin de préserver la sécurité des communications avec les scripts CGI, il est impératif de n'accorder à aucun autre utilisateur la permission d'écrire dans le répertoire où se trouve le socket.

Si chemin fichier n'est pas un chemin absolu, il est relatif au chemin défini par la directive DefaultRuntimeDir.

Exemple ScriptSock /var/run/cgid.sock
CGIDScriptTimeout Durée maximale d'attente de la prochaine sortie du programme CGI CGIDScriptTimeout time[s|ms] Si non définie ou définie à 0, valeur de la directive Timeout server config virtual hostdirectory .htaccess Disponible à partir de la version 2.4.10 du serveur HTTP Apache ; dans les versions précédentes, aucune durée d'attente n'était définie

Cette directive permet de limiter la durée d'attente avant les prochaines données reçues en sortie du programme CGI. Si ce temps est dépassé, la requête et le programme CGI se terminent.

Exemple CGIDScriptTimeout 20