Manual do PHP
Anterior | Capítulo 24. Instalando como binário CGI | Próxima

# Caso 3: configurando doc_root ou user_dir

Para incluir conteúdo ativo, como script e executáveis, nos diretórios de documentos do servidor é algumas vezes consideread uma prática insegura. Se, por conta de um erro de configuração, os scripts não são executados mas mostrados como documentos HTML normais, isso pode resultar em vazamento de propriedade intelectual ou informação de segurança, como senhas. Portanto, muitos administradores preferirão configura outra estrutura de diretório para scripts que são acessíveis apenas pelo CGI do PHP, e, portanto, sempre interpretados e não enviado ao navegador.

Além disso, se o método para assegura que as requisições não são redirecionadas, como descrito na seção anterior, não estiver disponível, é necessário configura um doc_root para os script que é diferente do doc_root do servidor web.

Você pode configura a raiz de documentos dos scripts PHP pela diretiva de configuração doc_root no arquivo de configuração, ou você pode criar a variável de ambiente `PHP_DOCUMENT_ROOT`. Se ela existir, a versão CGI do PHP sempre construirá o nome de arquivo para ser aberto com esse `doc_root` e a informação de caminho na requisição, para assegurar que nenhum script é executado fora desse diretório (exceto por `user_dir` abaixo).

Outra opção utilizável é user_dir. Quando user_dir não existir, a única coisa controlando o nome do arquivo aberto é `doc_root`. Abrir uma URL como `http://my.host/~user/doc.php` não resulta em abrir um arquivo no diretório home de users, mas um arquivo chamado `~user/doc.php` dentro de doc_root (sim, um nome de diretório começando com til [`~`]).

Se user_dir existir e tiver valor de, por exemplo, `public_php`, uma requisição como `http://my.host/~user/doc.php` abrirá o arquivo chamado `doc.php` no diretório chamado `public_php` dentro do diretório home do usuário. Se o home do usuário é `/home/user`, o arquivo executado é `/home/user/public_php/doc.php`.

A expansão de `user_dir` acontece independente da configuração de `doc_root`, para que você possa controlar a raiz de documentos e de acesso de diretório do usuário separadamente.

Anterior | Principal | Próxima
Caso 2: usando --enable-force-cgi-redirect | Acima | Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web