Configuration Serveur

Version Apache :
2.4.54.2  - Documentation Apache
Server Software :
Apache/2.4.54 (Win64) PHP/8.0.26 mod_fcgid/2.3.10-dev - Port défini pour Apache : 80
Version de PHP :
[Apache module]  8.0.26 - Documentation PHP - Extensions PHP chargées - Utilisation versions PHP
 
[FCGI] 7.4.33 - 8.0.26 - 8.1.13 - 8.2.0 - Aide mode FCGI
Version de MySQL :
8.0.31 - Port défini pour MySQL : 3308 -  Documentation MySQL
 

Vos Projets (5)

  • glpi
  • glpi - Copie
  • glpiold
  • moodle
  • tools
  • Ce sont vos dossiers dans c:/wamp64/www
    Pour les utiliser comme lien http, il faut les déclarer en tant que VirtualHost.
    Cependant, vous pouvez utiliser Clic-Droit, Paramètres Wamp, Attention: risqué..., Autoriser Liens sur les projets...

Vos VirtualHost (5)

 
X
PHP Loaded Extensions - Function get_loaded_extensions()
PHP 8.0.26 -> Apache module
 bcmath        bz2           calendar      com_dotnet    Core          ctype        
 curl          date          dom           exif          fileinfo      filter       
 gd            gettext       gmp           hash          iconv         imap         
 intl          json          ldap          libxml        mbstring      mysqli       
 mysqlnd       openssl       pcre          PDO           pdo_mysql     pdo_sqlite   
 Phar          readline      Reflection    session       SimpleXML     soap         
 sockets       sodium        SPL           sqlite3       standard      tokenizer    
 xdebug        xml           xmlreader     xmlwriter     xsl           Zend OPcache 
 zip           zlib         
PHP 8.0.26 -> CLI - FCGI
 bcmath        bz2           calendar      com_dotnet    Core          ctype        
 curl          date          dom           exif          fileinfo      filter       
 gd            gettext       gmp           hash          iconv         imap         
 intl          json          ldap          libxml        mbstring      mysqli       
 mysqlnd       openssl       pcre          PDO           pdo_mysql     pdo_sqlite   
 Phar          readline      Reflection    session       SimpleXML     soap         
 sockets       SPL           sqlite3       standard      tokenizer     xdebug       
 xml           xmlreader     xmlwriter     xsl           Zend OPcache  zip          
 zlib         
X
-- Use of PHP versions
 PHP 7.4.33  used for Wampserver internal PHP scripts and FCGI
  FCGI used by:
  VirtualHost: test

 PHP 8.0.26  used as APACHE module
 PHP 8.1.13  not used
 PHP 8.2.0   not used
X

- Comment utiliser PHP en mode Fast CGI avec Wampserver


CGI (Common Gateway Interface) définit une méthode d'interaction entre un serveur web et des programmes générateurs de contenu externes, plus souvent appelés programmes CGI ou scripts CGI. Il s'agit d'une méthode simple pour ajouter du contenu dynamique à votre site web en utilisant votre langage de programmation préféré.

- Une seule version PHP en Module Apache

Depuis l'origine, Wampserver charge PHP en tant que module Apache :
  LoadModule php_module "${INSTALL_DIR}/bin/php/php8.1.1/php8apache2_4.dll"
ce qui fait que tous les VirtualHost, les Alias et les Projets utilisent la même version PHP.
Si on change de version PHP via le menu PHP de Wampmanager, cette nouvelle version sera utilisée partout.

- Plusieurs versions PHP en mode FCGI

Depuis Wampserver 3.2.8, il est possible d'utiliser PHP en mode CGI, c'est-à-dire que l'on peut définir une version PHP différente, dont les addons ont été préalablement installés, pour chaque VirtualHost. Ce qui fait que les VirtualHost ne sont plus obligés d'utiliser la même version PHP.

Le module externe Apache fcgid_module (mod_fcgid.so) simplifie la mise en œuvre de CGI
La documentation est là : mod_fcgid

- Prérequis

- 1 - Présence du fichier mod_fcgid.so dans le dossier modules d'Apache.
- 2 - Présence de la ligne de chargement du module dans le fichier httpd.conf
  LoadModule fcgid_module modules/mod_fcgid.so (Non commentée - pas de # au début)
- 3 - Présence des directives communes de configuration du module fcgid_module dans le fichier httpd.conf

<IfModule fcgid_module>
  FcgidMaxProcessesPerClass 300
  FcgidConnectTimeout 10
  FcgidProcessLifeTime 1800
  FcgidMaxRequestsPerProcess 0
  FcgidMinProcessesPerClass 0
  FcgidFixPathinfo 0
  FcgidZombieScanInterval 20
  FcgidMaxRequestLen 536870912
  FcgidBusyTimeout 120
  FcgidIOTimeout 120
  FcgidTimeScore 3
  FcgidPassHeader Authorization
  Define PHPROOT ${INSTALL_DIR}/bin/php/php
</IfModule>

Ces trois points 1, 2 et 3 sont effectués automatiquement avec la mise à jour Wampserver 3.2.8

- Création d'un VirtualHost FCGI

- Après la mise à jour Wampserver 3.2.8, la page 'http://localhost/add_vhost.php' permet l'ajout d'un VirtualHost FCGI en toute simplicité.
Le choix de la version de PHP à utiliser est limité aux versions des addons PHP installés dans votre Wampserver ce qui évite une erreur de version PHP.
En effet, déclarer, dans un VirtualHost, une version PHP inexistante dans Wampserver va générer une erreur Apache et un "plantage" de celui-ci.

- Si vous voulez modifier un VirtualHost existant pour y adjoindre le mode FCGI avec une version PHP existante déjà dans les addons PHP Wampserver, il suffit... là aussi, d'aller sur la page http://localhost/add_vhost.php et de lancer le Formulaire de modification de VirtualHost pour pouvoir, en trois clics, ajouter le mode FCGI au VirtualHost, changer de version PHP ou supprimer le mode FCGI.
Il faudra rafraîchir Wampserver pour que cela soit pris en compte.
Cette même page 'http://localhost/add_vhost.php' permet également, via le Formulaire de modification Alias, d'ajouter le mode FCGI à un Alias, de changer la version PHP ou supprimer le mode FCGI, toujours en trois clics.

-- Quelques détails --


Pour ajouter le mode FCGI à un VirtualHost déjà existant, il suffit d'ajouter les directives suivantes, juste avant la fin </VirtualHost> de ce VirtualHost:

  <IfModule fcgid_module>
    Define FCGIPHPVERSION "7.4.27"
    FcgidInitialEnv PHPRC "${PHPROOT}${FCGIPHPVERSION}/php.ini"
    <Files ~ "\.php$">
      Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
      AddHandler fcgid-script .php
      FcgidWrapper "${PHPROOT}${FCGIPHPVERSION}/php-cgi.exe" .php
    </Files>
  </IfModule>

La version PHP doit exister comme addon PHP dans votre Wampserver et peut être modifiée.
À l'inverse la suppression de ces lignes fait que le VirtualHost revient à la version PHP utilisée en tant que module Apache.

Pour les Alias, c'est un petit peu moins simple, il faut ajouter les lignes précédentes en deux parties, la première partie :

<IfModule fcgid_module>
  Define FCGIPHPVERSION "7.4.27"
  FcgidCmdOptions ${PHPROOT}${FCGIPHPVERSION}/php-cgi.exe \
  InitialEnv PHPRC=${PHPROOT}${FCGIPHPVERSION}/php.ini
</IfModule>

juste avant la directive <Directory...
La seconde partie :

<IfModule fcgid_module>
  <Files ~ "\.php$">
    Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
    AddHandler fcgid-script .php
    FcgidWrapper "${PHPROOT}${FCGIPHPVERSION}/php-cgi.exe" .php
  </Files>
</IfModule>

à l'intérieur du contexte <Directory...>...</Directory> de manière à obtenir, par exemple pour un Alias quelconque, la structure suivante :

Alias /myalias "g:/www/mydir/"
<IfModule fcgid_module>
  Define FCGIPHPVERSION "7.4.27"
  FcgidCmdOptions ${PHPROOT}${FCGIPHPVERSION}/php-cgi.exe \
  InitialEnv PHPRC=${PHPROOT}${FCGIPHPVERSION}/php.ini
</IfModule>
<Directory "g:/www/mydir/">
  Options Indexes FollowSymLinks
  AllowOverride all
  Require local
  <IfModule fcgid_module>
    <Files ~ "\.php$">
      Options +Indexes +Includes +FollowSymLinks +MultiViews +ExecCGI
      AddHandler fcgid-script .php
      FcgidWrapper "${PHPROOT}${FCGIPHPVERSION}/php-cgi.exe" .php
    </Files>
  </IfModule>
</Directory>