Foros del Web » Programando para Internet » PHP »

Crear subdominio desde un script php

Estas en el tema de Crear subdominio desde un script php en el foro de PHP en Foros del Web. Saludos, quisiera saber si es posible crear un subdominio desde una pagina hecha en php, con la carpeta y el nombre del subdominio dentro de ...
  #1 (permalink)  
Antiguo 26/01/2006, 19:06
Avatar de edisinho  
Fecha de Ingreso: octubre-2005
Mensajes: 119
Antigüedad: 12 años, 1 mes
Puntos: 1
Crear subdominio desde un script php

Saludos, quisiera saber si es posible crear un subdominio desde una pagina hecha en php, con la carpeta y el nombre del subdominio dentro de mi sitio, ejemplo: un cliente quiere un subdominio dentro de mi sitio web: http://nuevosubdominio.misitio.com
para crearlo llena un formulario donde ingresa el nuevo nombre del subdominio, el login y el password.
Espero su respuesta, y gracias de antemano, bye.
__________________
€disinho
  #2 (permalink)  
Antiguo 27/01/2006, 04:27
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 12 años
Puntos: 1
Hola,

Ante todo te digo que si tienes las condiciones adecuadas si puedes hacerlo. Pero antes de todo debieras plantearte una serie de preguntas:

- ¿qué es lo que estas intentando hacer? ¿una especie de 'hosting'? Si es así, ¿les darás acceso FTP a su subdominio?
- ¿el servidor donde alojarás, ¿todo es tuyo, es un servidor -de pago- dedicado o es un hosting -de padgo- compartido?
- ¿el proceso de registro tendrá algún tipo de cifrado?
- ..... etcetera

La idea teórica del proceso, a grandes rasgos, sería la siguiente:

1. pides los datos y compruebas que sean validos y que no coincida con alguno ya existente.
2. creas en el servidor, de base de datos y en el de FTP, el nuevo usuario.
3. haces que sea el nuevo usuario el que se conecte por ftp, cree su propia carpeta y establezca los permisos de acceso a la misma.

No te planteo si el subdominio que les vas a dar tendrá acceso a base de datos porque eso complicaría el proceso (tendrías que ver siles permitiras una base de datos para cada uno, darles un usuario de acceso a cada uno) ... todo esto te lo permitiría hacer tu hosting?

Si explicas un poquito mejor la idea general de tu proyecto nos ayudaría, Ciao
__________________
http://www.nosoynadie.net/
  #3 (permalink)  
Antiguo 27/01/2006, 17:45
Avatar de edisinho  
Fecha de Ingreso: octubre-2005
Mensajes: 119
Antigüedad: 12 años, 1 mes
Puntos: 1
Bueno, respondiendo a tu pregunta, tengo un sitio pago, puedo hacer las configuraciones que quiera y demas, esta administrado por Cpanel, y PHPMyAdmin para la base de datos, lo que quiero hacer es una seccion donde puedan crear un subdominio dentro de mi sitio, lo explico mejor, tengo una seccion donde llenan datos y upload de fotos, todo eso se guarda en la base de datos, una vez terminado el proceso pueden ver todo lo que hicieron en una pagina web, osea es como "crea tu web llenando formularios" y para tener organizado cada web que hacen los clientes quiero ponerlos en subdominios, y asi tambien el cliente pueda ingresar a su sitio mediante la direccion del subdominio creado, ejemplo : http://usuarionuevo.misitio.com
Bueno sobre el tema de la base de datos para cada cliente no es necesario, porque solamente yo lo manejare, sobre el FTP para cada cliente seria interesante pero no necesario de momento, espero haberme explicado bien, y gracias por tu interes amigo :D
__________________
€disinho
  #4 (permalink)  
Antiguo 27/01/2006, 18:05
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 5 meses
Puntos: 1
Hmmm bueno amigo si lo que deseas es manejar una simple pagina aca hay un script que te puede ayudar ;)
http://www.tutorialesdelweb.com/tutorial204.html#
el contendio del ls echos para ti debe ser el contenido que los suuarios montan en sus formularios.

Si deseas algo mas completo podras usar el mod_rewrite del php en el fichero .httacces
  #5 (permalink)  
Antiguo 27/01/2006, 20:30
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 11 años, 10 meses
Puntos: 0
Eso es lo mismo que pregunté en un post hace dos días, pero al parecer no me expliqué bien y tu has resumido en palabras lo que yo quería :).

acabo de averiguar como ya hacer lo que estás pidiendo. Así que lo contestaré aquí y no en mi post.

Claro que es posible mi amigo! lo único que tienes que hacer es desde PHP editar el archivo de zonas que se encuentra en /var/named
y le adieres la siguiente linea (desde el script claro con fopen):

Cita:
subdominio.tudominio.com. IN A xxx.xxx.xxx.xxx
donde xxx.xxx.xxx.xxx es la dirección de tu server
o puedes hacerlo con CNAME:

Cita:
subdominio.tudominio.com. IN CNAME dominio.com
luego obtienes el PID de bind y le mandas un SIGHUP, cómo lo obtienes? pues lees el fichero: /var/run/named/named.pid.

Luego de obtener el PID haces lo que te dije enviarle un SIGHUP que provocara que el proceso principal finalize sus procesos hijo y vuelva a leer su archivo de configuración
Código:
$update_subdominio = shell_exec("kill -s SIGHUP pid_del_bind");

y lo mismo con apache:

abres con fopen el archivo httpd.conf de tu apache y le adieres un host virtual con la directiva <VirtualHost>

tan tan
Código:
<VirtualHost 192.168.1.1> 
DocumentRoot /var/www/subdominio 
ServerName subdominino.dominio.com 
ErrorLog /var/www/vhosts/logs/subdomino/error_log 
CustomLog /var/www/vhosts/logs/subdomino/access_log common 
</VirtualHost>
ya luego vuelves a hacer lo mismo que hiciste antes con el bind, mandarle un sighup, lees el fichero /var/run/httpd.pid y de ahi obtienes el pid :).

Espero haberme explicado bien :)
al principio pensé que era dificil hacer esto desde PHP pero veo que no..

pero deberás de buscar otra forma, ya que shell_exec, system, permitidos, son peligrosos, una de esos tus clientes tienen un include sin filtrar datos de entrada y algun curioso de le ocurre meter su codigo PHP y tan tan ejecuta el system o el shell_exec y te saca una shell en PHP...
(así que recomendable deshabilitarlos)
saludos.
  #6 (permalink)  
Antiguo 28/01/2006, 05:22
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
haganlo con mod rewrite y no se coman la cabeza
__________________
aste nagusia
  #7 (permalink)  
Antiguo 28/01/2006, 09:35
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 11 años, 10 meses
Puntos: 0
Cita:
Iniciado por Mikelon85
haganlo con mod rewrite y no se coman la cabeza

A mi se me hace fácil hacerlo de esa forma xD, pero donde encuentro y encontramos documentación sobre mod rewrite en español?

otra cosa es que lo veo complicado de aprender xD.
en fin.

saludos
  #8 (permalink)  
Antiguo 28/01/2006, 10:06
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 5 meses
Puntos: 1
pues he estado leyendo por ahi :P y aca discutieron bastante hast que uno dio una solcuion y varios dicen que trabaja muy bien :

http://www.webmasterworld.com/forum92/138.htm

http://solutionscripts.com/cgi-bin/u...ubdomains.html
  #9 (permalink)  
Antiguo 28/01/2006, 10:13
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 11 años, 10 meses
Puntos: 0
yo revisaré los links que ésto me interesa.
por cierto he leído por ahí que usar mod rewrite realiza una gran carga en el servidor...
no sé..

saludos.
  #10 (permalink)  
Antiguo 02/02/2006, 21:54
Avatar de edisinho  
Fecha de Ingreso: octubre-2005
Mensajes: 119
Antigüedad: 12 años, 1 mes
Puntos: 1
Revise esos link y encontre muchas cosas que necesitaba, muchas gracias amigos por su ayuda =)
__________________
€disinho
  #11 (permalink)  
Antiguo 02/02/2006, 22:13
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 5 meses
Puntos: 1
Okis es un placer ayudar cualquier duda no duden en hablar estamos para ayudar y ser ayudados :D jejejeje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.