Pregunta

He buscado muchos hilos hasta ahora pero parece que no puedo encontrar una solución.Dentro de uno de mis scripts php, estoy intentando obtener la raíz del documento del servidor, pero el valor que obtengo no está completo, simplemente falta la carpeta del dominio.Creo que se debe a compartir hosting o algo más.

Esta es la forma actual que estoy usando:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

y el camino que obtengo es como:

/home/content/01/0151247/html

aunque sé que debería ser como:

/home/content/01/0151247/html/mydomain

Lo sé porque lo comparé con SCRIPT_NAME y veo mi dominio allí en la ruta.

Espero que alguien pueda orientarme.

Gracias y perdón por probablemente hacer mil veces la misma pregunta en la comunidad. Realmente intenté cosas desde aquí, nada me ayuda hasta ahora.

ACTUALIZAR

desafortunadamente no puedo simplemente usar mi archivo de índice con dirección ya que es una configuración de WordPress y estoy trabajando en una carpeta separada donde incluyo algunas funciones de WordPress, pero para eso necesito un document_root.Si eso ayudara.

ACTUALIZAR

aparentemente la siguiente manera resolvió mi caso, tal vez ayude a alguien algún día:

realpath($_SERVER["SUBDOMAIN_DOCUMENT_ROOT"]);

Básicamente por la configuración del servidor y el dominio configurado como subdominio.

Gracias a todos los que participaron.

¿Fue útil?

Solución

Antes de PHP 5.3, puedes colocar un archivo en el directorio cuya ruta desees y definir una constante:

define('ROOT_DIR', dirname( __FILE__ ));

Después de 5.3 puedes hacer:

define('ROOT_DIR', __DIR__);

La idea es que esto sería en config.php de algún tipo que se incluye cada vez que se ejecuta la aplicación.

Documentos de constantes mágicas

Otros consejos

<×UPDATE

En el archivo de configuración, puede agregar la variable DOCUMENT_ROOT:

$_SERVER['DOCUMENT_ROOT'] = $_SERVER['DOCUMENT_ROOT'] . '/mydomain';

Y eso debería solucionarlo por ti.

Solución anterior

El DOCUMENT_ROOT es una variable de entorno establecida por el servidor.Entonces, si se trata de un alojamiento compartido, no puede cambiarlo.Una alternativa es establecer su propia constante, por lo que en un archivo de tipo config que se incluye en sus páginas puede hacer algo como:

define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/mydomain');

Y luego use esa constante en lugar de $_SERVER['DOCUMENT_ROOT'].La otra opción es contactar a tu anfitrión y preguntar al respecto, tal vez fue un descuido de su parte y ellos lo arreglarán.

<×EDIT

Probablemente usar el __DIR__ como otros han publicado es la mejor manera, ya que DOCUMENT_ROOT puede configurarse para diferentes elementos y al menos con __DIR__ debería obtener un directorio preciso cada vez.

Personalmente, para obtener la raíz de una carpeta en PHP, uso esto en mi archivo de índice:

define('ROOT', dirname(__FILE__));     // __DIR__ will work under PHP 5.3
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top