Pergunta

É possível configurar xampp para servir-se de um arquivo fora do htdocs diretório?

Por exemplo, digamos que eu tenho um arquivo que se encontra da seguinte forma:

C:\projects\transitCalculator\trunk\TransitCalculator.php

e o meu xampp os arquivos são normalmente servido a partir de:

C:\xampp\htdocs\

(porque essa é a configuração padrão) existe alguma maneira de fazer o Apache reconhecer e servir-se de meu TransitCalculator.php arquivo sem movê-lo sob htdocs?De preferência, eu gostaria de Apache para servir e ter acesso a todo o conteúdo do diretório de projetos, e eu não querer mover o diretório de projetos em htdocs.

editar:editado para adicionar o Apache para a pergunta título para fazer P/A mais "pesquisável"

Foi útil?

Solução

Ok, por pix0r's, Faíscas'e Dave's respostas parece que há três maneiras de o fazer:


Virtual Hosts

  1. Aberto C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Onu-comentário ~linha 19 (NameVirtualHost *:80).
  3. Adicione o seu virtual host (~linha 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Abra o seu arquivo hosts (C:\Windows\System32\drivers\etc\hosts).

  5. Adicionar

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    para o final do arquivo (antes de o Spybot - Search & Destroy coisas se você tiver instalado).

  6. Salvar (Você pode ter que guardá-lo para o ambiente de trabalho, altere as permissões do antigo arquivo de hosts (botão direito do mouse > propriedades), e copie o novo para o diretório sobre o antigo (ou mudar o nome de um antigo) se você estiver usando o Vista e de ter problemas).
  7. Reinicie O Apache.

Agora você pode acessar o diretório de navegação para http://transitcalculator.localhost/.


Criar um Alias

  1. Começando ~linha de 200 de seus http.conf arquivo, copiar tudo, entre <Directory "C:/xampp/htdocs"> e </Directory> (~linha 232) e cole-a imediatamente abaixo, com C:/xampp/htdocs substituído com o diretório desejado (neste caso C:/Projects) para dar seu servidor as permissões corretas para o novo diretório.

  2. Encontrar o <IfModule alias_module></IfModule> seção (~linha 300) e adicionar

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (ou o que quer que seja relevante para a sua desejos) abaixo do Alias comentário de bloco, dentro do módulo tags.


Alterar a sua raiz do documento

  1. Editar o ~na linha 176 C:\xampp\apache\conf\httpd.conf;mudança DocumentRoot "C:/xampp/htdocs" para #DocumentRoot "C:/Projects" (ou o que você quiser).

  2. Edit ~linha 203 para combinar com seu novo local de trabalho (neste caso C:/Projects).


Notas:

  • Você tem que usar barras "/" em vez de voltar barras "\".
  • Não incluir o sinal "/" no final.
  • reinicie seu servidor.

Outras dicas

Você pode colocá-la editando a DocumentRoot definição no XAMPP\apache\conf\httpd.conf.

Ele deve ser, actualmente:

C:/xampp/htdocs

Altere-a para:

C:/projects/transitCalculator/trunk

Um VirtualHost também trabalhar para isso e pode funcionar melhor para você como você pode hospedar vários projetos, sem a necessidade de subdiretórios.Aqui está como fazer isso:

o httpd.conf (ou extra\httpd-vhosts.conf relativo para o httpd.conf.À direita barras "\" pode fazer com que ele não funcionar):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

Arquivo de HOSTS (c:\windows\system32\drivers\etc\hosts normalmente):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Agora reinicie o XAMPP e você deve ser capaz de acessar http://transitcalculator.localhost/ e ele será mapeado diretamente para esse diretório.

Isto pode ser útil se você estiver tentando replicar um ambiente de produção onde você está desenvolvendo um site que irá sentar-se na raiz de um nome de domínio.Você pode, por exemplo, aponte para arquivos com caminhos absolutos, que poderão ser transportadas para o servidor:

<img src="/images/logo.png" alt="My Logo" />

considerando que, em um ambiente usando aliases ou subdiretórios, você precisa controlar exatamente onde a "imagens" do diretório relativo para o arquivo atual.

Você pode configurar o Apache para servir páginas a partir de qualquer lugar com qualquer tipo de restrições, mas normalmente é distribuído em uma forma mais segura.

A edição de seus arquivos apache (http.conf é um dos nomes mais comuns) irá permitir que você defina qualquer pasta para que apareça no seu webroot.

EDITAR:

alias myapp c:\myapp\

Que eu tenha editado a minha resposta para incluir o formato para criar um alias no http.conf arquivo que é como uma espécie de atalho no windows ou um link simbólico em un*x, onde Apache 'finge' uma pasta webroot.Este é, provavelmente, vai ser mais útil para você no longo prazo.

Se você está tentando obter o XAMPP para usar uma unidade de rede como a sua raiz do documento que você tem que usar caminhos UNC no httpd.conf.XAMPP não irá reconhecer o seu unidades de rede mapeadas.

Por exemplo, o seguinte não funcionará, DocumentRoot "X:/webroot"

Mas isso vai, DocumentRoot "//192.168.10.100/webroot" (observe as barras, não volta barras)

Solução para permitir que o Apache 2 para hospedar sites fora do htdocs:

Debaixo de "DocumentRoot" directiva httpd.conf, você deve ver um bloco de directório.Substituir este diretório bloco com:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

LEMBRE-SE DE NÃO USAR ESSA CONFIGURAÇÃO EM UM AMBIENTE REAL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top