Размещение динамического контента, такого как скрипты или любых других исполняемых файлов, в директории веб-сервера делает его потенциально опасным. В случае, если в конфигурации сервера допущена ошибка, возможна ситуация, когда скрипты не выполняются, а отображаются в браузере, как обычные HTML-документы, что может привести к утечке конфиденциальной информации (например, паролей), либо информации, являющейся интеллектуальной собственностью. Исходя из таких соображений, многие системные администраторы предпочитают использовать для хранения скриптов отдельную директорию, работая со всеми размещенными в ней файлами по CGI-интерфейсу.
В случае, если невозможно гарантировать, что запросы не перенаправляются, как было показано в предыдущем разделе, необходимо указывать переменную doc_root, которая отличается от корневой директории веб-документов.
     Вы можете установить корневую директорию для PHP-скриптов, настроив
     параметр doc_root в
     конфигурационном файле,
     либо установив переменную окружения PHP_DOCUMENT_ROOT.  
     В случае, если PHP используется посредством CGI,
     полный путь к открываемому файлу будет построен на основании
     значения переменной doc_root и указанного
     в запросе пути. Таким образом, вы можете быть уверены,
     что скрипты будут выполняться только внутри указанной вами директории
     (кроме директории user_dir, которая описана ниже).
    
     Еще одна используемая при настройке безопасности опция - 
     user_dir. В случае, если
     переменная user_dir не установлена, путь к открываемому файлу
     строится относительно doc_root. Запрос 
     вида http://my.host/~user/doc.php
     приводит к выполнению скрипта, находящегося не в домашнем каталоге 
     соответствующего пользователя, а находящегося в подкаталоге doc_root
     скрипта ~user/doc.php (да, имя 
     директории начинается с символа ~).
    
Но если user_dir установлена, например, в значение public_php, то запрос вида http://my.host/~user/doc.php откроет файл doc.php, находящийся в домашнем каталоге пользователя, в директории public_php. Например, если домашний каталог пользователя /home/user, будет выполнен файл /home/user/public_php/doc.php.
     Установка опции user_dir происходит
     независимо от установки doc_root,
     таким образом вы можете контролировать корневую директорию веб-сервера
     и пользовательские директории независимо друг от друга.