martes, 25 de junio de 2013

Configurar Wamp Server Para Acceso Remoto


Pues bien para continuar debemos de instalar el wampserver en las otras maquinas que van a compartir de forma local la base de datos, despues de esto tendremos que realizar algunas modificaciones para que la aplicacion se pueda comunicar con los otros servidores locales de la red local “LAN”, primero que nada para configurar una aplicacion para usar bases de datos remotas en una red local  necesitaremos configurar el wampserver para usarlo en red con tu aplicacion los errores que normalmente encontraras al tratar de conectarte a otro servidor sin realizar las configuraciones que a continuacion explico son las siguientes:

forbiden al tratar de acceder por ejemplo en lugar de localhost(127.0.0.1) a la ip “192.168.1.100” o  192.168.1.100/phpmyadmin tambien se nos mostrara el error de “forbiden” que no tienes acceso.
Entonces para quitar estos errores realizaremos unas configuraciones en los servidores wampserver y mas especifico en el archivo de apache httpd.conf el cual lo podremos encontrar al dar click en el menu inicio donde este nuestro icono de wampserver y luego en apache, httpd.conf y darle click para que se abra con nuestro bloc de notas.

Cambiar estas lineas:
#   onlineoffline tag - don't remove
   Order Deny,Allow
   Allow from 127.0.0.1

Por estas otras para poder acceder desde cualquier maquina que este en la red y no solo desde localhost sino desde la ip que tengamos asignada en nuestra maquina servidor
#   onlineoffline tag - don't remove
   Order Allow,Deny
   Allow from all
#   Allow from 127.0.0.1

Despues de esto ya podras accedere a tu sitio remoto desde la otra maquina que no tiene el wampserver pero si quieres utilizar las bases de datos de phpmyadmin remota en red necesitaras tambien configurar el alias para ello ve a C:\wamp\alias. y abre el archivo de phpmyadmin.conf and agrega las siguientes lineas ,que tambien lo puedes acceder desde el wampserver en la barra de inicio, wampserver,apache, alias directories,phpmyadmin edit alias y tienes que cambiar las siguientes lineas:

Cambiar esto:

<Directory "c:/wamp/apps/phpmyadmin3.2.0.1/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
       Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

Por estas otras lineas:

<Directory "c:/wamp/apps/phpmyadmin3.2.0.1/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
       Order Allow,Deny
    Allow from all
    Allow from 127.0.0.1
</Directory>

pues bien ahora que tenemos todo configurado para poder configurar nuestros script de php o de cakephp o de Ruby on Rails desde su configuracion de donde especificamos los datos de acceso al servidor de base de dato mysql y se conecten a la  base de datos de la otra computadora tenemos que crearle su propia cuenta de usuario como la siguiente todo esto desde el phpmyadmin de la maquina remota creamos la cuenta de usuario en privilegios donde le especificamos que le vamos a dar permiso de que otro servidor remoto en la red se conectara a su base de dato por ejemplo podemos crear un usuario con las siguientes especificaciones

usuario: ip-del-servidor-remoto-local-que-se-conectara-a-la-base-de-datos
host: ip-del-servidor-remoto-local-que-se-conectara-a-la-base-de-datos
contraseña: una contraseña que quieras o igual lo puedes dejar en vacio
volver a escribir. la contra si escogiste una

Y puedes acceder solo a una base de datos o especificarle cuales nomas.

Ojo: cuidado con el firewall y los antivirus desactivar todo por que si no te va a marcar que no te puedes conectar a la base de datos o que estan mal lo datos de configuracion aunque ya lo hayas configurado todo bien.

Pues bien despues de esto solo ocupamos en nuestro archivo de configuracion de base de datos especificar la informacion de la cuenta de usuario que creamos y ya estaremos utilizando la base de datos remota y si quisieramos utilizar una tablas de un servidor local remoto y otras del servidor local pues simplemente creamos diferentes archivos de configuracion y dependiendo del catalogo o de la base de datos y la tabla unicamente mandamos llamar el archivo respectivo asi modificara esta tabla y las que tu quieras a continuacion presento algunos ejemplos de archivos de configuracion para Ruby on Rails y php.

Bueno suponiendo que tengo tres maquinas en mi red local y que dos son servidores corriendo con el wampserver y una sera la cliente entonces estas serian mis configuraciones:

192.168.1.1 - servidor 1
192.168.1.2 - servidor 2
192.168.1.3 - supongamos que no tiene wampserver y sera el cliente

Entonces si por ejemplo tuvieramos dos catalogos de clientes y facturas y un catalogo o mas bien sus datos los quiero guardar de la siguiente manera:

catalogo “clientes” esta en el servidor 1 “192.168.1.1” o sea la tabla clientes.
catalogo “facturas” esta en el servidor 2 “192.168.1.2” o sea la tabla facturas.

Y todos los archivos de mi aplicacion supongamos los colocare en el webroot de wampserver del servidor 1, con lo cual el cliente “192.168.1.3” cuando quiera entrar a modificar o agrergar nuevos datos a su aplicacion web distribuida en php, Ruby on Rails lo hara colocando en el navegador la direccion “192.168.1.1:3000/mi-aplicacion-ruby” para el caso de ruby on Rails y para el caso de si fuera una aplicacion en php 192.168.1.1/mi-aplicacion-php, con lo cual logicamente se guardaran los datos en los dos servidores en sus respectivas tablas, pues bien tambien debemos de crear para la configuracion que a continuacion describo yo cree una base de datos en el servidor 1 y servidor 2 desde phpmyadmin y le puse a ambas “basedatosdistribuida” , pues bien despues de toda esta explicacion escribo mis configuraciones en caso de que sea php o Ruby on Rails en nuestra aplicacion web distribuida.

Configuraciones para aplicación web distribuida php

Script de configuracion php o muchas veces llamado conexion.php jejeje

Para el servidor 1 “192.168.1.1” que es donde se encuentran todos los archivos de nuestra aplicacion web distribuida en php.

conexion1.php (este utiliza la base de datos local de su tabla clientes)

$db_host="192.168.1.1"; // Host al que conectar, o también podemos poner localhost
$db_nombre="basedatosdistribuida"; // Nombre de la Base de Datos
$db_user="root"; // Nombre del usuario con permisos suficientes
$db_pass="password"; // Contraseña de dicho usuario

conexion2.php (Esta utiliza la base de datos del servidor 2, tabla facturas)

$db_host="192.168.1.2"; // Host al que conectar, habitualmente es el ‘localhost’
$db_nombre="basedatosdistribuida"; // Nombre de la Base de Datos que se desea utilizar
$db_user="192.168.1.1"; // Nombre del usuario que creamos con su ip para hacer referencia al servidor que se conectara a esta base de datos del servidor 1 al servidor 2
$db_pass="password"; // Contraseña de dicho usuario.

Para el caso de Ruby on Rails la configuracion servia la siguiente, tambien creariamos dos archivos de configuracion de base de datos.yml en mi caso:

7 comentarios:

  1. muy bueno... la informacion varia segun la version del wamp pero igual me sirvio para encontrar los servicios que necesitaba editar.

    ResponderBorrar
  2. Me alegra que le sirva esta información... saludos

    ResponderBorrar
  3. Hola Armando
    Muy bueno el articulo.
    Escribo aqui con la esperanza que me puedas ayudar. Tengo instalado wamp en mi pc, la cual tiene windows 8. Estoy desarrollando un sitio web y necesito que el cliente chequee lo que voy haciendo pudiendo ver el sitio remotamente.
    He hecho ya varias cosas pero aun no me logro. Ya te cuento lo que he hecho. Tengo un router Hitron, y en el abri el puerto 80 tcp. En httpd.conf tengo listen 80, ServerName localhost:80, aunque alguien recomienda en una pagina que en un caso como este use la ip del router (en cualquiera de los casos no funciona).
    Cambie tambien en httpd.conf, phpmyadmin.conf, sqlbuddy.conf, webgrind.conf, las lineas encerradas en por estas:


    #ExecCGI MultiViews
    Options Indexes FollowSymLinks
    AllowOverride all

    Order allow,deny
    Allow from all


    Me meti en el firewall y adicione una regla para el puerto 80, hasta desactive el antivirus, pero no hay forma que logre una respuesta valida. Tambien he desactivado el firewall en algunos momentos.
    REviso la conexion a traves de un tunel o de un sitio llamado dyndns, que chequea ip mas puerto, y siempre al chequear mi ip mas puerto 80 me dice conection refused. Por si aporta algo cuando reviso a traves del tunel me dice CGI error. Agradeceria mucho si me puedes orientar con esto, no hay forma que lo logre y me urge solucionar este problema. Gracias.

    ResponderBorrar
  4. No funciona :(
    Estoy usando el puerto 8080, ¿Tengo que hacer algo más?

    ResponderBorrar
  5. Estimado podrás ayudarme con tratar de acceder desde un equipo cliente al servidor? he hecho artos cambios pero aun asu sigue mostrando el mensahe de forbidden (no es posible acceder al servidor)

    ResponderBorrar