Encontrar la raíz del documento PHP

La raíz del documento PHP es la carpeta donde se ejecuta un script PHP. Al instalar un script, los desarrolladores web a menudo necesitan conocer la raíz del documento. Aunque muchas páginas escritas con PHP se ejecutan en un servidor Apache, algunas se ejecutan bajo Microsoft IIS en Windows. Apache incluye una variable de entorno llamada DOCUMENT_ROOT, pero IIS no. Como resultado, hay dos métodos para localizar la raíz del documento PHP.

Encontrar la raíz del documento PHP en Apache

En lugar de enviar por correo electrónico soporte técnico para la raíz del documento y esperar que alguien responda, puede usar un script PHP simple con getenv (), que proporciona un acceso directo en los servidores Apache a la raíz del documento.

Estas pocas líneas de código devuelven la raíz del documento.

Encontrar la raíz del documento PHP bajo IIS

Internet Information Services de Microsoft se introdujo con Windows NT 3.5.1 y se ha incluido en la mayoría de las versiones de Windows desde entonces, incluidos Windows Server 2016 y Windows 10. No proporciona un acceso directo a la raíz del documento.

Para encontrar el nombre del script que se está ejecutando actualmente en IIS, comience con este código:

print getenv ("SCRIPT_NAME");

que devuelve un resultado similar a:

/product/description/index.php

cuál es el camino completo del guión. No desea la ruta completa, solo el nombre del archivo para SCRIPT_NAME. Para obtenerlo, use:

print realpath (nombre base (getenv ("SCRIPT_NAME")));

que devuelve un resultado en este formato:

/usr/local/apache/share/htdocs/product/description/index.php

Para eliminar el código que hace referencia al archivo relativo al sitio y llegar a la raíz del documento, use el siguiente código al comienzo de cualquier script que necesite conocer la raíz del documento.

$ localpath = getenv ("SCRIPT_NAME");

$ absolutepath = realpath ($ localPath);

// arregla las barras inclinadas de Windows

$ absolutepath = str_replace ("\\", "/", $ absolutepath);

$ docroot = substr ($ absolutepath, 0, strpos ($ absolutepath,

$ localpath));

// un ejemplo de uso

include ($ docroot. "/ incluye / config.php");

Este método, aunque más complejo, se ejecuta en servidores IIS y Apache.