diretório raiz - www ou public_html

1

É o diretório raiz onde todos os arquivos são mantidos (diretamente do acesso do FTP) sempre "www" ou "public_html" dependendo de qual sistema operacional? Ou é possível renomear esta pasta? E, em caso afirmativo, o que seria exclusivo dessa pasta para poder identificá-la? ou seja, atualmente eu acabei de escrever isso;

my $root;
my $ftp = Net::FTP->new($DB_ftpserver, Debug => 0) 
                              or die "Cannot connect to some.host.name: $@";
$ftp->login($DB_ftpuser, $DB_ftppass) or die "Cannot login ", $ftp->message;
my @list = $ftp->dir;

if( scalar @list != 0 ) {
  foreach( @list ){
     if( $_ =~ m/www$/g ){
       $root = "www";
       last;
     }elsif( $_ =~ m/public_html$/g ){
       $root = "public_html";
       last;
     }
   }
 }

mas não funcionaria se tivesse um nome diferente.

Qualquer ajuda muito apreciada.

    
por Robotnik 06.02.2010 / 08:41

3 respostas

2

Eu falarei em termos de Apache httpd, já que é um servidor web muito popular.

O diretório raiz onde todos os arquivos são mantidos é genericamente denominado DocumentRoot . Lembre-se de que os arquivos são mantidos no DocumentRoot para que seja exibido pelo servidor da Web, não para serem mostrados quando você faz login via FTP. O FTP é um protocolo totalmente diferente que não está relacionado a sites da Web e, nesse contexto, é apenas uma maneira de permitir que você, usuário, modifique / atualize arquivos em um servidor remoto.

O diretório www / public_html sobre o qual você fala em sua pergunta provavelmente não é DocumentRoot . Esta é uma funcionalidade adicional do Apache, o módulo mod_userdir . Por favor, consulte sua documentação .

Como dito nos documentos, há uma configuração UserDir no arquivo de configuração do Apache que permite personalizar o nome desses diretórios de usuários, de onde o servidor web servirá os sites que pertencem a diferentes usuários.

Como não há restrições para UserDir , você pode ter qualquer coisa lá, mesmo foobar . Você pode julgar pelo conteúdo desse diretório (arquivos HTML, imagens) que esse pode ser um diretório de usuários que contém um site que está sendo exposto pelo Apache. Mas eu diria que fazer isso automaticamente com um script parece pouco confiável para mim. Sem mencionar que, por exemplo, você pode ter um diretório public_html que não seja um diretório do usuário, seu nome correspondendo ao valor padrão da configuração do Apache UserDir sendo apenas uma simples coincidência. Idealmente, para julgar um diretório se for um UserDir , você precisará acessar o arquivo de configuração do servidor web. E normalmente você não tem isso. Os provedores de hospedagem na Web podem colocar, no máximo, logs específicos do usuário em seu diretório pessoal.

Para resumir: se você precisar executar alguma ação com o diretório do usuário, ele deverá vir ao seu script como dados de entrada: argumento da linha de comando, configuração de um arquivo de configuração, etc., mas não tente adivinhá-lo.

    
por 07.02.2010 / 07:36
0

Tudo depende da configuração padrão do servidor. Você pode configurar para outro local também.

No Windows, pode ser:

C:\xampp\htdocs\

ou

C:\vhost\public\www\

ou em algum lugar diferente.

Pertence ao superusuário, não é?

    
por 06.02.2010 / 08:42
0

O nome é configurável no Apache ( DocumentRoot - padrão, de acordo com o 2.2 .x documentação, é / usr / local / apache / htdocs). Minha máquina no escritório não usa nenhuma das opções que você menciona (de improviso, eu acho que usa o htdocs, mas já faz um tempo desde a última vez que lidei com ele).

OTOH, já que você mencionou o FTP, talvez esteja pensando em outra coisa; o diretório base ainda é configurável.

    
por 06.02.2010 / 08:43