XAMPP.- Utilizar VirtualHost en como dominio virtual en Ubuntu con desktop gnome

¿Qué es el Virtual Host? http://httpd.apache.org/docs/1.3/vhosts/ lo explica:

The term Virtual Host refers to the practice of maintaining more than one server on one machine, as differentiated by their apparent hostname. For example, it is often desirable for companies sharing a web server to have their own domains, with web servers accessible as http://www.company1.com and http://www.company2.com, without requiring the user to know any extra path information.

Traducción:

El termino Virtual Host se refiere a la práctica de mantener más de un servidor en una máquina, se distingue por el aparente hostname. Por ejemplo, es a menudo deseable para las compañías que comparten un servidor web tener sus propios dominios, con servidores web accesibles como http://www.company1.com y http://www.company2.com, sin requerir que el usuario conozca cualquier información adicional.

Localhost

En informática, en el contexto de redes TCP/IP, localhost es un nombre reservado que tienen todas las computadoras, router o dispositivo que disponga de una tarjeta de red ethernet para referirse a sí mismo. El nombre localhost es traducido como la dirección IP de loopback 127.0.0.1 en IPv4, o como ::1 en IPv6.

Especificación según la IETF

En la RFC 3330 de la IETF, titulado “Special-Use IPv4 Addresses” (“direcciones IPv4 de uso especial”), describe las direcciones 127.0.0.0/8 (nomenclatura CIDR) como un bloque reservado de direcciones IPv4 reservadas para loopback.

Este rango de direcciones no puede ser utilizado o asignado por ninguna organización o ISP. Cualquier paquete con una dirección dentro del rango ‘127.0.0.0/8’ no puede salir del dispositivo.

Por otro lado, sólo la dirección IPv6 ::1/128 está reservada como dirección loopback en la especificación de la arquitectura de direcciones que define la RFC 3513.

Wikipedia

Loopback

El dispositivo de red loopback es un interfaz de red virtual que siempre representa al propio dispositivo independientemente de la dirección IP que se le haya asignado. El valor en IPv4 es 127.0.0.1 y ::1 para el caso de IPv6.

Se utiliza en tareas de diagnóstico de conectividad y validez del protocolo de comunicación, así como para indicar que el destino del puntero o URL es el mismo host.

Wikipedia

Archivos que usaremos:
/etc/hosts
Indica el mapeo de hosts
/opt/lampp/etc/httpd.conf
Configuración de archivos de Apache
/opt/lampp/etc/extra/httpd-vhosts.conf
Configuración del VirtualHost

El localhost admite dentro del rango ‘127.0.0.0/8’. Que todos estos hasta llegar a la octava cuando los llamas la computadora se dirige hacia si misma. Es decir todas las peticiones dirigidas a este rango listado más abajo, son para la computadora o servidor donde son hechas.
a) 127.0.0.0
b) 127.0.0.1
c) 127.0.0.2
d) 127.0.0.3
e) 127.0.0.4
f) 127.0.0.5
g) 127.0.0.6
h) 127.0.0.7
i) 127.0.0.8

Se supone que para cada dominio es una instalación de XAMPP y con el VirtualHost podemos poner varios en una sola. Para que estén en red entendí que son estos pasos pero poniendo la ip del servidor. El procedimiento que explico esta dirigido para tenerla solo para la computadora en que trabajamos.

En Ubuntu recomiendo mejor el uso de sudo, pero se puede llamar una terminal del root con los siguientes pasos: Alt+F2 (Run Application) ==> Escribir gksu gnome-terminal ==> Introducir contraseña ==> Aparece la terminal del root.

Estos son los pasos que seguí en Ubuntu 8.04.2 con desktop gnome e hice uso del sudo.

PASO 1.- Entrar a la cuenta con privilegios de administración en el linux.

PASO 2.- Detener el XAMPP

Desde una terminal del root:

/opt/lampp/lampp stop

Con sudo, en una terminal normal:

sudo /opt/lampp/lampp stop

PASO 3.- Crear carpeta con el nombre que usaremos para el dominio dentro de /opt/lampp/htdocs. Por ejemplo creo la carpeta travesuras en ese lugar, quedando la ruta como /opt/lampp/htdocs/travesuras

Desde una terminal del root:

mkdir /opt/lampp/htdocs/[nombre de la carpeta]

Con sudo; también en una terminal, pero normal:

sudo mkdir /opt/lampp/htdocs/[nombre de la carpeta]

Ejemplos:

Desde una terminal del root:

mkdir /opt/lampp/htdocs/travesuras

Con sudo:

sudo mkdir /opt/lampp/htdocs/travesuras

PASO 4.- Crear archivos de prueba llamados index.html, index.htm y index.php dentro de la carpeta que acabamos de hacer (PASO 3).

Código del php para guardarse dentro del archivo index.php:

<html>
<head>|
<title>Mi prueba del php de [nombre de la carpeta]</title>
</head>
<body>
<?php echo "Probando el php en [nombre de la carpeta]"; ?>
</body>
</html>

Código del html para guardarse dentro del archivo index.html:

<html>
<head>
<title>Mi prueba del html de [nombre de la carpeta]</title>
</head>
<body>
<p>Probando el html en [nombre de la carpeta]</p>
</body>
</html>

Código del html para el archivo index.htm:

<html>
<head>
<title>Mi prueba del htm de [nombre de la carpeta]</title>
</head>
<body>
<p>Probando el htm en [nombre de la carpeta]</p>
</body>
</html>

Ejemplos:

Código del php (index.php):

<html>
<head>
<title>Mi prueba del php de travesuras</title>
</head>
<body>
<?php echo "Probando el php en travesuras"; ?>
</body>
</html>

Código del html (index.html):

<html>
<head>
<title>Mi prueba del html de travesuras</title>
</head>
<body>
<p>Probando el html en travesuras</p>
</body>
</html>

Código del html (index.htm):

<html>
<head>
<title>Mi prueba del htm de travesuras</title>
</head>
<body>
<p>Probando el htm en travesuras</p>
</body>
</html>

PASO 5.- Abro el hosts y agrego el nombre del nuevo dominio virtual.

a) Abro el hosts
En terminal del root:

gedit /etc/hosts

Con sudo (en una terminal normal):

sudo gedit /etc/hosts

b) Agrego el nombre del dominio virtual (nombre de la carpeta que acabamos de hacer en el PASO 3 junto con la dirección del localhost en número.

El archivo contiene parecido a:

127.0.0.1	localhost
127.0.1.1	[nombre del equipo]

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Justo debajo del nombre del equipo agregamos la línea:

127.0.0.1	[nombre de la carpeta]

Siguiendo nuestro ejemplo:

127.0.0.1	travesuras

Quedando más o menos así:

127.0.0.1	localhost
127.0.1.1	[nombre del equipo]
127.0.0.1	[nombre de la carpeta que hicimos en /opt/lampp/htdocs (PASO 3)]

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Para nuestro ejemplo agrego algunos comentarios:

#Localhost
127.0.0.1	localhost
#Nombre del equipo
127.0.1.1	travesuras
#Travesuras
127.0.0.1	travesuras

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

NOTA.- Recuerden que el rango 127.0.0.0/8 es el del localhost y apuntan a nuestra propia máquina. Además si queremos hacer algún comentario anteponemos el signo # , cuando terminemos de hacerlo damos enter para cambiar la línea y finalizarlo; por ejemplo #Travesuras arriba de 127.0.0.1 para indicar a cual carpeta pertenece.

PASO 6.- Necesitamos descomentar la línea “Include etc/extra/httpd-vhosts.conf” dentro del archivo httpd.conf.

a) Abrimos el archivo httpd.conf

En una terminal del root:

gedit /opt/lampp/etc/httpd.conf

Con sudo dentro de una terminal normal:

sudo gedit /opt/lampp/etc/httpd.conf

b) Buscamos y descomentamos la línea #Include etc/extra/httpd-vhosts.conf quitando el signo # del principio.

Quedando:

Include etc/extra/httpd-vhosts.conf

c) Cambiamos la línea ServerAdmin you@example.com por:

ServerAdmin you@localhost

d) Agregamos al final y sin espacios a ServerName localhost :80 Quedando:

ServerName localhost:80

e) Guardamos

PASO 7.- En el archivo httpd-vhosts.conf introduciremos los datos necesarios para que el XAMPP pueda utilizar nuestra carpeta como si fuera un dominio. Como dijimos en el archivo hosts le dimos la ip del localhost.

a) Abrimos el archivo httpd-vhosts.conf

En terminal del root:

gedit /opt/lampp/etc/extra/httpd-vhosts.conf

Con sudo en una terminal normal:

sudo gedit /opt/lampp/etc/extra/httpd-vhosts.conf

b) Agregamos las líneas:

#localhost
<VirtualHost *:80>
    ServerAdmin you@localhost
    DocumentRoot /opt/lampp/htdocs
    ServerName localhost:80
    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

#Ponemos cualquier comentario para indicar a que carpeta o dominio pertenece
<VirtualHost *:80>
    ServerAdmin you@[nombre de la carpeta que pusimos dentro de /opt/lampp/htdocs]
    DocumentRoot [ruta de la carpeta que pusimos dentro de /opt/lampp/htdocs]
    ServerName [nombre de la carpeta que pusimos dentro de /opt/lampp/htdocs]
    ServerAlias www.[nombre de la carpeta que pusimos dentro de /opt/lampp/htdocs]
    ErrorLog logs/[nombre de la carpeta que pusimos dentro de /opt/lampp/htdocs]-error_log
    CustomLog logs/[nombre de la carpeta que pusimos dentro de /opt/lampp/htdocs]-access_log common
</VirtualHost>

En nuestro ejemplo nos queda:

#localhost
<VirtualHost *:80>
    ServerAdmin you@localhost
    DocumentRoot /opt/lampp/htdocs
    ServerName localhost:80
    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

#travesuras
<VirtualHost *:80>
    ServerAdmin you@travesuras
    DocumentRoot /opt/lampp/htdocs/travesuras
    ServerName travesuras
    ServerAlias www.travesuras
    ErrorLog logs/travesuras-error_log
    CustomLog logs/travesuras-access_log common
</VirtualHost>

c) Comentamos los otros VirtualHost de ejemplo agregando al principio de cada línea un signo #

d) Guardamos

PASO 8.- Probar que todo funcione correctamente

a) Inicializamos otra vez el XAMPP

En una terminal del root:

/opt/lampp/lampp start

Con sudo:

sudo /opt/lampp/lampp start

b) Nuestro sitio lo abrimos en el navegador como http://travesuras y si tenemos problemas porque nos manda a la página principal en tonos naranjas y amarillos del XAMPP tecleamos http://travesuras/index.htm

c) Nos aseguramos que esa página principal de administración del XAMPP en tonos naranjas y amarillos siga funcionando tecleando también en el navegador http://localhost

NOTA.- Si no quiere abrir, vemos si el navegador está trabajando fuera de línea; en caso afirmativo lo cambiamos a que trabaje en línea. En firefox es que este desmarcada la opción Work Offline de el menú File.

 
 
 

http://httpd.apache.org/docs/1.3/vhosts/
https://travesuras.wordpress.com/2008/09/03/12/      Tutorial para la instalación del XAMPP en Linux
http://blog.victorcastelan.net/xampp-para-linux-como-virtualhost/
http://www.maestrosdelweb.com/editorial/host
http://es.wikipedia.org/wiki/Localhost
http://es.wikipedia.org/wiki/Loopback

Anuncios

XAMPP EN UBUNTU CON ESCRITORIO GNOME

Las computadoras son un juguete para mi y como tal las trato y maltrato; hoy mi objetivo fue tener en mi computadora todas las funciones de un servidor sin que lo sea realmente. Me toco instalar el XAMPP para linux dentro de Ubuntu con escritorio gnome. Tuve ciertos contratiempos por no entrar de la forma adecuada para esta distro a la terminal del root.
Este procedimiento de instalación solo sirve para linux En otros sistemas operativos tienen el propio, favor de consultarlo en http://www.apachefriends.org El nombre del XAMPP en linux es LAMPP

Pasos que seguí para la instalación.

Paso 1.-
Descargar XAMPP para linux. Fui a la página oficial de ellos: http://www.apachefriends.org/en/xampp-linux.html Ahí además se encuentran todos los pasos necesarios a seguir pero como no son exactamente los que se necesitan para Ubuntu me llevo un rato lograrlo.

Paso 2.-
Me desconecte de internet hasta que volví seguro mi xampp, lampp en linux.

Paso 3.- Podemos hacer uso de una terminal del root o anteponer sudo en una normal de un usuario con privilegios de administrador. En lo personal recomiendo lo segundo cuando sea posible como en el caso de los usuarios de Ubuntu.

a) Llamo la terminal del root en Ubuntu con los siguientes pasos:

  • Tecleo Alt+F2
  • Aparece la ventana donde se ejecutan las aplicaciones y escribo: gksu gnome-terminal
  • Salta otra ventana pidiéndome mi clave de mi usuario y se la doy. Importante: debo de estar en una cuenta con privilegios suficientes para administrar sistema para que me la acepte. Se abre por fin la terminal del root y desde aquí puedo realizar todos los cambios pertinentes.

Paso 4.-

Hay que descomprimir y crear la subcarpeta lampp en la carpeta opt:

  • El archivo lo descargue en el escritorio, carpeta sontravesuras, subcarpeta mias y mi nombre de usuario es travesuras por tanto la ruta es: /home/travesuras/Desktop/sontravesuras/mias
  • Para descomprimir y crear la carpeta opt y la subcarpeta lampp escribo:
    En una terminal del root:

    tar xvfz [ruta y nombre del archivo de instalación del xampp] -C /opt

    Haciendo uso del sudo en una terminal normal:

    sudo tar xvfz [ruta y nombre del archivo de instalación del xampp] -C /opt

    En mi caso cuando use una terminal del root fue:

    tar xvfz /home/travesuras/Desktop/sontravesuras/mias/xampp-linux-1.6.7.tar.gz -C /opt

    Y usando sudo:

    sudo tar xvfz /home/travesuras/Desktop/sontravesuras/mias/xampp-linux-1.6.7.tar.gz -C /opt

    Ahora que ya esta la nueva versión:

    sudo tar xvfz /home/travesuras/Desktop/sontravesuras/mias/xampp-linux-1.7.tar.gz -C /opt

Paso 5.-
Para que el programa empiece a correr hago uso de cualquiera de las dos opciones que siguen:
a) En una terminal del root:

/opt/lampp/lampp start

b) Con sudo, en una terminal normal y con un usuario con privilegios de administrador:

sudo /opt/lampp/lampp start

En cualquiera de los dos casos aparece:

Starting XAMPP for Linux 1.6.7…
XAMPP: Starting Apache with SSL (and PHP5)…
XAMPP: Starting MySQL…
XAMPP: Starting ProFTPD…
XAMPP for Linux started.

Paso 6.-
Para comprobar que esta funcionando escribo en el navegador: http://localhost En caso de estar el navegador trabajando sin conexión se la cambio, vuelvo a intentarlo y aparece la página donde me da a escoger con que idioma quiero trabajar.
Donde escojo la lengua:
Página donde seleccionamos el idioma a utilizar
Y después de elegir el idioma:
Bienvenida al XAMPP

Nota: Cada vez que apago la computadora se desactiva el XAMPP

Paso 7.-
Volver seguro mi XAMPP:
En este punto cualquier persona que conozca cual es mi IP puede ver lo que tengo en la carpeta /opt/lampp/htdocs y hasta las páginas donde controlo mi XAMPP.
a) Por eso escribo en la terminal del root que todavía no cierro:

/opt/lampp/lampp security

b) Si es posible usar sudo es mejor:

sudo /opt/lampp/lampp security

Y aparece un menú interactivo para darle contraseñas a todos los puntos vulnerables y mi usuario por defecto es lampp. Si quiero cambiar una pero aparece entre corchetes la palabra no escribo yes y viceversa. Importante: la contraseña que teclees se procesa en cuanto la tecleas por eso parece que no has realizado ninguna acción ni se ven los clásicos asteriscos.
Ejemplo de lo que me pidió:

Starting XAMPP for Linux 1.6.7…
XAMPP: Starting Apache with SSL (and PHP5)…
XAMPP: Starting MySQL…
XAMPP: Starting ProFTPD…
XAMPP for Linux started.
root@travesuras:/home/travesuras# /opt/lampp/lampp security
XAMPP: Quick security check…

XAMPP: Your XAMPP pages are secured by a password.
XAMPP: Do you want to change the password anyway? [no] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Password protection active. Please use ‘lampp’ as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that’s not recommended. Do you want me to turn it off? [yes]
XAMPP: Turned off.
XAMPP: Stopping MySQL…

XAMPP: Starting MySQL…
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes]
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin’s pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes]

XAMPP: Write the password somewhere down to make sure you won’t forget it!!!
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL root password.
XAMPP: Change phpMyAdmin’s authentication method.
XAMPP: The FTP password is still set to ‘lampp’.
XAMPP: Do you want to change the password? [yes]
XAMPP: Password:
XAMPP: Password (again):

XAMPP: Reload ProFTPD…
XAMPP: Done.

Nótese que donde me pregunta si quiero cambiar la contraseña esta entre corchetes la palabra no y cuando yo escribí yes pude cambiarla.

Tecleo http://localhost/xampp/security.php en el navegador o elijo el enlace Seguridad. Y si todo va bien aparece algo así:
Donde nos dice la disponibilidad del XAMPP a terceros
La palabra Seguro dentro de un recuadro verde quiere decir que ya nadie va a poder acceder a nuestras páginas a menos que sepa el nombre de usuario y contraseña.

Hecho esto esta finalizada la instalación y blindada para que nadie sin autorización pueda ingresar al XAMPP y es cuando me conecte tranquila.

Otras cosas útiles de saber, obtenidas de http://www.apachefriends.org/en/xampp-linux.html:

PARAMETROS START Y STOP
Para ejecutarlos debe de ser en la terminal del root o invocar privilegios del mismo anteponiendo sudo a la orden en una terminal normal con un usuario con privilegios de administrador cuando se disponga de sudo como en el Ubuntu. Y se escribe: a) En una terminal del root /opt/lampp/lampp seguido del parámetro o b) usando el sudo en una terminal normal pero en un usuario que tenga privilegios del root sudo /opt/lampp/lampp más parametro.
Ejemplos:
a) Para una terminal del root:

/opt/lampp/lampp start

b) Con sudo como en el Ubuntu:

sudo /opt/lampp/lampp start

start.- Inicia el XAMPP
stop.- Detiene el XAMPP
restart.- Detiene y reinicia el XAMPP

startapache.- Inicia solo el Apache.
startssl.- Inicia el soporte Apache SSL. Este comando activa el soporte SSL permanentemente, e.g. si nosotros restauramos XAMPP en lo sucesivo el SSL estará activado.
startmysql.- Inicia solo el MySQL database.
startftp.- Inicia el ProFTPD server. Via FTP nosotros podemos subir archivos a el servidor (User “nobody”, password “lampp” o la que le hayamos asignado). Este comando activa permanentemente el ProFTPD, e.g. en lo sucesivo si reactivamos XAMPP el FTP siempre lo encontraremos activado.
stopapache.- Detiene el Apache.
stopssl.- Detiene el Apache SSL support. Este comando desactiva el SSL support permanentemente, e.g. Cada vez que se reactive el XAMPP el SSL lo encontraremos desactivado.

stopmysql.- Detiene el MySQL database.
stopftp.- Detiene el ProFTPD server. Este comando desactiva el ProFTPD y permanece así aunque reiniciemos la máquina, e.g. Desactiva el FTP sin necesidad de dar en cada ocasión la orden cuando reiniciemos el XAMPP
security.- Inicia un pequeño programa de seguridad necesario para que las páginas web no sean visibles desde la red.

ARCHIVOS Y DIRECTORIOS IMPORTANTES
Usarse en una terminal del root o bien cuando e disponga de sudo en una terminal normal con un usuario con privilegios del root anteponiendo sudo a la orden. Por ejemplo: sudo /opt/lampp/lampp stop

/opt/lampp/bin/

Tiene los comandos home de XAMPP. Por ejemplo el /opt/lampp/bin/mysql llama el MySQL monitor.

/opt/lampp/htdocs

Es donde están las paginas que queremos probar o utilizar para que estén en la web.

/opt/lampp/etc/httpd.conf

Configuración de archivos de Apache.

/opt/lampp/etc/my.cnf

Archivo de configuración del MySQL.

/opt/lampp/etc/php.ini

Archivo de configuración PHP.

/opt/lampp/etc/proftpd.conf

Archivo de configuración del ProFTPD (solo 0.9.5)

/opt/lampp/phpmyadmin/config.inc.php

El archivo de configuración del phpMyAdmin.

Comandos destacados:

/opt/lampp/lampp stop

Detiene el XAMPP

Y aparece:

Stopping XAMPP for Linux 1.6.7…
XAMPP: Stopping Apache with SSL…
XAMPP: Stopping MySQL…
XAMPP: Stopping ProFTPD…
XAMPP stopped.

/opt/lampp/lampp phpstatus

Para saber que versión de php estoy usando tecleo en la terminal del root:

/opt/lampp/lampp php5

Cambia a la versión PHP 5.x

/opt/lampp/lampp php4

Cambia a la versión PHP 4.X

/opt/lampp/lampp stopftp

Detiene el ftp, debe de ser escrita en la terminal del root y es recordada por el programa aunque reiniciemos la computadora.

DESINSTALACIóN
En una terminal del root:

rm -rf /opt/lampp

Con sudo en una terminal normal y con un usuario con privilegios del root:

sudo rm -rf /opt/lampp

 
 
 
 

Ver también tutorial para poner dominios virtuales con VirtualHost:
https://travesuras.wordpress.com/2009/02/17/20090217-1/