Estou instalando o servidor Wamp em outro computador para executar um banco de dados e interface de usuário de médio porte. Obtive êxito no bloqueio do IIS e no roteamento do servidor para Localhost: 8080. Mas sempre que tento acessar um dos meus projetos da homepage do localhost, no arquivo www; Sou redirecionado para um erro de página não encontrada.
Quando passo o mouse sobre os links, o diretório sempre aparece "http: // ProjectFolderNameHere /". quando deveria ser "http: // LocalHost: 8080 / ProjectFolderNameHere /". O que posso fazer para que os links funcionem corretamente?
Minha máquina funciona no Windows 7 Home Edition de 64 bits e eu já desabilitei o IIS da Microsoft.
Respostas:
Como criar um Host Virtual no WampServer
O WAMPServer 3 tornou esse processo muito mais fácil!
Você pode fazer quase tudo em um utilitário fornecido como parte do WAMPServer.
Crie uma pasta dentro para conter seu project.site. Isso pode estar no
C:\wamp\www\
diretório ou em uma pasta completamente separada comoC:\websites
.Crie uma pasta dentro do local que você escolheu EG
C:\websites\project1\www
ou sob oc:\wamp\www\project1\www
Agora abra o localhost
wampmanager->localhost
e clique no linkAdd a Virtual Host
na seção FERRAMENTAS na página inicial.Você verá uma página como esta:
Preencha os campos conforme especificado nas instruções acima de cada campo
A configuração do Host Virtual terá sido criada para você.
Agora você deve reiniciar o Cache DNS. Você pode fazer isso nos menus do gerenciador de wamp como este
right click wampmanager->Tools->Restart DNS
. O Cache DNS será reiniciado e o Apache também será interrompido e reiniciado. Quando o ícone do gerenciador de wamp ficar verde novamente, tudo estará concluído.Agora você deve criar um
index.php
arquivo simples ou instalar seu site na pasta que você criou acima.Supondo que seu VH foi chamado,
project.dev
você deve ver esse nome na seção Seus hosts virtuais da página inicial do WAMPServer.Você pode iniciar o site a partir deste menu, ou apenas usar o novo Nome de Domínio na barra de endereço EG
project1.dev
e o site deve ser iniciado.Mecanismo WAMPServer 2.5 antigo, ou se você quiser fazer tudo manualmente
Houve uma mudança de conceito no WampServer 2.5 e superior e há um bom motivo para essa mudança!
No WampServer, agora é fortemente encorajado a criar um Host Virtual para cada um de seus projetos, mesmo que você os mantenha em uma
\wamp\www\subfolder
estrutura.Documentação de hosts virtuais
Exemplos de host virtual
A página inicial do WampServer (
\wamp\www\index.php
) agora espera que você tenha criado um Host Virtual para todos os seus projetos e, portanto, funcionará corretamente somente se você fizer isso.História
A fim de tornar a vida mais fácil para iniciantes que usam WampServer para aprender PHP Apache e MySQL, foi sugerido que você crie subpastas sob a
\wamp\www\
pasta.wamp |-- www |-- Chapter1 |-- Chapter2 |-- etc
Essas subpastas seriam então mostradas como links na página inicial do WampServer em um menu chamado 'Seus projetos' e esses links conteriam um link para
localhost/subfoldername
.Aceitável apenas para tutoriais simples
Isso tornava a vida mais fácil para o iniciante e era perfeitamente aceitável, por exemplo, para os seguintes tutoriais aprenderem a codificação PHP. No entanto, ele nunca foi planejado para ser usado durante o desenvolvimento de um site real que mais tarde você desejaria copiar para seu servidor hospedado ao vivo. Na verdade, se você usasse esse mecanismo, muitas vezes causava problemas, pois a configuração dos sites ativos não combinaria com a configuração de desenvolvimento.
O problema para o desenvolvimento de um site real.
A razão para isso é claro que a configuração padrão do DocumentRoot para wamp é
DocumentRoot "c:/wamp/www/"
independentemente de como sua subpasta foi chamada. Esse ment, que costumava usar código PHP que consultava a estrutura ou seu site, recebeu informações diferentes ao executar em seu WampServer de desenvolvimento do que receberia ao executar em um servidor hospedado ao vivo, onde a configuração do DocumentRoot aponta para a pasta no topo do site hierarquia de arquivos. Este tipo de código existe em muitos frameworks e CMS's, por exemplo WordPress e Joomla etc.
Por exemplo
Vamos dizer que temos um projeto chamado project1 mantido
wamp\www\project1
e executado incorretamente comolocalhost/project1/index.php
Isso é o que seria relatado por alguns dos comandos PHP em questão:
$_SERVER['HTTP_HOST'] = localhost $_SERVER['SERVER_NAME'] = localhost $_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
Agora, se tivéssemos definido corretamente esse site usando uma definição de Host Virtual e
http://project1
o executássemos , os resultados no site de desenvolvimento WAMPServer corresponderão aos recebidos em um ambiente hospedado ao vivo.$_SERVER['HTTP_HOST'] = project1 $_SERVER['SERVER_NAME'] = project1 $_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
Agora, essa diferença pode parecer trivial no início, mas se você fosse usar um framework como o WordPress ou um dos CMSs como o Joomla, por exemplo, isso pode causar problemas quando você muda seu site para um servidor ativo.
Como criar um Host Virtual no WampServer
Na verdade, isso deve funcionar basicamente da mesma forma para qualquer servidor Apache do Windows, com diferenças apenas em onde você pode encontrar os arquivos de configuração do Apache.
Existem 3 etapas para criar seu primeiro Host Virtual no Apache, e apenas 2 se você já tiver um definido.
Etapa 1 , criar a (s) definição (ões) de host virtual
Edite o arquivo chamado
httpd-hosts.conf
que para WampServer vive em\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(Os números de versão do Apache podem ser diferentes, envolva o cérebro antes de continuar)
Se esta for a primeira vez que você edita este arquivo, remova o código de exemplo padrão, ele é inútil.
Estou assumindo que queremos criar uma definição para um site chamado project1 que vive em
Muito importante, primeiro devemos ter certeza de que o localhost ainda funciona, de modo que essa é a primeira definição VHOST que colocaremos neste arquivo.
<VirtualHost *:80> DocumentRoot "c:/wamp/www" ServerName localhost ServerAlias localhost <Directory "c:/wamp/www"> Options Indexes FollowSymLinks AllowOverride All Require local </Directory> </VirtualHost>
Agora definimos nosso projeto: e isso é claro você faz para cada um de seus projetos ao iniciar um novo.
<VirtualHost *:80> DocumentRoot "c:/wamp/www/project1" ServerName project1 <Directory "c:/wamp/www/project1"> Options Indexes FollowSymLinks AllowOverride All Require local </Directory> </VirtualHost>
NOTA: Que cada Host Virtual conforme seu próprio
DocumentRoot
definido. Existem também muitos outros parâmetros que você pode adicionar a uma definição de hosts virtuais, verifique a documentação do Apache.Pequeno aparte
A maneira como os hosts virtuais funcionam no Apache: A primeira definição neste arquivo também será o site padrão, portanto, se o nome de domínio usado no navegador não corresponder a nenhum domínio hospedado virtualmente definido, tornando localhost o primeiro domínio no arquivo, portanto, é o site que é carregado se uma tentativa de hack apenas usar seu endereço IP. Portanto, se garantirmos que a segurança do Apache para este domínio esteja SEMPRE DEFINIDA PARA
Require local
qualquer hack casual de um endereço externo receberá um erro e não entrará em seu PC, mas se você digitar um domínio incorretamente, será exibida a página inicial do WampServer, porque você está no mesmo PC que o WampServer e portanto
local
.Etapa 2 :
Adicione seu novo nome de domínio ao arquivo HOSTS. Agora precisamos adicionar o nome de domínio que usamos na definição do Host Virtual ao arquivo HOSTS para que o Windows saiba onde encontrá-lo. Isso é semelhante à criação de um registro DNS A, mas só é visível neste caso neste PC específico.
Editar
C:\windows\system32\drivers\etc\hosts
O arquivo não tem extensão e deve permanecer assim. Cuidado com o bloco de notas, pois ele pode tentar adicionar uma
.txt
extensão se você não tiver um editor melhor. Eu sugiro que você baixe o Notepad ++, é um editor gratuito e muito bom.Além disso, este é um arquivo protegido, portanto, você deve editá-lo com privilégios de administrador, portanto, inicie seu editor usando a opção de menu Executar como Administrador .
O arquivo de hosts deve ficar assim quando você tiver concluído essas edições
127.0.0.1 localhost 127.0.0.1 project1 ::1 localhost ::1 project1
Observe que você deve ter definições aqui para o endereço de loopback de IPV4
127.0.0.1
e também o endereço de loopback de IPV6,::1
já que o Apache agora reconhece IPV6 e o navegador usará IPV4 ou IPV6 ou ambos. Não tenho ideia de como ele decide qual usar, mas pode usar qualquer um dos dois se você tiver a pilha IPV6 ativada e a maioria dos sistemas operacionais de janela o fizer a partir do XP SP3.Agora devemos dizer ao Windows para atualizar seu cache de nome de domínio, então abra uma janela de comando novamente usando a opção de menu Executar como Administrador e faça o seguinte.
net stop dnscache net start dnscache
Isso força o Windows a limpar seu cache de nome de domínio e recarregá-lo; ao recarregá-lo, ele relerá o arquivo HOSTS, então agora ele saberá sobre o domínio
project1
.Etapa 3 : Remova o comentário da linha em httpd.conf que inclui o arquivo de definição de Hosts Virtuais.
Edite seu httpd.conf, use os menus wampmanager.exe para certificar-se de editar o arquivo correto.
Encontre esta linha em httpd.conf
# Virtual hosts #Include conf/extra/httpd-vhosts.conf
E apenas remova o
#
para descomentar essa linha.Para ativar essa mudança na execução do Apache, devemos agora parar e reiniciar o serviço Apache.
Agora, se o ícone WAMP na bandeja do sistema não ficar VERDE novamente, significa que provavelmente você fez algo errado no
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
arquivo.Nesse caso, aqui está um mecanismo útil para descobrir o que está errado. Ele usa um recurso do Apache exe (httpd.exe) para verificar seus arquivos de configuração e relatar erros por nome de arquivo e números de linha.
Abra uma janela de comando.
cd \wamp\bin\apache\apache2.4.9\bin httpd -t
Então, corrija os erros e teste novamente até obter o resultado
Agora, há mais uma coisa.
Na verdade, existem 2 novos itens de menu no sistema de menus do wampmanager. Um denominado 'Meus Projetos' que é ativado por padrão. E um segundo, chamado 'My Virtual Hosts' , que não é ativado por padrão.
'Meus projetos' listará qualquer subdiretório do diretório \ wamp \ www e fornecerá um link para lançar o site nesse subdiretório. Como eu disse antes, ele inicia 'project1` e não' localhost / project1 ', então para fazer o link funcionar, devemos criar uma definição de Host Virtual para fazer com que esse link realmente inicie aquele site em seu navegador, sem a definição de Host Virtual é provável Inicie uma pesquisa na web pelo nome do site como uma palavra-chave ou apenas retorne uma condição de site não encontrado.
O item de menu 'Meus hosts virtuais' é um pouco diferente. Ele pesquisa o arquivo que é usado para definir Hosts Virtuais (veremos isso em um minuto) e cria links de menu para cada parâmetro ServerName que encontra e cria um item de menu para cada um. Isso pode parecer um pouco confuso, pois depois de criarmos uma definição de Host Virtual para os subdiretórios da pasta \ wamp \ www, alguns itens aparecerão tanto no menu 'Meus Projetos' quanto no menu 'Meus Hosts Virtuais'.
Como faço para ativar esse outro menu 'Meus hosts virtuais'?
;WAMPPROJECTSUBMENU
na seção '[Menu.Left]'.;WAMPVHOSTSUBMENU
antes ou depois do;WAMPPROJECTSUBMENU
parâmetro.Nota importante O novo menu só aparecerá se você já tiver alguns hosts virtuais definidos! Caso contrário, você não verá nenhuma diferença até definir um VHOST.
Agora, se você levar isso à sua extensão lógica
Agora você pode mover o código do seu site completamente para fora da
\wamp\
estrutura de pastas, simplesmente alterando o parâmetro DocumentRoot na definição VHOST. Então, por exemplo, você pode fazer isso:Crie uma pasta no disco wamp ou em qualquer outro disco (cuidado com a unidade de rede, eles são um pouco mais complicados)
D: MD websites CD websites MD example.com CD example.com MD www
Agora você copia o código do seu site ou começa a criá-lo na
\websites\example.com\www
pasta e define o seu VHOST assim:<VirtualHost *:80> DocumentRoot "d:/websites/example.com/www" ServerName example.dev ServerAlias www.example.dev <Directory "d:/websites/example.com/www"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> php_flag display_errors Off php_flag log_errors On php_value max_upload_size 40M php_value max_execution_time 60 php_value error_log "d:/wamp/logs/example_com_phperror.log" </VirtualHost>
Em seguida, adicione este novo domínio de desenvolvimento ao arquivo HOSTS:
127.0.0.1 localhost ::1 localhost 127.0.0.1 project1 ::1 project1 127.0.0.1 example.dev ::1 example.dev
NOTA: Não é uma boa ideia usar um ServerName ou ServerAlias que seja igual ao seu nome de domínio ativo, pois se tivéssemos usado example.com como o ServerName, isso significaria que não poderíamos mais acessar o site real ao vivo a partir deste PC, pois direcionaria example.com para 127.0.0.1, ou seja, este PC e não para a Internet.
TAMBÉM: Veja que permiti que este site fosse acessado da internet a partir das definições do VHOST, esta mudança se aplicará apenas a este site e a nenhum outro. Muito útil para permitir que um cliente visualize suas alterações por uma hora ou mais sem ter que copiá-las para o servidor ativo. Isso significa que temos que editar esse arquivo manualmente para ativar e desativar esse acesso, em vez de usar o item de menu Colocar online / offline no wampmanager.
Além disso, adicionei algumas modificações à configuração do PHP, mais uma vez, que só se aplicam a este site. Muito útil ao manter um site com requisitos específicos, ao contrário de todos os outros sites que você mantém. Acho que podemos presumir a partir dos parâmetros usados que ele tem uma página de longa execução em algum lugar e está muito mal escrito e não será executado com erros sendo exibidos no navegador sem fazer uma bagunça horrível da página. Acredite em mim, sites como este existem e as pessoas ainda querem que eles sejam mantidos mal . Mas isso significa que só temos que alterar esses parâmetros para este site específico e não globalmente para todos os sites virtuais em execução no WampServer.
fonte
localhost/add_vhost.php
no WAMPServer 3, verifique esta postagem no WAMPServers Forumright click wampmanager -> Tools -> Restart DNS
que funcionou depois de adicionar um novo host virtual e não entender por que ele ainda não estava funcionando.Acredito que esta seja a melhor solução:
Abra index.php na pasta www e defina
mudar a linha 30:
$suppress_localhost = true;
para
$suppress_localhost = false;
Isso irá garantir que o projeto seja prefixado com o IP / nome do seu host local
fonte
right click wampmanager->Wamp Settings->Add localhost to url
A única coisa boa sobre isso é que você pode desligá-lo novamente facilmente quando perceber que foi uma péssima ideia, em primeiro lugar!Abra
index.php
nawww
pasta e defina$suppress_localhost = false;
Isso irá preceder os
http://localhost/
links do seu projetofonte
Para acessar o projeto a partir da página inicial, você precisa primeiro criar um Host Virtual .
Basta seguir estas etapas:
<?php echo "<h1>Hello World</h1>"; ?>
Agora você pode acessar os projetos na página inicial do localhost. Basta clicar no link do projeto e você verá 'Hello World' impresso na tela.
fonte
Como corrigir links de ícones quebrados (blank.gif, text.gif, etc.)
Infelizmente, como mencionado anteriormente, simplesmente adicionar um host virtual ao seu projeto não corrige os links de ícones corrompidos.
O problema:
O WAMP / Apache não altera a referência de diretório dos ícones para seu respectivo diretório de instalação. Está estaticamente definido como "c: / Apache24 / icons" e 99,9% dos usuários de instalação do Apache não residem aqui. Especialmente com WAMP.
O conserto:
Encontre seu diretório de ícones do Apache! Normalmente, ele estará localizado aqui: "c: /wamp/bin/apache/apache2.4.9/icons". No entanto, sua milhagem pode variar dependendo de sua instalação e se sua versão do Apache for diferente, seu caminho também será diferente. \
Abra httpd-autoindex.conf em seu editor favorito. Este arquivo geralmente pode ser encontrado aqui: "C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-autoindex.conf". Novamente, se sua versão do Apache for diferente, este caminho também será.
Encontre esta definição (geralmente localizada perto do topo do arquivo):
Alias /icons/ "c:/Apache24/icons/" <Directory "c:/Apache24/icons"> Options Indexes MultiViews AllowOverride None Require all granted </Directory>
Substitua os diretórios "c: / Apache24 / icons /" pelos seus. IMPORTANTE Você DEVE ter uma barra à direita na primeira referência de diretório. A segunda referência de diretório não deve ter nenhuma barra final. Seus resultados devem ser semelhantes a este. Novamente, seu diretório pode ser diferente:
Alias /icons/ "c:/wamp/bin/apache/apache2.4.9/icons/" <Directory "c:/wamp/bin/apache/apache2.4.9/icons"> Options Indexes MultiViews AllowOverride None Require all granted </Directory>
Reinicie seu servidor Apache e aproveite seus ícones legais!
fonte
Alias
paraAlias /icons/ "icons/"
em versões anteriores ao WAMPServer 3. No WAMPServer 3 e acima, este é o padrão e nenhuma alteração é necessária.Você pode seguir todos os passos por @RiggsFolly essa é uma resposta realmente boa, Se você não quiser criar um host virtual e quiser usar como localhost / exemplo / anterior anterior ou algo parecido, você pode usar a resposta por @Arunu
Mas se você ainda tiver problemas, use este método,
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://localhost' : '').$file.'">'.$file.'</a></li>';
Espero que você tenha seu url como a versão anterior do servidor wamp.
fonte
$suppress_localhost = false;
Isso funcionou para mim.
fonte
Isso funciona no Wamp 3+.
urlAddLocalhost = "on"
Não deve haver necessidade de ajustar o index.php na pasta www.
fonte
Re: Links Wampserver LocalHost não funcionam corretamente
Isso é desde junho de 2014 com Wampserver2.5 (talvez eles consertem isso em compilações posteriores).
Observação: para usar LocalHost: 8080 em vez de LocalHost, basta fazer as alterações apropriadas nas edições mencionadas abaixo.
Existem 2 aspectos deste problema -
o primeiro é ser capaz de acessar os itens em "Seus projetos" na página inicial do localhost do Wamp.
A segunda é ser capaz de acessar corretamente os itens listados na lista "Meus projetos" da barra de tarefas do ícone Wampserver.
Para corrigir o primeiro (para poder acessar itens em "Seus projetos" da página inicial do localhost do Wamp), você precisará fazer o seguinte ...
Existem 2 edições que você deve fazer no arquivo index.php localizado na sua pasta wamp \ www (geralmente C: \ wamp \ www)
1) mudança na linha 30
$suppress_localhost = true;
para
$suppress_localhost = false;
2) alteração na linha 338
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
para
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : 'http://localhost//').$file.'">'.$file.'</a></li>';
Depois de fazer as edições acima - se o Wampserver estiver em execução, basta atualizar a página do host local e as alterações entrarão em vigor imediatamente.
Para consertar o segundo item (lista "Meus projetos" da barra de tarefas do ícone Wampserver): Você precisa editar C: \ wamp \ scripts \ refresh.php
Localize a linha 651 e mude a seção da linha que lê
Parameters: "http://'.$projectContents[$i].'/"; Glyph: 5
para
Parameters: "http://localhost//'.$projectContents[$i].'/"; Glyph: 5
Depois de fazer esse segundo conjunto de mudanças, você pode ter que forçar o Wampserver a atualizar a lista "Meus projetos" alternando a opção Colocar online / offline na parte inferior do aplicativo Wamp Icon Tray.
fonte
verifique se o ícone do servidor wamp está verde ou não, se estiver verde, então está funcionando; se não, você deve seguir estas etapas para fazer
uma. todos os programas devem ser fechados antes de rodar o wamp porque na maioria dos casos alguns softwares como o skype tomam a mesma porta (80) que está usando pelo wamp.
b. você pode alterar a porta do skype: Ferramentas-> opções-> avançado-> conexão desmarcar usar porta 80
reinicie o wamp ele vai funcionar.
SEGUNDO caso
quando você clica no projeto em loalhost ele não mostra o localhost na frente do nome do projeto e por isso parece que o wamp não está funcionando então você tem que fazer apenas uma coisa
. vá para o arquivo wamp index.php e altere $ suppress_localhost = false; de $ suppress_localhost = true; ou tente vice-versa, vai funcionar
fonte
Navegue até o seu diretório www (se estiver usando o servidor wamp) htdocs (se estiver no XAMPP). Abra seu admin.php e pesquise o conteúdo do projeto / ou vá diretamente para a linha 339 e altere o link, inserindo 'host local no link.
Isso deve funcionar ,,
fonte
Acho que é muito mais fácil (do que uma resposta aceita) criar um subdomínio local por projeto e dizer ao Apache para servir a vários sites por nome.
Por exemplo, digamos que você criou um projeto em
c:/wamp64/www/sites/mysite
, para poder acessá-lo em http: //mysite.localhost, você simplesmente precisa fazer o seguinte:1. Diga a sua máquina para responder a nomes diferentes Adicionar
127.0.0.1 mysite.localhost
aC:\windows\system32\drivers\etc\hosts
2. Lave o cache do DNS Abra um prompt de comando como administrador e tipo
net stop dnscache
, em seguidanet start dnscache
.3. Diga ao Apache onde procurar Clique no ícone do Wamp na bandeja, vá para Apache -> httpd.conf, e adicione isto no final:
# Tells Apache to identify which site by name NameVirtualHost *:80 # Tells Apache to serve the default WAMP Server page to "localhost" <VirtualHost 127.0.0.1> ServerName localhost DocumentRoot "C:/wamp/www" </VirtualHost> # Tells Apache to serve Client 1's pages to "client1.localhost" # Duplicate and modify this block to add another client <VirtualHost 127.0.0.1> # The name to respond to ServerName client1.localhost # Folder where the files live DocumentRoot "C:/wamp64/www/sites/mysite" # A few helpful settings... <Directory "C:/wamp64/www/sites/mysite"> allow from all order allow,deny # Enables .htaccess files for this site AllowOverride All </Directory> # Apache will look for these two files, in this order, if no file is specified in the URL DirectoryIndex index.html index.php </VirtualHost>
( fonte )
4. Reinicie o Apache Clique no ícone do Wamp na bandeja, selecione "reiniciar"
5. Defina um url de base Vá para a pasta do seu projeto, adicione
<base href="http://mysite.localhost" />
ao seu<head>
seção para evitar que / links para a raiz do servidor sejam quebrados.Pessoalmente, injeto esse código html dinamicamente em meu modelo usando PHP (algo como
$site_root = (IS_LOCALHOST) ? '<base href="http://mysite.localhost" />' : null;
), então não preciso me preocupar em removê-lo uma vez na produção.fonte
Olá, você precisa abrir o index.php do servidor wamp e alterar $ suppress_localhost = false; de $ suppress_localhost = true; então seu wamp funcionará bem
fonte