Instalación en sistemas Windows
PHP Manual

Servidores Sun, iPlanet y Netscape en Microsoft Windows

Esta sección contiene anotaciones y consejos específicos de servidores Sun Java System Web Server, Sun ONE Web Server, iPlanet y Netscape en sistemas Windows.

Desde PHP 4.3.3 pueden usarse scripts PHP con el módulo NSAPI para generar listados de directorios y páginas de error personalizadas. También hay funciones adicionales para la compatibilidad con Apache. Para tener soporte con los servidores web actuales consulte las anotaciones sobre subpeticiones.

Instalación CGI en servidores Sun, iPlanet y Netscape

Para instalar PHP como un manejador CGI, haga lo siguiente:

Se pueden encontrar más detalles sobre cómo configurar PHP como ejecutable CGI en » http://benoit.noss.free.fr/php/install-php.html

Configuración de NSAPI en servidores Sun, iPlanet y Netscape

Para instalar PHP con NSAPI, haga lo siguiente:

Nota:

Puede consultar más detalles sobre cómo configurar PHP como filtro NSAPI aquí: » http://benoit.noss.free.fr/php/install-php4.html

Nota:

El tamaño de pila de PHP depende de la configuración del servidor web. Si la ejecución de scripts extensos de PHP se detiene, se recomienda que lo propague con Admin Server (en la sección "MAGNUS EDITOR").

entornos CGI y modificaciones recomendadas en php.ini

Al escribir scripts PHP es importante tener en cuenta que Sun JSWS/Sun ONE WS/iPlanet/Netscape es un servidor web multihebra, ya que todas las peticiones se ejecutan en el espacio del mismo proceso (el espacio del propio servidor web) y este espacio sólo contiene un entorno de ejecución. Si se desea conocer variables CGI como PATH_INFO, HTTP_HOST, etc. no se debe hacer de la forma convencional con getenv() o similares (register globals del entorno, $_ENV). Sólo se obtendrá el entorno del servidor web en ejecución sin ninguna variable CGI válida.

Nota:

¿Pero por qué hay variables CGI (inválidas) en el entorno?

Respuesta: Se debe a que se inició el proceso del servidor web desde el servidor de administración que lanza el script de inicio del servidor web como un script CGI (¡un script CGI dentro del servidor de administración!). Ésta es la razón por la que el entorno del servidor web contiene algunas variables de entorno CGI. Puede comprobarlo iniciando el servidor web de otra forma. Acceda al terminal como administrador y arránquelo a mano - verá que ya no hay variables de entorno CGI.

Deben actualizarse los scripts, para que consulten variables CGI de la forma correcta para PHP 4.X, usando la superglobal $_SERVER. Si se tuvieran scripts antiguos que usaran $HTTP_HOST, etc., debería habilitarse register_globals en php.ini, así como cambiar la variable de orden (importante: elimine la "E", ya que aquí no se necesitan variables de entorno):

variables_order = "GPCS"
register_globals = On

Uso especial de páginas de error y listados de directorios personalizados (PHP >= 4.3.3)

Se puede utilizar PHP para generar páginas de error para "404 Not Found" o similar. Debe añadirse la siguiente línea al objeto en obj.conf para cada página de error que se desee redefinir:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
donde XXX es el código de error HTTP. Debe eliminarse todas las directivas Error que puedan colisionar con las nuevas. Si se desea crear una página genérica para todos los errores, debe omitirse el parámetro code. El script podrá consultar el código de estado HTTP en $_SERVER['ERROR_TYPE'].

Otra posibilidad es generar listados de directorios personalizados. Debe crearse un script PHP que liste el contenido de un directorio y reemplace la línea del servicio correspondiente para type="magnus-internal/directory" en obj.conf por lo siguiente:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
Tanto para la página de error como de listado de directorios, la URI original y la traducida están disponibles en las variables $_SERVER['PATH_INFO'] y $_SERVER['PATH_TRANSLATED'].

Anotaciones sobre nsapi_virtual() y subpeticioness (PHP >= 4.3.3)

El módulo NSAPI ahora soporta la función nsapi_virtual() (alias: virtual()) para hacer subpeticiones al sevidor web e insertar el resultado en la página web. El problema es que esta función utiliza algunas funcionalidades no documentadas de la biblioteca NSAPI.

En Unix esto no es un problema, porque el módulo automáticamente busca las funciones necesarias y las usa si estuvieran disponibles. Si no, nsapi_virtual() queda deshabilitado.

En Windows, las limitaciones del manejo de DLL necesitan emplear detección automática del fichero ns-httpdXX.dll más reciente. Se ha probado hasta en servidores versión 6.1. Si se utiliza una versión más reciente del servidor Sun, la detección falla y nsapi_virtual() se deshabilita.

Si este fuera el caso, debe probarse lo siguiente: Añada el siguiente parámetro a php4_init en magnus.conf/obj.conf:

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
donde XX es el número de versión correcto de la DLL. Para conocerlo, busca en el raíz del servidor el nombre correcto de la DLL. La DLL de mayor tamaño es la adecuada.

Puede comprobar el estado usando la función phpinfo().

Nota:

Pero tenga en cuenta: El soporte para nsapi_virtual() es EXPERIMENTAL.


Instalación en sistemas Windows
PHP Manual