viernes, agosto 30, 2013

Curso de Zimbra - Capítulo I (Requerimientos previos)

Mis manuales actualizados de Zimbra (2017)
https://cloudperu.pe/manuales/listado

Si Ud. desea llevar un curso de Zimbra; puede ver mi Curso en Aula Útil https://aulautil.com/curso/online/zimbra. Clases con Videoconferencia y asistencia en tiempo real con Anydesk. Incluye Gratis 2 Servidores VPS Cloud (Firewall UTM+Zimbra) + 1 IP pública y dominio real por alumno.

Para instalar Zimbra requerimos previamente tener instalado un Sistema Operativo soportado; para efectos de este curso asumimos que tenemos instalado CentOS 6 de 64 bits o RHEL 6 de 64 bits
Para esta guía configuraremos los siguientes parámetros
dominio: dominio.com 
host de correo: mail.dominio.com
ip del servidor: 192.168.10.2
mascara del servidor: 255.255.255.0
puerta de enlace: 192.168.10.1

Requerimientos previos a la la instalación

Para instalar Zimbra es necesario configurar de forma correcta el hostname y el DNS Server, así como la zona horaria y la hora del servidor

1.- Configuración de la zona horaria
-------------------------------------------
Nos logueamos como root y ejecutamos 
$> tzselect 
2                  Americas
37                 Peru
1                  Yes 
2.- Configuración de la hora del servidor de forma manual
----------------------------------------------------------
Verificamos la hora del sistema
$> date
mié sep 19 21:34:30 PET 2012    ---> PET zona horaria
Configuración local
$> hwclock --set --date="20120314 21:56"; date --set="20120314 21:56"
3.- Configución de la hora del servidor con un cliente NTP
-----------------------------------------------------------
Configuración de cliente
$> vim /etc/sysconfig/network
$> yum -y install ntpdate
$> ntpdate  0.br.pool.ntp.org
$> chkconfig ntpdate on
4.- Configuración del Hostname 
-----------------------------------
$> vim /etc/sysconfig/network
.
.
HOSTNAME=mail.dominio.com (modificar este valor lo demás no tocarlo)

Refrescar el nombre de host y volver a abrir un terminal
$> hostname mail.dominio.com
$> exit
$> exit
Abrir un nuevo terminal y comprobar el nuevo nombre del hostname
$> hostname
Configurar el IP del host ( ej: 192.168.10.179 )
-------------------------
$> vim /etc/hosts
127.0.0.1    localhost.localdomain  localhost
192.168.10.2 mail.dominio.com  mail
Registros de DNS
------------------------------------------------------------------------
A   Zona de dominio (ej: mail.dominio.com)
NS   Name Server (Servidores DNS del dominio)
SOA  Servidor DNS principal (Server of Authorization)
MX   Servidores de correo (Mail Exchange)
TXT  Información adicional del dominio (ej: SFP para hotmail)
CNAME  Alias de una zona de dominio (ej:  web --> www.dominio.com)  
PTR  Resolución inversa

Comprobac ión de registros DNS con dig 
------------------------------------------------------------------------
Instalar dig
$> yum -y install bind-utils

Dig tiene las siguientes Secciones

QUESTION SECTION      consulta que se está realizando
ANSWER SECTION    respuesta (si la hubiera de la consulta)
AUTHORITY SECTION   detalle de los servidores de autorización (SOA)
ADDITIONAL SECTION   información adicional de zonas y otros

Ejercicios:
Verificar la zona de dominio www.sunat.gob.pe
$> dig www.sunat.gob.pe
;; QUESTION SECTION:
;www.sunat.gob.pe.  IN A

;; ANSWER SECTION:
www.sunat.gob.pe. 6 IN A 200.37.173.230    -------> (IP asociado a la zona de dominio)

;; AUTHORITY SECTION:
pe.   107607 IN NS pe1.dnsnode.net.  -------> (Servidores DNS)
pe.   107607 IN NS quipu.rcp.net.pe.
pe.   107607 IN NS sns-pb.isc.org.

;; ADDITIONAL SECTION:
pe1.dnsnode.net. 5637 IN A 194.146.106.82
pe1.dnsnode.net. 5637 IN AAAA 2001:67c:1010:20::53
quipu.rcp.net.pe. 753 IN A 200.1.176.4


Verificar los DNS Server de sunat.gob.pe
$> dig NS sunat.gob.pe
;; QUESTION SECTION:
;sunat.gob.pe.   IN NS

;; ANSWER SECTION:
sunat.gob.pe.  179 IN NS ns1.impsat.net.pe.
sunat.gob.pe.  179 IN NS ns2.impsat.net.pe.

Verificar los servidores de correo de sunat.gob.pe
$> dig MX sunat.gob.pe
;; QUESTION SECTION:
;sunat.gob.pe.   IN MX

;; ANSWER SECTION:
sunat.gob.pe.  900 IN MX 20 ns1.sunat.gob.pe.    ---> Servidores de correo de Sunat
sunat.gob.pe.  900 IN MX 10 ns.sunat.gob.pe.     

;; AUTHORITY SECTION:
sunat.gob.pe.  96 IN NS ns1.impsat.net.pe.
sunat.gob.pe.  96 IN NS ns2.impsat.net.pe.

;; ADDITIONAL SECTION:
ns1.impsat.net.pe. 66998 IN A 200.41.96.24
ns2.impsat.net.pe. 68956 IN A 201.234.59.134


Configuración de los Registros MX 
-------------------------------------------------
Balanceo de Carga 
sunat.gob.pe.     900   IN MX 10 ns.sunat.gob.pe.
sunat.gob.pe.     900   IN MX 10 ns1.sunat.gob.pe.

Alta Disponibilidad
sunat.gob.pe.     900   IN MX 10 ns.sunat.gob.pe.
sunat. gob.pe.     900   IN MX 20 ns1.sunat.gob.pe.
---------------------------------------------------

Verificar los servidores el PTR de uno de los ips de correo de sunat.gob.pe
$> dig MX sunat.gob.pe
sunat.gob.pe.  900 IN MX 10 ns.sunat.gob.pe.     

$> dig ns.sunat.gob.pe
ns.sunat.gob.pe. 900 IN A 64.76.79.131

$> dig -x 64.76.79.131
Verificar si hay registro SPF en el dominio sunat.gob.pe
$> dig TXT sunat.gob.pe
;; QUESTION SECTION:
;sunat.gob.pe.   IN TXT

;; AUTHORITY SECTION:
sunat.gob.pe.  731 IN SOA ns1.impsat.net.pe. hostmaster.impsat.net.ar. 2011010344 10800 3600 604800 86400


Vemos que no hay registro SPF

Verificar TODOS los registros de DNS del dominio sunat.gob.pe
$> dig ANY sunat.gob.pe
;; QUESTION SECTION:
;sunat.gob.pe.   IN ANY

;; ANSWER SECTION:
sunat.gob.pe.  449 IN MX 10 ns.sunat.gob.pe.
sunat.gob.pe.  449 IN MX 20 ns1.sunat.gob.pe.

;; AUTHORITY SECTION:
pe.   106956 IN NS quipu.rcp.net.pe.
pe.   106956 IN NS sns-pb.isc.org.
pe.   106956 IN NS pe1.dnsnode.net.

;; ADDITIONAL SECTION:
ns.sunat.gob.pe. 760 IN A 64.76.79.131
pe1.dnsnode.net. 4986 IN A 194.146.106.82
pe1.dnsnode.net. 4986 IN AAAA 2001:67c:1010:20::53
quipu.rcp.net.pe. 102 IN A 200.1.176.4


Verificar si hay zona de dominio configurado para el dominio raiz
sunat.gob.pe

$> dig sunat.gob.pe
 
;; QUESTION SECTION:
;sunat.gob.pe.   IN A

;; AUTHORITY SECTION:
sunat.gob.pe.  900 IN SOA ns1.impsat.net.pe. hostmaster.impsat.net.ar. 2011010344 10800 3600 604800 86400

Vemos que no está configurado el dominio raíz como zona A 


Configuración del Servidor DNS en modo enjaulado (chroot)
--------------------------------------------------------------------
Instalación del Servidor DNS
$> yum -y install bind bind-chroot bind-utils
Para configurar el DNS interno seguimos los siguientes procedimientos
Para esto tenemos que:
- Copiar los archivos de dns al entorno chroot
- Generar la firma digital
- Copiar la firma digital al entorno chroot
- Configurar los parámetros de DNS y el dominio en el archivo principal de configuración de bind
/var/named/chroot/etc/named.conf
- Configurar los registros de dns en el archivo
/var/named/chroot/var/named/dominio.com.zone
- Configurar la resolución inversa en el archivo
/var/named/chroot/var/named/10.168.192.in-addr.arpa.zone
- Reiniciar el servidor DNS
- Configurar el dns cliente el archivo
/etc/resolv.conf apuntado a nuestra propia ip
- Hacer consultas de nuestro dominio con dig

Copiar los archivos del DNS al entorno chroot
$> cd /var/named
$> for f in named.* data dynamic slaves; do mv $f chroot/var/named/; ln -s /var/named/chroot/var/named/$f /var/named/; done
Generar la firma digital
$> rndc-confgen -a -c /etc/rndc.key
$> chown named:named /etc/rndc.key
Copiar la firma digital al entorno chroot
$> cd /etc
$> for f in named.* rndc.key; do mv $f /var/named/chroot/etc/; ln -s /var/named/chroot/etc/$f /etc/; done
Nota
----------------------------------------------------------------------------
Si se falla en algùn procedimiento en la instalación desinstalar y volver a 
instalar

$> yum erase bind bind-chroot bind-utils
$> rm -fR /var/named
$> rm -fR /etc/named*
$> rm -f /etc/rndc.key
$> yum -y install bind bind-chroot bind-utils
Configurar los parámetros de DNS y el dominio en el archivo principal de configuración de bind
/var/named/chroot/etc/named.conf
$> vim /var/named/chroot/etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
// Ips en la que el demonio named escuchará las peticiones
        listen-on port 53 { 127.0.0.1; 192.168.10.2;};
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
// este parametro permite establecer quienes pueden usar el servidor DNS
        allow-query     { localhost; 192.168.10.0/24; };
// este parametro permite reenviar las consultar hacia el servidor DNS publico;
// para aquellos dominios que no se resuelven en este servidor 
        forwarders   { 8.8.8.8; 4.4.8.8; };
        forward first;
        recursion yes;

        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

// Zona raiz por defecto
zone "." IN {
        type hint;
        file "named.ca";
};


// Zona para nuestro dominio
zone "dominio.com" { 
 type master; 
 file "dominio.com.zone";
 allow-update { none; };
};

// Zona de resolucion inversa
zone "10.168.192.in-addr.arpa" { 
 type master; 
 file "10.168.192.in-addr.arpa.zone";
 allow-update { none; };
};


include "/etc/named.rfc1912.zones";

Creando los archivo zone por los dominios configurados
$> cd /var/named/chroot/var/named
$> vim  dominio.com.zone
$TTL    86400
@                  IN SOA  @ root (
                                         42              ; serial (d. adams)
                                         3H              ; refresh
                                         15M             ; retry
                                         1W              ; expiry
                                         1D )            ; minimum
                     IN    NS             @
www                                     IN      A                       192.168.10.2
mail                                    IN      A                       192.168.10.2
web                                     IN      CNAME                   www
dominio.com.                       IN      A                       192.168.10.2
dominio.com.                       IN      MX              10      mail.dominio.com.
$> vim 10.168.192.in-addr.arpa.zone
 
$TTL 86400
@          IN   SOA      @  root (
         2006031601 ; número de serie
         28800 ; tiempo de refresco
         7200 ; tiempo entre reintentos de consulta
         604800 ; tiempo tras el cual expira la zona
         86400 ; tiempo total de vida
         )
@      IN       NS     mail.dominio.com.
2    IN     PTR     mail.dominio.com.
Reiniciar los servicios
$> service named restart
$> chkconfig named on
Nota si sale errores de permisos o selinux
------------------------------------------------
$> chgrp -R named /var/named/chroot/var/named
$> restorecon -FRvv /var/named/chroot/var/named
Consideraciones de iptables
echo "permitiendo acceso al servidor DNS Server (protocolo udp, puerto 53) desde la LAN"
iptables -A INPUT -p udp --dport 53 -s 192.168.10.0/24 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -d 192.168.10.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
Verificar los logs
$> tail -f /var/log/messages
Configuración del Cliente DNS
---------------------------------------------------------------
$> vim /etc/resolv.conf
search dominio.com              (Sirve para la búsqueda corta de hosts)
nameserver 192.168.10.2


$> dig dominio.com
$> dig MX dominio.com
$> dig www.google.com
Modificar los valores de DNS en la tarjeta de red
$> vim /etc/sysconfig/network-scripts/ifcfg-eth0
.
.
.
DOMAIN=dominio.com
DNS1=192.168.10.2

$> service network restart
$> cat /etc/resolv.conf
$> dig MX dominio.com
$> dig www.google.com

sábado, agosto 18, 2007

Compiz Fusion en Ubuntu Feisty con ATI

Compiz Fusion es resultado de la reunificación de los proyectos beryl y compiz, hace poco han sacado una versión de prueba (0.52) y ya se puede configurar en Feisty, asi que manos a la obra.

Los procedimientos para instalar Compiz Fusion en Ubuntu/Kubuntu/Xubuntu Feisty y tratar de no morir (cualquier cosa puede pasar con ATI), en el intento, son:
1.- Configurar el driver de la tarjeta gráfica ATI
2.- Instalar XGL y configurar el arranque en las X
3.- Instalar Compiz Fusion y a probrar

Nota: Si ya tienes instalado y funcionando Beryl, pasa de frente al punto 3

1.- Configurar el driver de la tarjeta gráfica ATI
Ubuntu feisty tiene una nueva utilidad para configurar los drivers propietarios, que ha resultado bastante efectiva, solo tenemos que ir al menu de Sistema -> Administracion -> Gestor de controlador restringidos; ahi tenemos una opcion para configurar la tarjeta ATI (tambien sirve para Nvidia), si no lo pueden ubicar; abrir una consola y ejecutar
$> gksu -D /usr/share/applications/restricted-manager.desktop /usr/bin/restricted-manager

2.- Instalar XGL y configurar el arranque en las X
Abrimos una consola y ejecutamos
$> sudo apt-get update
$> apt-get install xserver-xgl

Para configurar el arranque de XGL creamos un archivo de arranque y una entrada en el xsession para el GDM

Archivo de arranque
Abrir una consola y ejecutar gedit, si usas kde reeplazar por kate y si usas xfce reemplazar por mousepad

Gnome
$> sudo gedit /usr/bin/startgnomexgl
#!/bin/sh
Xgl -fullscreen :1 -ac -accel glx:pbuffer -accel xv:pbuffer & sleep 2 && DISPLAY=:1
# Gnome:(como usamos Gnome pues dejamos esta línea que sigue)
exec gnome-session

Kde
$> sudo gedit /usr/bin/startkdexgl
#!/bin/sh
Xgl :1 -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer & DISPLAY=:1
exec startkde

Xfce4
$> sudo gedit /usr/bin/startxfce4xgl
#!/bin/sh
Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:pbuffer &
sleep 4
export DISPLAY=:1
exec xfce4-session

Luego le otorgamos permisos de ejecucion
$> sudo chmod 755 /usr/bin/start*xgl

Sesión de Arranque
Gnome
$> sudo gedit /usr/share/xsessions/gnomexgl.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Gnome-XGL
Exec=/usr/bin/startgnomexgl
Icon=
Type=Application

Kde
$> sudo gedit /usr/share/xsessions/kdexgl.desktop
[Desktop Entry]
Encoding=UTF-8
Name=KDE-Xgl
Comment=Start an Xgl Session
Exec=/usr/bin/startkdexgl
Icon=
Type=Application

Xfce4
$> sudo gedit /usr/share/xsessions/xfce4xgl.desktop
[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/bin/startxfce4xgl
TryExec=startxfce4
Name=XFCE4-Xgl

Luego le otorgamos permisos de ejecucion
$> sudo chmod 755 /usr/share/xsessions/*xgl.desktop

3.- Instalar Compiz Fusion y a probrar
Hasta aqui la configuracion ha sido casi idéntica a Beryl, a partir de aquí, si tienes beryl, es hora de decirle adios :'(

Desinstalado Beryl y otras versiones de compiz.

$> sudo apt-get --purge remove beryl* emerald* compiz* libcompiz*

Comentar en el sources del apt los repositorios de beryl y/o compiz y/o treviño. Agregar los nuevos repositorios para Compiz Fusion

$> sudo gedit /etc/apt/sources.list
#Beryl Treviño unstable Repo for beryl
#deb http://download.tuxfamily.org/3v1deb feisty eyecandy suspend2

deb http://ppa.dogfood.launchpad.net/amaranth/ubuntu feisty main restricted universe multiverse

Actualizar lista de paquetes, e instalar Compiz Fusion
$> sudo apt-get update;
$> sudo apt-get install compiz-core libdecoration0 compiz compizconfig-settings-manager compiz-kde emerald emerald-themes

Ejecutar Compiz Fusion
Reiniciamos el PC elegimos en session, Gnome-XGL o KDE-Xgl o Xfce4-XGL

Presionamos la tecla Alt+F2
y saldra un diálogo para ejecutar un comando, escribimos
compiz --replace

Puede que en kde y xfce no se vea el decorador de ventanas, asi que ejecutamos nuevamente Alt+F2 y escribimos
emerald --replace

Adicionalmente en Gnome puede que no se vean bien los controles e íconos presionamos Alt+F2 y escribimos
gnome-settings-daemon

Finalmente si queremos personalizar el comportamiento y los efectos de compiz fusion buscamos en la lista de programas CompizConfig Settings Manager o ejecutamos Alt+F2 y escribimos
ccsm

En el siguiente post escribire la guía de personalización de Compiz Config, cualquier duda publiquen su comentario.

martes, junio 19, 2007

Guía de LAMP (Linux Apache PHP MySQL) para torpes III - El Editor Quanta

Vamos ahora a familiarizarnos con el editor quanta para la programación de nuestros scripts.
Para esto abrimos el editor quanta desde el menu de inicio->desarrollo->Quanta
o abrimos una consola y ejecutamos
$> quanta
Lo que vamos a hacer ahora es configurar las opciones del editor, para esto vamos a la opción Settings->Configure Editor
luego aprecerá un diálogo para configurar las opciones.
Las opciones que se configuran son:
Appareance:
- Quitar Dynamic word wrap (Opcional)
- Show line numbers
Editing:
- Quitar Show tabulators
- Tab width: 4
Open Save:
- Quitar Backup on Save-> Local files

Configurar la documentación de php en quanta.
Bajamos de la página oficial de php el manual en múltiples archivos en html
http://www.php.net/get/php_manual_es.tar.gz/from/a/mirror
Luego desempaquetamos el manual en el directorio de documentación de quanta

$> tar -zxvf php_manual_es.tar.gz
$> sudo mv html/ /usr/share/apps/quanta/doc/php

Configurar el depurador de php en quanta
Esta parte es un poco avanzada y ya no para tan torpes, pero un debugger es una muy buena herramienta para programar sin errores; algo que muchos programadores de PHP obvian al momento de hacer sus aplicaciones. Vamos a configurar quanta con soporte a DBG y xampp con soporte a Xdebug que es una extensión nativa de php para depurar los scripts.

1.- Instalar el DBG para quanta
$> sudo apt-get install kdewebdev-dbg

2.- Instalar el paquete XAMPP Development package
lo bajamos de la página de xampp
http://www.apachefriends.org/en/xampp-linux.html
y lo descomprimimos en el opt
$> sudo tar -zxvf xampp-linux-devel-1.6.2.tar.gz -C /opt

3.- Instalar los paquetes para compilar xdebug
$> sudo apt-get install gcc autoconf make automake bison flex g++ libtool re2c

4.- Bajamos la última versión de xdebug de http://xdebug.org/install.php y compilamos

$> tar -zxvf xdebug-2.0.0RC4.tgz
$> cd xdebug-2.0.0RC4
$> phpize
$> ./configure --with-php-config=/opt/lampp/bin/php-config --enable-xdebug
$> make
$> sudo make install

5.- habilitar extensión en el php.ini y agregar al final
$> sudo gedit /opt/lampp/etc/php.ini
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"

Reiniciar XAMPP
$> sudo su -
$> lampp restart

Verificamos la instalación de Xdebug en XAMPP, abrimos en el navegador la dirección
http://localhost/xampp/phpinfo.php
y en la parte donde sale powered by Zend 2 se ve el añadido "with Xdebug v2.0.0RC4"

Cerramos y volvemos a abrir el quanta y ya estamos listos para hacer nuestro primer proyecto en LAMP con un entorno de debug incluido, esto lo veremos en el próximo tutorial

miércoles, mayo 16, 2007

Guía de LAMP (Linux Apache PHP MySQL) para torpes II - Entorno y Herramientas

Bien asumimos, que hemos instalado Linux y XAMPP y ya pasamos todos los puntos del 1er tutorial, ha llegado el momento de preocuparnos por el entorno de ejecución y las herramientas de desarrollo.

El Entorno de Ejecución.
En Linux las variables de entorno juegan un papel crucial para ejecutar comandos y definir variables que son asumidas por los procesos. Para nuestro caso lo mas importante es definir en la variable de entorno $PATH, que es la variable que le indica al sistema donde estan los directorios de los archivos ejecutables. En linux no interesa la extension de un archivo para que sea ejecutable, basta que tenga permisos de ejecución.
Para ver el $PATH actual basta ejecutar
$> echo $PATH

Para modificar permanentemente el valor del $PATH escribimos ese valor en el archivo /etc/profile y eso es valido para cualquier distribución

$>sudo su -

Con esto accedemos como root y ya no necesitamos poner sudo al inicio

$> echo "export PATH=/opt/lampp:/opt/lampp/bin:\$PATH" >> /etc/profile


Cerramos la sessión de escritorio y volvemos a entrar para ver los cambios en la consola

$> echo $PATH

Luego ya podemos ejecutar el comando lampp (administracion de servicios), php (interprete de consola), pear (administracion de librerias de php) y mysql (consola de comando de mysql)
$> sudo su -
$> lampp start

$> php -i
$> pear list
$> mysql
mysql> select version();
mysql> quit;

Ahora hay un detalle, cada vez que reiniciamos nuestra pc tenemos que estar arracando el XAMPP, para evitar esto basta poner la ejecucion de XAMPP en el archivo /etc/rc.local
$>sudo su -
$> echo "/opt/lampp/lampp start" >> /etc/rc.local

de esta forma cada vez que reiniciemos la maquina se iniciará automáticamente nuestro LAMP

Herramientas de Desarrollo
Para aprender a programar, no hay mejor forma que escribiendo código, y para esta ardua tarea la mejor herramienta para PHP en Linux es quanta, no viene instalado por defecto así que manos a la obra.

$> sudo apt-get update
$> sudo apt-get install quanta kdewebdev kfilereplace kimagemapeditor kommander kompare tidy

Para los usuarios de otras distribiciones verificar por los nombres de paquetes.

Una vez que hemos instalado nuestra herramienta de desarrollo, crearemos un directorio donde pondremos y probaremos nuestros ejemplos de código
$> sudo mkdir /opt/lampp/htdocs/tutolamp
$> sudo chmod 777 /opt/lampp/htdocs/tutolamp
con esto le estamos dando permisos totales de escritura en el directorio para poder grabar nuestros ejemplos desde quanta. En el siguiente tutorial nos familiarizaremos con el uso de quanta y nuestros primeros scripts.

Guía de LAMP (Linux Apache PHP MySQL) para torpes I - Inicio

Una de mis principales ofuscaciones cuando he dictado cursos de LAMP, es que; los alumnos si bien llevaban las clases en Linux, cuando estaban en sus casas o trabajos, usaban winbugs y no veian Linux hasta la clase siguiente, bueno esta es una guía para aquellos usuarios "torpes" en Linux, que saben que es el mejor sistema operativo para programar, pero le tienen miedo por fama de ser complicado o diferente. Ubuntu es una distribución que ha facilitado enormemente las tareas de escritorio, haciendolo incluso mas sencillo que Window$.
Bien empecemos.
Primero y antes que nada tienes que Instalar Ubuntu Linux, de preferencia y muy recomendada la última versión, ¿Qué no sabes instalar o le tienes miedo a Ubuntu? aquí unos links para que instales y pases este crucial punto.
http://www.guia-ubuntu.org/index.php?title=Portada
http://tuxhuellas.com/2007/04/22/introduccion-a-ubuntu-704/

Segundo es necesario instalar Apache, PHP y MySQL.
Antes que nada tienes que perderle miedo a la consola
en Gnome accedes a Aplicaciones->Accesorios->Terminal (Gnome Terminal)
en KDE Inicio->Sistema->Programa de Terminal (Konsole)

Luego viene la instalación propiamente dicha y hay varias formas para lograr esto.
La primera y mas recomendada en entornos de producción es hacerlo con los paquetes que tiene la propia distribución de Linux; en Ubuntu sería
$> sudo apt-get install php5 mysql-server php5-mysql php5-gd (No ejecutar para este manual)

La segunda es por código fuente, pasamos de este punto para un post mas avanzado.

La tercera y la que usaremos para este turorial es XAMPP
Es una versión de Apache, PHP y MySQL precompilada con muchas extensiones y lista para usar en el /opt solo hay que descomprimir el archivo y ya esta. Lo mejor de todo es que funciona en la mayoría de distribuciones de Linux y se puede trasladar todo el entorno de trabajo comprimiendo solo la carpeta /opt/lampp. Comenzemos bajando la última versión de xampp
de http://www.apachefriends.org el link directo es
http://sourceforge.net/project/showfiles.php?group_id=61776&package_id=60248

una vez que lo bajamos descomprimimos el archivo en el /opt
$> sudo tar -zxvf xampp-linux-XX.YY.ZZ.tar.gz -C /opt
XX.YY.ZZ es la version que bajamos, recuerda que si has bajado con firefox, por defecto lo baja en el Desktop, entonces el comando seria $> sudo tar -zxvf Desktop/xampp-linux-XX.YY.ZZ.tar.gz -C /opt

Luego ejecutamos xampp para arrancar Apache PHP y MySQL
$> sudo /opt/lampp/lampp start

Abrimos nuestro navegador firefox y ponemos la dirección http://localhost y ya tenemos
las últimas versiones de Apache, PHP y MySQL para programar. ¿fácil no?, bien pero ustedes dirán aún no he programado nada. Tranquilo; empezaremos por el clásico Hola Mundo

$> sudo gedit /opt/lampp/htdocs/holamundo.php
  1. <?php
  2. echo "hola mundo";
  3. ?>


Guardamos el archivo y abrimos en el navegador http://localhost/holamundo.php

En el siguiente post preparemos el entorno y herramientas de desarrollo para sacarle jugo a nuestro LAMP.

Nota: Para los que no usan Ubuntu, basta con acceder como root y ejecutar todos los comandos sin el sudo al inicio