Estoy instalando el servidor Wamp en otra computadora para ejecutar una base de datos y una interfaz de usuario de tamaño mediano. He tenido éxito en bloquear IIS y enrutar el servidor a Localhost: 8080. Pero cada vez que intento acceder a uno de mis proyectos desde la página de inicio de localhost, en el archivo www; Me redirigen a un error de página no encontrada.
Cuando coloco el cursor sobre los enlaces, el directorio siempre aparece "http: // ProjectFolderNameHere /". cuando se supone que es "http: // LocalHost: 8080 / ProjectFolderNameHere /". ¿Qué puedo hacer para que los enlaces funcionen correctamente?
Mi máquina funciona con Windows 7 Home Edition de 64 bits y ya tengo el IIS de Microsoft desactivado.
Respuestas:
Cómo crear un host virtual en WampServer
¡WAMPServer 3 ha facilitado mucho este proceso!
Puede hacer casi todo desde una utilidad proporcionada como parte de WAMPServer.
Cree una carpeta dentro para contener su project.site. Esto puede estar bajo el
C:\wamp\www\
directorio o en una carpeta completamente separada comoC:\websites
.Cree una carpeta dentro de la ubicación que ha elegido EG
C:\websites\project1\www
o debajo delc:\wamp\www\project1\www
Ahora abra localhost
wampmanager->localhost
y haga clic en el enlaceAdd a Virtual Host
debajo de la sección HERRAMIENTAS en la página de inicio.Verá una página como esta:
Complete los campos como se especifica en las instrucciones sobre cada campo
La configuración del host virtual se habrá creado para usted.
Ahora debes reiniciar la caché de DNS. Puedes hacer esto desde los menús de wampmanager como este
right click wampmanager->Tools->Restart DNS
. La caché de DNS se reiniciará y luego Apache también se detendrá y reiniciará. Cuando el icono de wampmanager se vuelve verde nuevamente, todo está completo.Ahora debe crear un
index.php
archivo simple o instalar su sitio en la carpeta que creó anteriormente.Suponiendo que se haya llamado a su VH,
project.dev
debería ver ese nombre en la sección Sus hosts virtuales de la página de inicio de WAMPServer.Puede iniciar el sitio desde este menú, o simplemente usar el nuevo nombre de dominio en la barra de direcciones EG
project1.dev
y el sitio debe iniciarse.Mecanismo antiguo de WAMPServer 2.5, o si desea hacerlo todo manualmente
¡Ha habido un cambio de concepto en WampServer 2.5 y superior y hay una buena razón para este cambio!
En WampServer ahora se recomienda ENCARECIDAMENTE crear un host virtual para cada uno de sus proyectos, incluso si los mantiene en un
\wamp\www\subfolder
estructura.Documentación de hosts virtuales
Ejemplos de host virtual
La página de inicio de WampServer (
\wamp\www\index.php
) ahora espera que haya creado un host virtual para todos sus proyectos y, por lo tanto, funcionará correctamente solo si lo hace.Historia
Con el fin de hacer la vida más fácil a los principiantes que usan WampServer para aprender PHP Apache y MySQL, se sugirió que creara subcarpetas debajo de la
\wamp\www\
carpeta.wamp |-- www |-- Chapter1 |-- Chapter2 |-- etc
Estas subcarpetas se mostrarían entonces como enlaces en la página de inicio de WampServer en un menú llamado 'Sus proyectos' y estos enlaces contendrían un enlace a
localhost/subfoldername
.Aceptable solo para tutoriales simples
Esto facilitó la vida al principiante completo y fue perfectamente aceptable, por ejemplo, para aquellos que siguen tutoriales para aprender la codificación PHP. Sin embargo, nunca fue diseñado para usarse al desarrollar un sitio web real que luego desearía copiar a su servidor alojado en vivo. De hecho, si utilizara este mecanismo, a menudo causaba problemas, ya que la configuración de los sitios en vivo no coincidiría con la configuración de desarrollo.
El problema del desarrollo de sitios web reales.
La razón de esto es, por supuesto, que la configuración predeterminada de DocumentRoot para wamp es
DocumentRoot "c:/wamp/www/"
independientemente del nombre de su subcarpeta. Este mensaje que a menudo usaba código PHP que consultaba la estructura o su sitio recibía información diferente cuando se ejecutaba en su WampServer de desarrollo a la que recibiría cuando se ejecutaba en un servidor alojado en vivo, donde la configuración de DocumentRoot apunta a la carpeta en la parte superior del sitio web jerarquía de archivos. Este tipo de código existe en muchos marcos y CMS, por ejemplo, WordPress y Joomla, etc.
Por ejemplo
Digamos que tenemos un proyecto llamado project1 retenido
wamp\www\project1
y ejecutado incorrectamente comolocalhost/project1/index.php
Esto es lo que reportarían algunos de los comandos PHP en cuestión:
$_SERVER['HTTP_HOST'] = localhost $_SERVER['SERVER_NAME'] = localhost $_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
Ahora bien, si hubiéramos definido correctamente ese sitio utilizando una definición de host virtual y lo
http://project1
ejecutáramos, los resultados en el sitio de desarrollo de WAMPServer coincidirán con los recibidos en un entorno alojado en vivo.$_SERVER['HTTP_HOST'] = project1 $_SERVER['SERVER_NAME'] = project1 $_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
Ahora bien, esta diferencia puede parecer trivial al principio, pero si usara un marco como WordPress o uno de los CMS como Joomla, por ejemplo, esto puede causar problemas cuando mueve su sitio a un servidor en vivo.
Cómo crear un host virtual en WampServer
En realidad, esto debería funcionar básicamente igual para cualquier servidor Apache de wndows, con diferencias solo en el lugar donde puede encontrar los archivos de configuración de Apache.
Hay 3 pasos para crear su primer host virtual en Apache, y solo 2 si ya tiene uno definido.
Paso 1 , crear las definiciones de host virtual
Edite el archivo llamado en el
httpd-hosts.conf
que reside WampServer\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(Los números de versión de Apache pueden diferir, active el cerebro antes de continuar)
Si es la primera vez que edita este archivo, elimine el código de ejemplo predeterminado, no sirve de nada.
Supongo que queremos crear una definición para un sitio llamado proyecto1 que vive en
\wamp\www\project1
Muy importante, primero debemos asegurarnos de que localhost todavía funciona, por lo que es la primera definición de VHOST que colocaremos en este archivo.
<VirtualHost *:80> DocumentRoot "c:/wamp/www" ServerName localhost ServerAlias localhost <Directory "c:/wamp/www"> Options Indexes FollowSymLinks AllowOverride All Require local </Directory> </VirtualHost>
Ahora definimos nuestro proyecto: y esto, por supuesto, lo hace para cada uno de sus proyectos cuando comienza uno nuevo.
<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 como propio
DocumentRoot
definido. También hay muchos otros parámetros que puede agregar a una definición de hosts virtuales, consulte la documentación de Apache.Pequeño aparte
La forma en que funcionan los hosts virtuales en Apache: la primera definición de este archivo también será el sitio predeterminado, por lo que, si el nombre de dominio utilizado en el navegador no coincide con ningún dominio alojado virtualmente definido, lo que hará que localhost sea el primer dominio del archivo. es el sitio que se carga si un intento de pirateo solo usa su dirección IP. Entonces, si nos aseguramos de que la seguridad de Apache para este dominio esté SIEMPRE CONFIGURADA
Require local
cualquier pirateo casual desde una dirección externa recibirá un error y no entrará en su PC, pero si escribe mal un dominio, se le mostrará la página de inicio de WampServer, porque está en la misma PC que WampServer y por lo tanto
local
.Paso 2 :
Agregue su nuevo nombre de dominio al archivo HOSTS. Ahora necesitamos agregar el nombre de dominio que hemos usado en la definición de Virtual Host al archivo HOSTS para que Windows sepa dónde encontrarlo. Esto es similar a crear un registro A de DNS, pero solo es visible en este caso en esta PC específica.
Editar
C:\windows\system32\drivers\etc\hosts
El archivo no tiene extensión y debería permanecer así. Tenga cuidado con el bloc de notas, ya que puede intentar agregar una
.txt
extensión si no tiene un editor mejor. Te sugiero que descargues Notepad ++, es gratis y es un muy buen editor.Además, este es un archivo protegido por lo que debe editarlo con privilegios de administrador, así que inicie su editor usando la opción de menú Ejecutar como administrador .
El archivo de hosts debería verse así cuando haya completado estas ediciones
127.0.0.1 localhost 127.0.0.1 project1 ::1 localhost ::1 project1
Tenga en cuenta que debe tener definiciones aquí para la dirección de bucle invertido IPV4
127.0.0.1
y también la dirección de bucle invertido IPV6::1
ya que Apache ahora es compatible con IPV6 y el navegador utilizará IPV4 o IPV6 o ambos. No tengo idea de cómo decide cuál usar, pero puede usarlo si tiene la pila IPV6 encendida, y la mayoría de los sistemas operativos de ventanas lo hacen a partir de XP SP3.Ahora debemos decirle a Windows que actualice su caché de nombre de dominio, así que inicie una ventana de comando nuevamente usando la opción de menú Ejecutar como administrador nuevamente, y haga lo siguiente.
net stop dnscache net start dnscache
Esto obliga a Windows a borrar su caché de nombre de dominio y volver a cargarlo, al volver a cargarlo, volverá a leer el archivo HOSTS para que ahora sepa sobre el dominio.
project1
.Paso 3 : Quite el comentario de la línea en httpd.conf que incluye el archivo de definición de Virtual Hosts.
Edite su httpd.conf, use los menús de wampmanager.exe para asegurarse de editar el archivo correcto.
Encuentre esta línea en httpd.conf
# Virtual hosts #Include conf/extra/httpd-vhosts.conf
Y simplemente elimine el
#
para descomentar esa línea.Para activar este cambio en su ejecución de Apache, ahora debemos detener y reiniciar el servicio de Apache.
Ahora, si el ícono de WAMP en la bandeja del sistema no se vuelve VERDE nuevamente, significa que probablemente ha hecho algo mal en el
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
archivo.Si es así, aquí hay un mecanismo útil para averiguar qué está mal. Utiliza una función de Apache exe (httpd.exe) para verificar sus archivos de configuración e informar errores por nombre de archivo y números de línea.
Inicie una ventana de comando.
cd \wamp\bin\apache\apache2.4.9\bin httpd -t
Así que corrija los errores y vuelva a probar hasta que obtenga el resultado
Ahora hay una cosa más.
En realidad, hay 2 elementos de menú nuevos en el sistema de menús de wampmanager. Uno llamado 'Mis proyectos' que está activado de forma predeterminada. Y un segundo, llamado 'Mis hosts virtuales' , que no está activado por defecto.
'Mis proyectos' enumerará cualquier subdirectorio del directorio \ wamp \ www y proporcionará un enlace para iniciar el sitio en ese subdirectorio. Como dije anteriormente, lanza 'project1` y no' localhost / project1 ', por lo que para que el enlace funcione debemos crear una definición de host virtual para que este enlace lance realmente ese sitio en su navegador, sin la definición de host virtual es probable que Inicie una búsqueda web para el nombre del sitio como palabra clave o simplemente devuelva una condición de sitio no encontrado.
El elemento del menú "Mis hosts virtuales" es un poco diferente. Busca el archivo que se utiliza para definir los hosts virtuales (llegaremos a eso en un minuto) y crea enlaces de menú para cada parámetro ServerName que encuentra y crea un elemento de menú para cada uno. Esto puede parecer un poco confuso, ya que una vez que creamos una definición de host virtual para los subdirectorios de la carpeta \ wamp \ www, algunos elementos aparecerán tanto en el menú 'Mis proyectos' como en el menú 'Mis hosts virtuales'.
¿Cómo activo este otro menú "Mis hosts virtuales"?
;WAMPPROJECTSUBMENU
, está en la sección '[Menu.Left]'.;WAMPVHOSTSUBMENU
antes o después del;WAMPPROJECTSUBMENU
parámetro.Gran nota El nuevo menú solo aparecerá si ya tiene definidos algunos hosts virtuales! De lo contrario, no verá ninguna diferencia hasta que defina un VHOST.
Ahora, si llevas esto a su extensión lógica
Ahora puede mover el código de su sitio web completamente fuera del
\wamp\
estructura de carpetas simplemente cambiando el parámetro DocumentRoot en la definición de VHOST. Entonces, por ejemplo, podrías hacer esto:Cree una carpeta en el disco wamp o en cualquier otro disco (tenga cuidado con la unidad de red, son un poco más complicados)
D: MD websites CD websites MD example.com CD example.com MD www
Ahora copia el código de tu sitio o comienza a crearlo en la
\websites\example.com\www
carpeta y define tu VHOST así:<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>
Luego agregue este nuevo dominio de desarrollo al archivo 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: No es una buena idea usar un ServerName o ServerAlias que sea el mismo que su nombre de dominio en vivo, ya que si hubiéramos usado example.com como ServerName, significaría que ya no podríamos acceder al sitio real en vivo desde este PC, ya que dirigiría example.com a 127.0.0.1, es decir, a esta PC y no a Internet.
TAMBIÉN: Vea que he permitido que se acceda a este sitio desde Internet desde dentro de las definiciones de VHOST, este cambio se aplicará solo a este sitio y no a otro. Muy útil para permitir que un cliente vea sus cambios durante aproximadamente una hora sin tener que copiarlos al servidor en vivo. Esto significa que tenemos que editar este archivo manualmente para activar y desactivar este acceso en lugar de usar el elemento de menú Poner en línea / fuera de línea en wampmanager.
También agregué algunas modificaciones a la configuración de PHP, nuevamente, eso solo se aplicará a este sitio. Muy útil cuando se mantiene un sitio con requisitos específicos a diferencia de todos los otros sitios que mantiene. Supongo que podemos suponer, a partir de los parámetros utilizados, que tiene una página de larga ejecución en algún lugar y que está muy mal escrita y no se ejecutará con errores que se muestren en el navegador sin hacer un desastre horrible en la página. Créame, existen sitios como este y la gente todavía quiere que se mantengan con urgencia . Pero esto significa que solo tenemos que cambiar estos parámetros para este sitio específico y no globalmente para todos los sitios virtuales que se ejecutan en WampServer.
fuente
localhost/add_vhost.php
en WAMPServer 3, consulte esta publicación en WAMPServers Forumright click wampmanager -> Tools -> Restart DNS
que funcionó después de agregar un nuevo host virtual y no comprender por qué aún no funcionaba.Creo que esta es la mejor solución:
Abra index.php en la carpeta www y configure
cambiar línea 30:
$suppress_localhost = true;
a
$suppress_localhost = false;
Esto asegurará que el proyecto tenga el prefijo de su IP / nombre de host local
fuente
right click wampmanager->Wamp Settings->Add localhost to url
¡Lo único bueno de esto es que puede apagarlo nuevamente fácilmente cuando se dé cuenta de la mala idea que fue en primer lugar!Abrir
index.php
enwww
carpeta y configurar$suppress_localhost = false;
Esto antecederá
http://localhost/
a los enlaces de su proyectofuente
Para acceder al proyecto desde la página de inicio, primero debe crear un host virtual .
Solo sigue estos pasos:
<?php echo "<h1>Hello World</h1>"; ?>
Ahora puede acceder a los proyectos desde la página de inicio de localhost. Simplemente haga clic en el enlace del proyecto y verá "Hello World" impreso en su pantalla.
fuente
Cómo arreglar los enlaces de iconos rotos (blank.gif, text.gif, etc.)
Desafortunadamente, como se mencionó anteriormente, simplemente agregar un host virtual a su proyecto no corrige los enlaces de iconos rotos.
El problema:
WAMP / Apache no cambia la referencia de directorio para los iconos a su directorio de instalación respectivo. Está configurado estáticamente en "c: / Apache24 / icons" y el 99,9% de los usuarios de la instalación de Apache no reside aquí. Especialmente con WAMP.
La solución:
Encuentre su directorio de iconos de Apache! Normalmente se ubicará aquí: "c: /wamp/bin/apache/apache2.4.9/icons". Sin embargo, su kilometraje puede variar dependiendo de su instalación y si su versión de Apache es diferente, entonces su ruta también será diferente. \
Abra httpd-autoindex.conf en su editor favorito. Este archivo normalmente se puede encontrar aquí: "C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-autoindex.conf". Nuevamente, si su versión de Apache es diferente, esta ruta también lo será.
Encuentre esta definición (generalmente ubicada cerca de la parte superior del archivo):
Alias /icons/ "c:/Apache24/icons/" <Directory "c:/Apache24/icons"> Options Indexes MultiViews AllowOverride None Require all granted </Directory>
Reemplace los directorios "c: / Apache24 / icons /" por los suyos. IMPORTANTE DEBE tener una barra diagonal al final en la primera referencia del directorio. La segunda referencia de directorio no debe tener una barra al final. Sus resultados deberían verse similares a esto. Nuevamente, su directorio puede diferir:
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>
¡Reinicia tu servidor Apache y disfruta de tus geniales íconos!
fuente
Alias
aAlias /icons/ "icons/"
en versiones anteriores a WAMPServer 3. En WAMPServer 3 y superiores, este es el valor predeterminado y no se requieren cambios.Puede seguir todos los pasos de @RiggsFolly, esa es una respuesta realmente buena, si no desea crear un host virtual y desea usarlo como localhost / ejemplo anterior / o algo así, puede usar la respuesta de @Arunu
Pero si aún tiene problemas, utilice 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 tengas tu URL como la versión anterior del servidor wamp.
fuente
$suppress_localhost = false;
Esto funcionó para mí.
fuente
Esto funciona en Wamp 3+.
urlAddLocalhost = "on"
No debería ser necesario modificar el index.php en la carpeta www.
fuente
Re: Los enlaces de Wampserver LocalHost no funcionan correctamente
Esto es a partir de junio de 2014 con Wampserver2.5 (tal vez lo arreglen en versiones posteriores).
Nota: para usar LocalHost: 8080 en lugar de LocalHost, simplemente realice los cambios apropiados en las ediciones que se mencionan a continuación.
Hay 2 aspectos de este problema:
el primero es poder acceder a los elementos en "Sus proyectos" desde la página de inicio de Wamp localhost.
El segundo es poder acceder correctamente a los elementos enumerados en la lista "Mis proyectos" de la barra de tareas del icono de Wampserver.
Para corregir el primero (para poder acceder a los elementos en "Sus proyectos" desde la página de inicio de Wamp localhost), deberá hacer lo siguiente ...
Hay 2 ediciones que debe realizar en el archivo index.php ubicado en su carpeta wamp \ www (generalmente C: \ wamp \ www)
1) en la línea 30 cambiar
$suppress_localhost = true;
a
$suppress_localhost = false;
2) en la línea 338 cambiar
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
a
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : 'http://localhost//').$file.'">'.$file.'</a></li>';
Después de realizar las ediciones anteriores, si Wampserver se está ejecutando, simplemente actualice la página del host local y los cambios se harán efectivos de inmediato.
Para arreglar el segundo elemento (la lista "Mis proyectos" de la barra de tareas del icono de Wampserver): Necesita editar C: \ wamp \ scripts \ refresh.php
Busque la línea 651 y cambie la sección de la línea que dice
Parameters: "http://'.$projectContents[$i].'/"; Glyph: 5
a
Parameters: "http://localhost//'.$projectContents[$i].'/"; Glyph: 5
Después de realizar este segundo conjunto de cambios, es posible que deba obligar a Wampserver a actualizar la lista "Mis proyectos" activando la opción Poner en línea / Fuera de línea en la parte inferior de la aplicación Wamp Icon Tray.
fuente
Verifique que el ícono del servidor wamp sea verde o no, si es verde, entonces está funcionando, si no, debe seguir estos pasos para hacerlo.
a. todos los programas deben cerrarse antes de ejecutar el wamp porque la mayoría de los casos algunos softwares como skype toman el mismo puerto (80) que está usando wamp.
segundo. puede cambiar el puerto de skype: Tool-s-> oprions-> advanced-> connection desmarque usar puerto 80
reiniciar el wamp funcionará.
SEGUNDO caso
cuando hace clic en el proyecto en loalhost, no muestra el localhost enfrente del nombre del proyecto y, por eso, parece que wamp no está funcionando, entonces solo tiene que hacer una cosa
. vaya al archivo wamp index.php y cambie $ suppress_localhost = false; desde $ suppress_localhost = true; o intente viceversa funcionará
fuente
Navegue a su directorio www (si está usando el servidor wamp) htdocs (si está en XAMPP). Abra su admin.php y busque el contenido del proyecto / o simplemente vaya directamente a la línea número 339 y cambie el enlace, insertando 'host local en el enlace.
Eso debería funcionar ,,
fuente
Encuentro que es mucho más fácil (que la respuesta aceptada) crear un subdominio local por proyecto y decirle a Apache que sirva varios sitios por nombre.
Por ejemplo, supongamos que creó un proyecto en
c:/wamp64/www/sites/mysite
, para poder acceder a él en http: //mysite.localhost , simplemente debe hacer lo siguiente:1. Dígale a su máquina que responda a diferentes nombres Agregar
127.0.0.1 mysite.localhost
aC:\windows\system32\drivers\etc\hosts
2. Vacíe su caché de DNS Abra un símbolo del sistema como administrador y escriba
net stop dnscache
, luegonet start dnscache
.3. Dígale a Apache dónde buscar Haga clic en el icono de Wamp en la bandeja, vaya a Apache -> httpd.conf y agregue esto al 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>
( fuente )
4. Reinicie Apache Haga clic en el icono de Wamp en la bandeja, seleccione "reiniciar"
5. Defina una URL base Vaya a la carpeta de su proyecto, agréguela
<base href="http://mysite.localhost" />
a su<head>
sección para evitar que se rompan los enlaces / enlaces a la raíz del servidor.Personalmente, inyecto este código html dinámicamente en mi plantilla usando PHP (algo así como
$site_root = (IS_LOCALHOST) ? '<base href="http://mysite.localhost" />' : null;
) para no tener que molestarme en eliminarlo una vez en producción.fuente
Hola, necesitas abrir index.php desde el servidor de wamp y cambiar $ suppress_localhost = false; de $ suppress_localhost = true; entonces tu wamp funcionará bien
fuente