Apache Virtual Hosts c:/wamp64/bin/apache/apache2.4.66.2/conf/extra/httpd-vhosts.conf

Servidor virtual ya definido:

Windows hosts C:/WINDOWS/system32/drivers/etc/hosts











Alias

X

Cómo usar PHP en modo Fast CGI con Wampserver


El CGI (Interfaz de puerta de enlace común) define una forma en que un servidor web interactúa con programas externos de generación de contenido, que a menudo se denominan programas CGI o scripts CGI. Es una forma sencilla de poner contenido dinámico en su sitio web, utilizando cualquier lenguaje de programación con el que esté más familiarizado.

- Solo una versión de PHP como módulo de Apache

Desde el principio, Wampserver carga PHP como un módulo de Apache:
  LoadModule php_module "${INSTALL_DIR}/bin/php/php8.1.1/php8apache2_4.dll"
lo que hace que todos los servidores virtuales, Alias y proyectos usen la misma versión de PHP.
Si cambia la versión de PHP a través del menú PHP de Wampmanager, esta nueva versión será utilizada en todas partes.

- Varias versiones de PHP con modo FCGI

Desde Wampserver 3.2.8, es posible utilizar PHP en modo CGI, es decir, puede definir una versión de PHP diferente, cuyos complementos se hayan instalado previamente, para cada servidor virtual. Esto significa que los servidores virtuales ya no están obligados a usar la misma versión de PHP.

El Apache fcgid_module (mod_fcgid.so) simplifica la implementación de CGI.
La documentación la podrá encontrar aquí: mod_fcgid

- Requisitos previos

- 1 Presencia del archivo mod_fcgid.so en la carpeta de módulos de Apache.
- 2 Presencia de la línea de carga del módulo en el archivo httpd.conf
  LoadModule fcgid_module modules/mod_fcgid.so (Sin comentar - Sin # al principio)
- 3 Presencia de las directivas de configuración comunes del módulo fcgid_module en el archivo 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>

Estos tres puntos 1, 2 y 3 se realizan automáticamente con la actualización de Wampserver 3.2.8.

- Creando un servidor virtual FCGI

- Después de la actualización de Wampserver 3.2.8, la página 'http://localhost/add_vhost.php' permite agregar un servidor virtual FCGI con toda sencillez.
La elección de la versión de PHP a utilizar está limitada a las versiones de los complementos de PHP instalados en su Wampserver, lo que evita un error de versión de PHP.
En efecto, declarar, en un servidor virtual, una versión de PHP inexistente en Wampserver generará un error de Apache y el "cuelgue" del mismo.

- Si desea modificar un servidor virtual existente para agregar el modo FCGI con una versión de PHP existente que ya está en los complementos PHP de Wampserver, solo tiene que ir a la página http://localhost/add_vhost.php y ejecutar el formulario de modificación de servidor virtual para ser capaz, en tres clics, de agregar el modo FCGI al servidor virtual, cambiar la versión de PHP o eliminar el modo FCGI.
Será necesario actualizar Wampserver para que eso tenga efecto.
Esta misma página http://localhost/add_vhost.php también le permite, a través del formulario de modificación de Alias, agregar el modo FCGI a un Alias, cambiar la versión de PHP o eliminar el modo FCGI, siempre en tres clics.

- Algunos detalles

Para agregar el modo FCGI a un servidor virtual existente, simplemente agregue las siguientes directivas antes del final </VirtualHost> de ese servidor virtual:

  <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 versión de PHP debe existir como un complemento de PHP en su Wampserver y podrá ser modificada.
Por el contrario, eliminando estas líneas hace que el servidor virtual vuelva a la versión de PHP utilizada como módulo de Apache.

Para los Alias, es un poco menos simple, debe agregar las líneas anteriores en dos partes, la primera parte:

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

antes de la directiva <Directory...
La segunda parte:

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

dentro del contexto <Directory...></Directory> para obtener, por ejemplo para cualquier Alias, la siguiente estructura:

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>