Servidor LAMPP en Ubuntu (The very easy way)
Antes de arrancar, aviso que este es un post medio ladri pero a la vez muy útil. Ladri porque me voy a valer de varios otros tutoriales sacando las partes que sirven de cada uno para lograr el objetivo, y util, porque vi por muchisimos foros gente preguntando como hacer un servidor LAMPP (Linux, Apache, MySQL, PHP, Perl) de forma fácil y sobre todo he notado que se suelen tener problemas con los virtual hosts.
Otra cosa que tengo que aclarar es que esta guía esta orientada a servidores “caseros”, ideales para usar en el desarrollo web, teniendolos listo en unos minutos…
Primero lo primero
Lo primero que vamos a necesitar es la última version de Ubuntu disponible, que la bajamos de la página oficial. La versión que necesitamos es en principio la “Server Edition”, pero también podemos usar la desktop si vamos a usar esa máquina también como desk.
Una vez que bajamos el ISO de ubuntu, lo grabamos a un CD y ya estamos listos para arrancar la instalación.
La instalación es bastante fácil e intuitiva, sobre todo si vamos a usar todo el disco de la PC para ubuntu. Si queremos tener 2 sistemas operativos en la PC es un poco mas complicado pero hay mucha información en google sobre como hacerlo. Igualmente no creo que si la idea es tener la PC como servidor andemos booteando con uno u otro SO.
Bueno, suponiendo que vamos a usar todo el disco para instalar ubuntu (y acá viene la primer parte “ladri”) recomiendo seguir este tuto de howtoforge hasta el punto 5 que está en la página 3 de ese tutorial. Eso en realidad es bastante sencillo, y a diferencia de lo que proponen en ese tutorial, recomiendo seleccionar en la instalacion (se hace con la barra espaciadora) el servidor “OpenSSH” y el “SAMBA server” por si queremos interactuar en una red con windows.
Metiendo mano
En este punto ya tendriamos que tener Ubuntu instalado con OpenSSH y SAMBA funcionando.
Ahora vamos a asignarle una IP de red fija al servidor, ya que seguramente tiene asignada la que obtuvo mediante DHCP. Para esto usamos el siguiente comando:
nano /etc/network/interfaces
Para editar este texto presionamos Alt+O, borramos todo lo que dice, y copiamos el siguiente codigo:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Hacemos Alt+O para dejar de editar, luego Ctrl+X para salir. Pregunta si queremos guardar los cambios, ponemos Y y ENTER para sobreescribir el archivo.
Por supuesto en ese texto anterior, hay que tener en cuenta que puede cambiar según la configuración de la red de cada uno.
Luego hacemos:
/etc/init.d/networking restart
Teniendo OpenSSH instalado, ahora podemos acceder al servidor desde otra PC, incluso con Windows, usando algun programita cliente de SSH como Putty.
Instalando XAMPP
Conectamos mediante SSH usando la IP que le asigamos o el host que le pusimos durante la instalación (Ej. ubuntuserver)
Descargamos la última versión de XAMPP usando
wget http://ufpr.dl.sourceforge.net/sourceforge/xampp/xampp-linux-1.6.7.tar.gz
o bien lo descargamos a la PC donde estamos y lo subimos al servidor usando winscp.
Ya tenemos XAMPP descargado, ahora lo instalamos como indican en su web.
No hay que olvidarse de ejecutar el comando de segurdad de XAMPP para poner passwords a las cosas que lo necesitan.
Para ver el servidor andando ponemos en el navegador cualquiera de estas direcciones http://192.168.0.10 o http://ubuntuserver (si es que le asignamos esa IP y ese host).
SAMBA
En este punto vamos a configurar SAMBA para que tengamos accesible desde la red la carpeta htdocs del servidor.
Primero creamos un nuevo usuario de esta forma:
sudo adduser nombreusuario
Hecho eso, editamos el archivo .conf de samba usando nano igual que lo hicimos al asignar la IP fija con sudo nano /etc/samba/smb.conf .
Ahí editamos la linea que dice WORKGROUP = poniendo el nombre del grupo de red de Windows (ej WORKGROUP = CASA).
En el mismo archivo, agregamos al final de todo las siguientes lineas:
[htdocs]
comment = htdocs
path = /opt/lampp/htdocs
valid users = nombreusuario
public = no
writable = yes
printable = no
create mask = 0777
Con esto le estamos dando permiso 777 al usuario “nombreusuario” para acceder a la carpeta htdocs.
Reiniciamos SAMBA con sudo /etc/init.d/samba restart
Hecho esto ya tendriamos la carpeta htdocs, que es el root de apache, accesible desde la red windows y estaría listo un servidor de desarrollo full.
Un poco mas…Agregando Virtual Hosts
Lo primero que hay que hacer es editar el archivo httpd.conf que esta en /opt/lampp/etc . Ahí buscamos la linea Include etc/extra/httpd-vhosts.conf y le sacamos el # de adelante.
Ahora hay que editar el archivo httpd-vhosts.conf que está en /opt/lampp/etc/extra
Acá tenemos que dejar tantos <Virtual Host> como formas de acceder al servidor querramos. Básicamente, si queremos acceder por el dominio de red y por un dominio como .com tendriamos que agregar lo siguiente:
<VirtualHost *:80>
ServerAdmin mail@gmail.com
DocumentRoot /opt/lampp/htdocs
ServerName ubuntuserver
ServerAlias ubuntuserver
ErrorLog logs/ubuntuserver-error_log
CustomLog logs/ubuntuserver-access_log common
<Directory "/opt/lampp/htdocs">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin mail@gmail.com
DocumentRoot /opt/lampp/htdocs/dominio
ServerName dominio.com.ar
ErrorLog logs/dominio.com.ar-error_log
CustomLog logs/dominio.com.ar-access_log common
<Directory "/opt/lampp/htdocs/dominio">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
y reiniciamos LAMPP
Pero como hago para apuntar el dominio.com.ar a mi servidor si tengo IP dinamica?
Para esto usamos el servicio de DNSs EveryDNS
En EveryDNS creamos un dominio en la opcion “Make domain dynamic”.
Creado el dominio, nos queda modificar los DNS en la entidad donde lo registramos, sea nic.ar o cualquier otra, de forma que apunten a los DNS de everydns.net.
El siguiente y último paso para tener el dominio funcionando en nuestro servidor es usar el script pearl que nos da la gente de EveryDNS para actualizar la IP.
Bajamos el archivo con wget http://www.everydns.net/eDNS.pl y lo corremos haciendo perl /home/guido/eDNS.pl -u usuarioeverydns -p passwordeverydns.
uff…ok. Listo