OVH Community, your new community space.

Subdominios dinámicos


txavi
28/12/2014, 09:03
Bien! me alegro, que lo hayas conseguido.

ij1728-ovh
27/12/2014, 18:26
Vale. Funciona. Y de lujo.

Gracias Txavi por la ayuda. Eres el único entre 5 foros que me ha orientado.

Por si le sirve a alguien más voy a explicar cómo hacerlo paso a paso.


Primero partimos de la base de que tenemos nuestro propio servidor en Linux (Ya que la explicación es sobre este SO), tenemos acceso al usuario root y creado el alojamiento de nuestra página en nuestro servidor con las DNS del dominio apuntándolo y funcionando.

Podéis acceder desde putty ssh al servidor mediante root, pero yo lo he hecho todo con FTP ya que me es mas cómodo que ir trabajando con comandos ssh.
Para acceder por FTP al root de tu servidor hazlo igual que si fueses a acceder a un dominio. Insertas la ip del servidor, el usuario root y la contraseña del usuario root y te deberías de poder navegar como root por todos los directorios de tu servidor sin problemas.

Ahora, lo primero que vamos a hacer es editar el archivo de configuración del BIND de tu dominio. Suele llamarse como el dominio e imagino que se guardara en todos los servidores en la misma raiz. Por ejemplo, si mi web es joseillan.com, se llamara (joseillan.com.hosts) y en mi caso se guarda en /var/named/joseillan.com.hosts

Si accedes mediante FTP, descarga el archivo y edítalo con un editor de texto cualquiera. Te saldrá algo parecido a esto:

joseillan.com. IN SOA joseillan.com. postmaster.joseillan.com. (
2014122702
21600
3600
604800
86400 )
IN NS joseillan.com.
IN NS ns.kimsufi.com.
IN MX 10 mail.joseillan.com.
IN A 94.23.32.32
www IN A 94.23.32.32
mail IN A 94.23.32.32
smtp IN A 94.23.32.32
pop IN A 94.23.32.32
pop3 IN A 94.23.32.32
imap IN A 94.23.32.32
sql IN A 94.23.32.32
mysql IN A 94.23.32.32
ftp IN A 94.23.32.32
joseillan.com. IN TXT "asfrasdfasdf"
default._domainkey IN TXT ( "asdfasdf" ) ; ----- DKIM key default for joseillan.com


Pues fíjate ahora lo que añado en negrita:

joseillan.com. IN SOA joseillan.com. postmaster.joseillan.com. (
2014122702
21600
3600
604800
86400 )
IN NS joseillan.com.
IN NS ns.kimsufi.com.
IN MX 10 mail.joseillan.com.
IN A 94.23.32.32
www IN A 94.23.32.32
mail IN A 94.23.32.32
smtp IN A 94.23.32.32
pop IN A 94.23.32.32
pop3 IN A 94.23.32.32
imap IN A 94.23.32.32
sql IN A 94.23.32.32
mysql IN A 94.23.32.32
ftp IN A 94.23.32.32
*.joseillan.com. IN A 94.23.32.32
joseillan.com. IN TXT "asfrasdfasdf"
default._domainkey IN TXT ( "asdfasdf" ) ; ----- DKIM key default for joseillan.com
Guarda el archivo y súbelo ya editado via ftp.
Fíjate bien no te comas algún punto.

Este es el primer paso. Pero aun no va a funcionar correctamente.

Volvemos al FTP y vamos a editar las directivas del servidor web apache de nuestro dominio. En mi caso se encuentra en /etc/httpd/vhosts/joseillan.com.conf
Misma operación de antes. Descargamos el archivo, lo editamos y buscamos dentro del archivo:

ServerName www.joseillan.com
ServerAlias joseillan.com
En mi caso, aparece así. Pues ahora lo edito tal que así:
ServerName joseillan.com
ServerAlias *.joseillan.com
Guardamos el archive y cargamos via FTP.


Ahora toca reinicar todos los servicios o bien la maquina entera (lo que mejor se te dé) y al arrancar, pongas el subdominio que pongas sobre tu dominio, mostrara el contenido del dominio.

El siguiente paso, seria trabajar con las URLs amigables. Pero aun estoy trabajando en ello. Actualizare el post más adelante.

txavi
27/12/2014, 11:34
Cita Publicado inicialmente por ij1728-ovh
Lo estoy probando en mi página Web personal y parece que funciona. Pero no consigo que muestre el contenido que quiero.

Mira. prueba.joseillan.com

Debería aparecer un texto de prueba, pero aparece un mensaje por defecto del servidor dando la bienvenida al servidor. De hecho, ponga el subdominio que ponga me aparece igual.


Pille por ahí este código. Pero seguramente estará incompleto o mal. La última línea no me cuadra mucho ya que parece más bien para url amigables.

RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^(.+).joseillan.com
RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?pagina=prueba [L,NC]
No.... así no debes hacerlo... o bueno... como comentas, si te funciona no sería la mejor manera de solucionarlo (es una chapu). Debes configurar el apache para que te funcione el "wildcard subdomain"

Ya que has conseguido entrar por SSH, edita como root el fichero de configuración del apache. Primero deberías tener activado el virtual host (https://www.digitalocean.com/communi...u-14-04-lts-es)

El asunto se centra, que en la definición de tu "virtualhost" debes decirle que también te haga "match" para cualquier subodminio, por ejemplo:


ServerName midominio.org
ServerAlias *.midominio.org

DocumentRoot "/Users/leannapelham/Sites/qa/web"

AllowOverride All
Allow from All

Reinicia apache y si pones asdfsadf.midominio.org debería abrirte la página web midominio.org.

Y de propina, si quieres ver alguna utilizada interesante, ya que eres PHPero, un tutorial utilizando el mejor framework para PHP, Symfony2

http://knpuniversity.com/screencast/...mic-subdomains

ij1728-ovh
27/12/2014, 10:19
Bien. Solucionado por ahora. De manera chapucera pero funcionando.

ij1728-ovh
27/12/2014, 09:41
Problema medio resuelto. Hace un rato recordé que antaño, cuando tenía interés en Linux, accedía por putty ssh. Mirando viejos manuales he conseguido cambiar el propietario y grupo del archivo. Por lo que ahora lo detecta sin problemas como php.

Seguiré informando sobre los avances.

ij1728-ovh
27/12/2014, 07:05
Bueno. Actualizo sobre como llevo el tema de los subdominios dinámicos.

Con la ayuda de txavi he conseguido que cualquier subdominio sobre cualquier dominio de mi servidor, no muestre una aviso de página no encontrada por el navegador, si no que más bien muestra la página del servidor. Por ejemplo en mi caso ks3269290.kimsufi.com

Para entendernos. Si entras en la dns ks3269290.kimsufi.com mediante cualquier navegador, aparece un mensaje de bienvenida. Investigando, me he dado cuenta que la ip o la dns actua como un alojamiento más en el servidor, alojándose en el directorio /home/ovh/www/ donde se encuentra dicho mensaje trabajando como una página más.
A este servidor apunta un dominio con el que estoy haciendo las pruebas de los dominios dinámicos. Joseillan.com.
Si entras en mi dominio, aparece mi perfil público. Pero, si accedes a cualquier subdominio tal como “prueba.joseillan.com”, te aparece el mensaje de bienvenida del servidor y no el alojamiento principal del dominio joseillan.com, que es lo que persigo desde el principio.

Pues bien, esto no es lo que busco. Pero esto lo puedo utilizar a mi favor de manera provisional como “chapuza”. Solo tengo que cargar un index.php en el alojamiento del servidor “/home/ovh/www/” y con un sencillo script usando la variable $_SERVER[‘REQUEST_URI’] para identificar el subdominio requerido por el navegador, indicar lo que quiero mostrar en el subdominio indicado.
Pero ahora tengo otro problema. Resulta que los archivos subidos como usuario “root” por ftp o Webmin (Unica manera que conozco por ahora de conectar a /home/ovh/www/) y/o identificados como propietario del archivo root en vez de usuario ovh, hace que no funcione php.
Esto me pasa con el resto de páginas alojadas en mi Web. Si no cargo los archivos con su usuario correspondiente, php no funciona.

Otro problema que tengo es que no se cual será la contraseña del usuario ovh de mi servidor ni como cambiar o indentificarla.

Necesito 4 posibles soluciones a las que no encuentro respuesta por ningún lado.

1: Que los subdominios de mi dominio apunten al dominio y no al servidor.
2: Que cualquier archivo php subido como root, funcione sin problemas en cualquier alojamiento
3: Poder cambiar el propietario del archivo
4: Averiguar la contraseña del usuario ovh de mi servidor.

¿Alguna idea?

ij1728-ovh
26/12/2014, 15:31
Lo estoy probando en mi página Web personal y parece que funciona. Pero no consigo que muestre el contenido que quiero.

Mira. prueba.joseillan.com

Debería aparecer un texto de prueba, pero aparece un mensaje por defecto del servidor dando la bienvenida al servidor. De hecho, ponga el subdominio que ponga me aparece igual.


Pille por ahí este código. Pero seguramente estará incompleto o mal. La última línea no me cuadra mucho ya que parece más bien para url amigables.

RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^(.+).joseillan.com
RewriteRule ^([a-zA-Z0-9-_]+)$ index.php?pagina=prueba [L,NC]

ij1728-ovh
26/12/2014, 12:48
Ese archivo ya lo he localizado. He puesto esa linea tal cual con la IP de mi servidor. A esperar a que se propagen los DNS. Ya te voy informando

txavi
26/12/2014, 09:09
Cita Publicado inicialmente por ij1728-ovh
Claramente mi versión es anterior. La 9.8.2. ¿Como se puede actualizar?

Lo digo porque cambia mucho la interfaz y no consigo aclararme
Será que la versión de webmin es antigua, o en mi caso, que difiere al usar virtualmin+webmin.

Aún así, investiga donde están los ficheros de configuración del BIND, yo utilizo CENTOS7 y el fichero de configuración está en:

/var/names/midominio.org.hosts

edítalo y añade la linea:

*.midominio.org. IN A ip_de_mi_servidor

(no te dejes el punto al final del "*.midominio.org.")

Reinicia el bind:

services named restart

ij1728-ovh
25/12/2014, 20:18
Claramente mi versión es anterior. La 9.8.2. ¿Como se puede actualizar?

Lo digo porque cambia mucho la interfaz y no consigo aclararme

ij1728-ovh
25/12/2014, 20:13
Gracias por el post txavi. Mi versión parece distinta pues la interfaz no es la misma. Pero voy a tratar de averiguarlo. Ya te voy comentando mis progresos

txavi
25/12/2014, 19:55
Si gestionas el DNS desde el BIND de tu servidor con virtualmin, Pulsa sobre el dominio que quieres administrar:

http://i58.tinypic.com/w1pt37.jpg

Puedes añadir un registro Address (A):

http://i61.tinypic.com/24wgjzm.jpg

Finalmente añade el registro con * y que apunte a la IP de tu servidor.

http://i57.tinypic.com/2usy96w.jpg

Aplica los cambios y espera unas horas a que se propague el DNS, o haz la consulta directamente a tu servidor con el comando DIG o NSLOOKUP.

Ahhh y recuerda en tu definición de virtual host del apache definir el server alias:

Código:
ServerAlias midominio.org *.midominio.org

ij1728-ovh
25/12/2014, 11:21
Pues lo dicho. Estoy investigando la sección de Servidor de DNS BIND en el webmin pero no sé lo que tengo que hacer. ¿Hay que editar algún archivo de configuración del servidor?

ij1728-ovh
25/12/2014, 11:15
Hola txavi.

Lo segundo. Voy a intentar averiguar donde se define porque no tengo ni idea. Supongo que sera en el servidor.

txavi
25/12/2014, 09:52
No acabo de entenderte lo de dinámico? te refieres a que la IP va cambiando, como si lo tuvieras hosteado en una IP dinámica? o que el apache te resuelva cualquier nombre de domino de forma dinámica sin tener que configurarlo cada vez en el DNS?

A lo segundo, creo recordar que el nombre del host en el DNS debes definirlo con un *, de esta manera, cualquier subdominio será resuelto con la IP que contenga la linea con *.

Saludos!

ij1728-ovh
25/12/2014, 09:07
Buenos días.

Me interesa crear subdominios dinámicos en mi sitio Web.

Tengo el apache configurado. Pero he leído que también hay que configurar los DNS y de eso ni idea.

¿Alguien tiene subdominios dinámicos en su web que me pueda indicar como lo consigue?