Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/01/2006, 20:30
NightDark
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 18 años, 3 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.