Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/07/2011, 12:52
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Problema con visibilidad de mi web en otras PC

aleaya:

Ya que te estás convitiendo en un experto... entonces voy a darte la cosa un poco más explicada.

Lo primero es que hayas conseguido hacer funcionar mi explicación del primer post.
A partir de ahi, olvidate por un momento de las configuraciones que intentaste.
Hagamos unas consideraciones sobre xampp:
Quienes lo desarrollaron, y así lo hacen explícito, quisieron crear un entorno para desarrolladores, y no un sistema para que tu PC pueda ser accedida desde el exterior.
De ahi lo que ellos llaman, "XAMPP security concept", obviamente, con el avance del ADSL y el aumento de ancho de banda, es muy tentadora la idea de montar nuestro propio Servidor (con todos los agregados, php. MySql, Perl, Sendmail...) y que mejor que Xampp, en lugar de instalar y configurar cada cosa por separado.

Imaginate que gracia que quienes tipeen tu ippublica/xampp, accedan a tu xampp, o que tipeen tuippublica/phpmyadmin, accedan a tu phpmyadmin. no muy seguro verdad.



Ahora, a lo concreto (vamos a trabajar sobre la version 1.7.4-VC6)
Te conviene bajar el zip y descomprimirlo que te quede
c:\xampp
Si tenes otra partición, mejor aún, que te quede
e:\xampp
Esto es porque en Windows Vista/7, se te pueden generar algunos problemas de permisos trabajando en C:

(naturalmente que ya hiciste esto, pero dejo las indicaciones para una instalación limpia)

Xampp tiene basicamente esta estructura de carpetas

xampp
xampp/htdocs (este es el document_root original)
xampp/htdocs/xampp
xampp/apache
xampp/php
xampp/elrestodelascarpetas


Ahora ejecutas el xampp-control.exe que esta en /xampp
Inicias el Apache (no recomiendo que lo instales como servicio, tampoco el mysql ó ftp, eso se hace marcando el checkbox correspondiente)

Vas a "admin", para el Apache, elegis idioma, y ahi podés ver toda la info sobre lo que tenes instalado y como está configurado, en el menu izquierdo vas a encontrar un item "chequeo de seguridad", dale ahi, en la nueva página establece un nombre de usuario y contraseña para el acceso a xammp (lo del MySql, por ahora lo dejamos)

Ya con eso aseguraste tu carpeta Xampp. Solo podrá ser accedida con las credenciales correspondientes.

Ahora lo que sigue es habilitar nuestra web, como te dije tu web se inicia en htdocs, y tu server es localhost ó 127.0.0.1 ó 192.168.1.2, pero si tipeas cualquiera de esas cosas vas a ser redirigida a http://localhost/xampp. para corregirlo, busca en /htdocs el archivo index.php que contiene
Código PHP:
Ver original
  1. <?php
  2.     if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
  3.         $uri = 'https://';
  4.     } else {
  5.         $uri = 'http://';
  6.     }
  7.     $uri .= $_SERVER['HTTP_HOST'];
  8.     header('Location: '.$uri.'/xampp/');
  9.     exit;
  10. ?>
  11. Something is wrong with the XAMPP installation :-(
no lo borres, simplemente editalo y comenta el
header('Location: '.$uri.'/xampp/');

con eso anulas la redirección, pero tampoco vas a ver nada, tenes que crear entonces en /htdocs un archivo .htaccess con lo que sigue

Código Apache:
Ver original
  1. Options -indexes
  2. DirectoryIndex index.html index.php

Con esas directivas vas a hacer que la prioridad sea el index.html (que tambien esta en /htdocs, es el que contien el texto It works!

Un ajuste, al realizar estos cambios las páginas de /htdocs/xampp van a perder la codificación por defecto y te van a aparecer algunos caracteres extraños, lo arreglas abriendo el archivo /xampp/apache/conf/extra/httpd-xampp.conf y agregando debajo de la linea
<Directory "/xampp/htdocs/xampp">
esto
AddDefaultCharset iso-8859-1

Reinicia el server para que hagan efecto los cambios de esto último

Si todo va bien, habremos llegado a este punto
si entras a
http://tuippublica/xampp

vas a encontrarte con

Acceso prohibido!

XAMPP nuevo concepto de seguridad:

Acceso a la solicitud objeto sólo está disponible desde la red local.

Este ajuste puede ser configurado en el archivo "httpd-xampp.conf".

Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.
Error 403
186.182.167.51
18/07/2011 14:50:54
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1


si vas a http://127.0.0.1/xampp ó http://localhost/xampp
te pide las crdenciales y accedes a configuración de xampp

ti tipeas
http://localhost
http://127.0.0.1
http://192.168.1.2
http://tuippublica (recordá lo del router y el proxy)

Llegas a It Works !
de paso ya podés ir borrando el favicon para que no te aparezca la identificación del xampp.

Ahora con los host virtuales:

Apache puede manejar HostVirtuales, dominios o subdominios que funcionan de manera independientes

Estos dominios tienen un nombre de dominio y una ip que corresponde al server.
En una intranet, hacemos esto

Ya tenes un dominio principal em tu apache, que es localhost y arranca en /htdocs

cualquier otra máquina de la red puede acceder al apache de 192.168.1.2 tipeando justamente
http://192.168.1.2, pero no usando 127.0.0.1 ó localhost porque esas dos diecciones hacen un loopback a la propia máquina (192.168.1.3/4/5)

Vamos a crear un Vhost, y sigo con tu ejemplo
Aqui el error general, los dominios, tienen que estar registrados en algun servidor DNS, y vos no tenes ninguno, pero hay un archivito que tienen los sistemas operativos, en el caso de windos
/windows/system32/drivers/etc/hosts , que puede actuar como servidor de nombres,
vos podrias poner en ese archivo

ippublica nebelar.com.ar
Pero, y a tus amigos? les vas a decir que editen su archivo de hosts y pongan eso, y que cada vez que tu ip publica, que seguramente es dinámica, lo modifiquen.? dificil no?

Repito, para tu intranet, si queres tener varios host virtuales.
Primero por practicidad y evitar problemas en la navegación de otros sitios, vamos a crear la extension .local para nuestra intranet

En httpd-vhosts.conf

Descomentas la linea
NameVirtualHost *:80

El servidor principal

<VirtualHost *:80>
ServerName principal.local
DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Otros hosts

<VirtualHost *:80>
ServerName nebelar.local
ServerAlias www.nebelar.local
DocumentRoot "C:/nebelar"
<Directory "C:/nebelar">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName ventas.local
DocumentRoot "C:/ventas"
<Directory "C:/ventas">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

y en tu archivo de hosts (el de 192.168.1.2) agregás

127.0.0.1 localhost
127.0.0.1 principal.local
127.0.0.1 nebelar.local
127.0.0.1 www.nebelar.local
127.0.0.1 ventas.local

y en los archivos hosts del resto de las pcs de la red interna (03/04/05)


127.0.0.1 localhost
192.168.1.2 nebelar.local
192.168.1.2 www.nebelar.local
192.168.1.2 ventas.local

Con lo cual estas máquinas van a encontrar tu Apache y este los redirige al dominio correcto


Fuera de la intranet

Para que esto funcione necesitas un servicio que te proporcione los DNS (se llaman dynamic Dns. Yo uso DynDns.org , ya que entre otras ventajas muchos modelos de routers te hacen el loguin directo a tu cuenta, si no tenes que instalar un software que ellos te proveen

Esto funciona asi, (te doy las opciones para el registro básico, que es gratuito)
te registras en Dydns y sacas un dominio del tipo nebelar.dyndns.info, lo configuras para que haga la redirección a tu ip en el puerto 80, que es lo mas convencional.

Ya sea por el router o por el software, tu ip publica le es pasada a DyDns, al hacer esto, cada uno que tipee desde el exterior nebelar.dyndns.info va a sus servidores de nombres, estos lo redirigen a tu ip publica, esta llega a tu router, tu router, como hiciste el redireccionameineto de puertos va a la ip de tu red interna dónde corre el puerto 80, es decir 192.168.1.2... tu apache, pero.... este va a ir a tu servidor principal, solo a ese, es decir lo que esta en /xampp/htdocs, los hostsvirtuales NO van a funcionar.

Creo que DynDns tiene un sistema de comodines con lo cual podrias hacerlo,pero es pago, asimismo tiene un servicio para redirigir dominios (seria el caso de que vos registres en nic argentina nebelar.com.ar y pongas los DNS de DynDns, una vez que llega a ellos te hace la redirección), pero tambien es pago.



Un tip final, Si Apache y las carpetas de los DOCUMENT_ROOT de tu hos o hosts virtuales están en la misma unidad, no es necesario que indiques la letra de unidad
DocumentRoot "C:/ventas"
equivale a
DocumentRoot "/ventas"

Lo cual representa una ventaja si haces tus páginas localmente y despues las subis a algun server con Linux

Por ahora creo que es más que suficiente, tenes para entretenerte


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.