Fazer XAMPP/Apache servir de arquivo fora do htdocs [fechado]
-
08-06-2019 - |
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"
Solução
Ok, por pix0r's, Faíscas'e Dave's respostas parece que há três maneiras de o fazer:
Virtual Hosts
- Aberto C:\xampp\apache\conf\extra\httpd-vhosts.conf.
- Onu-comentário ~linha 19 (
NameVirtualHost *:80
). 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>
Abra o seu arquivo hosts (C:\Windows\System32\drivers\etc\hosts).
Adicionar
127.0.0.1 transitcalculator.localhost #transitCalculator
para o final do arquivo (antes de o Spybot - Search & Destroy coisas se você tiver instalado).
- 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).
- Reinicie O Apache.
Agora você pode acessar o diretório de navegação para http://transitcalculator.localhost/.
Criar um Alias
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, comC:/xampp/htdocs
substituído com o diretório desejado (neste casoC:/Projects
) para dar seu servidor as permissões corretas para o novo diretório.Encontrar o
<IfModule alias_module></IfModule>
seção (~linha 300) e adicionarAlias /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
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).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