Aktiven Inhalt, wie beispielsweise Skripts und ausführbare Dateien, in den Dokumentverzeichnissen des Webservers abzulegen, wird manchmal als unsichere Methode angesehen. Wenn, beispielsweise aufgrund von Konfigurationsfehlern, die Skripte nicht ausgeführt, sondern als reguläre HTML-Dokumente angezeigt werden, kann dies ein Durchsickern von geistigem Eigentum und sicherheitsrelevanter Informationen wie Passwörtern zur Folge haben. Deshalb ziehen es viele Systemadministratoren vor, eine zweite Verzeichnisstruktur für Skripte einzurichten, auf die nur durch das PHP-CGI zugegriffen werden kann. Diese werden dann stets interpretiert und nicht angezeigt.
Auch wenn die Methode zum sichergestellten Verhindern einer Umleitung von Anfragen (wie im vorangegangenen Abschnitt beschrieben) nicht verfügbar ist, ist es notwendig, ein doc_root für Skripte zusätzlich zum Web-Dokumentenverzeichnis einzurichten.
     Sie können das PHP-Skriptverzeichnis durch die Direktive
     doc_root in der
     Konfigurationsdatei
     festlegen, oder Sie setzen die Umgebungsvariable
     PHP_DOCUMENT_ROOT. Wenn sie gesetzt ist, wird die
     CGI-Version von PHP den Namen der zu öffnenden Datei
     stets aus doc_root und der Pfadinformation der
     Anfrage zusammensetzen, sodass man sicher sein kann, dass außerhalb
     dieses Verzeichnisses keine Skripte ausgeführt werden (außer
     user_dir, siehe unten).
    
     Eine weitere hier nützliche Option ist user_dir. Wenn
     user_dir nicht gesetzt ist, hat nur
     doc_root Einfluss auf die zu öffnende Datei.
     Der Aufruf einer URL wie http://my.host/~user/doc.php hat nicht zum
     Ergebnis, dass eine Datei im Heimatverzeichnis des Benutzers geöffnet
     wird, sondern eine Datei namens
     ~user/doc.php unterhalb von
     doc_root. (Ja, ein Verzeichnisname, der mit einer
     Tilde anfängt [~].)
    
     Ist user_dir beispielsweise auf
     public_php gesetzt, wird eine Anfrage wie
     http://my.host/~user/doc.php eine Datei
     namens doc.php im Verzeichnis
     public_php im Heimatverzeichnis des
     Benutzers öffnen. Wenn das Heimatverzeichnis des Benutzers
     /home/user ist, so ist die ausgeführte
     Datei /home/user/public_php/doc.php.
    
     Die user_dir-Expansion erfolgt ohne Berücksichtigung
     der doc_root-Einstellung. So können Zugriffe
     auf die Dokumenten- und Benutzerverzeichnisse separat gesteuert werden.
    
