Por defecto, PHP se construye como un programa CLI y CGI, que puede ser utilizado para el procesamiento de CGI. Si se ejecuta un servidor web para el que PHP ofrece soporte de módulo, por lo general debe optarse por esta solución por razones de rendimiento. Sin embargo, la versión CGI permite a los usuarios ejecutar diferentes páginas con PHP bajo diferentes ID de usuario.
Un servidor desplegado en modo CGI se expone a varias vulnerabilidades posibles. Por favor, lea nuestra sección sobre la seguridad en modo CGI para aprender cómo protegerse contra estos ataques.
Si ha construido PHP como un programa CGI, puede probar su construcción escribiendo make test. Siempre es una buena idea probar su construcción. De esta manera puede detectar pronto un problema con PHP en su plataforma, en lugar de tener que luchar con él más adelante.
Algunas variables de entorno suministradas por el servidor no están definidas en la » especificación CGI/1.1 actual. Solo las siguientes variables están definidas en ella: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL y SERVER_SOFTWARE. Todo lo demás debe ser tratado como "extensiones de proveedor".