É possível configurar o xampp para servir um arquivo fora do htdocs
diretório?
Por exemplo, digamos que eu tenha um arquivo localizado da seguinte maneira:
C:\projects\transitCalculator\trunk\TransitCalculator.php
e meus arquivos xampp são normalmente exibidos em:
C:\xampp\htdocs\
(porque essa é a configuração padrão) Existe alguma maneira de fazer o Apache reconhecer e exibir meu TransitCalculator.php
arquivo sem movê-lo para baixo htdocs
? De preferência, eu gostaria que o Apache servisse / tivesse acesso a todo o conteúdo do diretório de projetos e não quero mover o diretório de projetos para baixo htdocs
.
edit: editado para adicionar o Apache ao título da pergunta para tornar o Q / A mais "pesquisável"
php
apache
xampp
server-configuration
cmcculloh
fonte
fonte
php -S <host>:<port>
. Por exemplophp -S localhost:80
.Respostas:
Ok, de acordo com as respostas de pix0r , Sparks e Dave , parece que existem três maneiras de fazer isso:
Hosts virtuais
NameVirtualHost *:80
).Adicione seu host virtual (~ linha 36):
Abra o arquivo hosts (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Adicionar
até o final do arquivo (antes do material Spybot - Search & Destroy, se você tiver o instalado).
Agora você pode acessar esse diretório navegando para http: //transitcalculator.localhost/ .
Faça um Alias
Iniciando a ~ linha 200 do seu
http.conf
arquivo, copie tudo entre<Directory "C:/xampp/htdocs">
e</Directory>
(~ linha 232) e cole-o imediatamente abaixo comC:/xampp/htdocs
o diretório desejado (nesse casoC:/Projects
) para dar ao servidor as permissões corretas para o novo diretório.Encontre a
<IfModule alias_module></IfModule>
seção (~ linha 300) e adicione(ou o que for relevante para seus desejos) abaixo do
Alias
bloco de comentários, dentro das tags do módulo.Mude a raiz do seu documento
Edite ~ linha 176 em C: \ xampp \ apache \ conf \ httpd.conf; mude
DocumentRoot "C:/xampp/htdocs"
para#DocumentRoot "C:/Projects"
(ou o que você quiser).Edite ~ linha 203 para corresponder à sua nova localização (neste caso
C:/Projects
).Notas:
fonte
Order allow,deny Allow from all
não funcionou para mim, masRequire all granted
funcionou.Você pode realocá-lo editando a configuração DocumentRoot em XAMPP \ apache \ conf \ httpd.conf.
Atualmente, deve ser:
Altere para:
fonte
Um VirtualHost também funcionaria para isso e pode funcionar melhor para você, pois você pode hospedar vários projetos sem a necessidade de subdiretórios. Aqui está como você faz isso:
httpd.conf (ou extra \ httpd-vhosts.conf em relação ao httpd.conf. Barras à direita "\" podem fazer com que não funcione):
Arquivo HOSTS (geralmente c: \ windows \ system32 \ drivers \ etc \ hosts):
Agora reinicie o XAMPP e você poderá acessar http: //transitcalculator.localhost/ e ele será mapeado diretamente para esse diretório.
Isso pode ser útil se você estiver tentando replicar um ambiente de produção no qual está desenvolvendo um site que ficará na raiz de um nome de domínio. Você pode, por exemplo, apontar para arquivos com caminhos absolutos que serão transferidos para o servidor:
enquanto em um ambiente que usa aliases ou subdiretórios, você precisa acompanhar exatamente onde o diretório "images" é relativo ao arquivo atual.
fonte
X:\myfolder
). Quando uso esse método, recebo um aviso "Proibido acesso". Isso significa que o usuário do Apache não tem acesso de leitura à unidade?Directory
substituirOrder allow,deny
eAllow from all
comRequire all granted
. Veja stackoverflow.com/questions/9110179/…Você pode configurar o Apache para servir páginas de qualquer lugar com restrições, mas ele normalmente é distribuído de forma mais segura.
A edição dos arquivos apache (http.conf é um dos nomes mais comuns) permitirá que você defina qualquer pasta para que ela apareça na raiz da web.
EDITAR:
alias myapp c: \ myapp \
Editei minha resposta para incluir o formato para criar um alias no arquivo http.conf, que é como um atalho no Windows ou um link simbólico em un * x, onde o Apache 'finge' que uma pasta está no webroot. Isso provavelmente será mais útil para você a longo prazo.
fonte
Se você está tentando fazer com que o XAMPP use uma unidade de rede como raiz do documento, use os caminhos UNC no httpd.conf. O XAMPP não reconhecerá suas unidades de rede mapeadas.
Por exemplo, o seguinte não funcionará, DocumentRoot "X: / webroot"
Mas isso acontecerá, DocumentRoot "//192.168.10.100/webroot" (observe as barras, não as barras)
fonte
Solução para permitir que o Apache 2 hospede sites fora dos htdocs:
Sob a diretiva "DocumentRoot" no httpd.conf, você deve ver um bloco de diretório. Substitua este bloco de diretório por:
LEMBRE-SE DE NÃO USAR ESTA CONFIGURAÇÃO EM UM AMBIENTE REAL
fonte