Hitta dokumentroten med denna PHP-guide

PHP-dokumentroten är mappen där ett PHP-skript körs. När du installerar ett skript behöver webbutvecklare ofta känna till dokumentroten. Även om många sidor har skript med PHP körs på en Apache-server, vissa körs under Microsoft IIS på Windows. Apache innehåller en miljövariabel som heter DOCUMENT_ROOT, men IIS gör det inte. Som ett resultat finns det två metoder för att lokalisera PHP-dokumentroten.

Hitta PHP-dokumentroten under Apache

Istället för att e-posta teknisk support för dokumentroten och vänta på att någon ska svara, kan du använda ett enkelt PHP-skript med getenv , som ger en genväg på Apache-servrar till dokumentroten.

Dessa få rader kod returnerar dokumentroten

Hitta PHP Dokumentrot under IIS

Microsofts Internet Information Services introducerades med Windows NT 3.5.1 och har inkluderats i de flesta Windows-versioner sedan dess – inklusive Windows Server 2016 och Windows 10. Den tillhandahåller ingen genväg till dokumentroten.

För att hitta namnet på det skript som körs för närvarande i IIS, börja med denna kod:

 
print getenv ("SCRIPT_NAME ");

som returnerar ett resultat som liknar:

 
/product/description/index.php
 som är skriptets fullständiga sökväg.  Du vill inte ha den fullständiga sökvägen, bara namnet på filen för SCRIPT_NAME.  För att få det, använd: 

 
print realpath(basename(getenv("SCRIPT_NAME")));

som returnerar ett resultat i detta format:

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

För att ta bort koden som hänvisar till den platsrelaterade filen och komma fram till dokumentroten, använd följande kod i början av alla skript som behöver känna till dokumentroten.

$localpath=getenv("SCRIPT_NAME");
$absolutepath=realpath($localPath);

// fixa Windows snedstreck
$absolutepath=str_replace("\","/",$absolutepath);


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



$localpath));


// ett exempel på användning

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

Denna metod, även om den är mer komplex, körs på både IIS- och Apache-servrar.

Lämna ett svar

Relaterade Inlägg