martes, 6 de agosto de 2013

Cómo montar un servidor LAMP en CentOS

Según Wikipedia, LAMP es una combinación de aplicaciones libres. Este acrónimo hace referencia a Linux como sistema operativo, Apache como servidor web, MySQL como servidor de base de datos y PHP, Python o Perl, según se prefiera, como lenguaje de scripting. Todos y en conjunto producen como resultado un servidor web de propósito general.

Aunque existen muchos tutoriales por ahí, la mayoría de ellos complicados, la intención de éste es hacerlo de la forma más sencilla y utilizando los paquetes disponibles en los repositorios CentOS 6.4 a la fecha.

Así que manos a la obra...
INSTALAR EL SISTEMA OPERATIVO 
CentOS 6.4 minimal en VirtualBox con una interfaz de red, eth0 como Bridged a la LAN para ver el servidor web en la red local (192.168.24.2), y todo lo demás por defecto. Al finalizar la instalación y loguearnos por primera vez en el servidor cambiamos el hostname del mismo, deshabilitamos iptables y selinux para evitar inconvenientes, hasta nuevo aviso.
[root@localhost ~]# sed -i 's/HOSTNAME=localhost.local/HOSTNAME=lampserver01.local/g' /etc/sysconfig/network 
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# iptables -F
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:  [  OK  ]
[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules:                           [  OK  ] 
iptables: Setting chains to policy ACCEPT: filter            [  OK  ] 
iptables: Unloading modules:                                 [  OK  ] 
iptables: Applying firewall rules:                           [  OK  ]
[root@localhost ~]# hostname lampserver01.mydomain.local
[root@localhost ~]# service network restart
Shutting down interface eth0:                [ OK ]
Shutting down interface loopback interface:  [ OK ]
Bringing up loopback interface:              [ OK ]
Bringing up interface eth0:                  [ OK ]
[root@localhost ~]# logout
Al regresar, configuramos la Interfaz de red para actualizar y descargar paquetes. Esta interfaz está NAT en la configuración de la máquina virtual, pero editaremos el script ya que no nos interesa que el dhclient nos genere el fichero resolv.conf.
[root@lampserver01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 
BOOTPROTO=none 
NM_CONTROLLED=no 
ONBOOT=yes
TYPE=Ethernet 
DEFROUTE=yes 
IPADDR=192.168.24.2
NETMASK=255.255.255.0
GATEWAY=192.168.24.2
Editamos el fichero resolv.conf para resolver nombres de Internet.
[root@lampserver01 ~]# vi /etc/resolv.conf
nameserver 8.8.8.8 
nameserver 8.8.4.4

[root@lampserver01 ~]# service network restart 
Shutting down interface eth0:                [ OK ]
Shutting down interface loopback interface:  [ OK ]
Bringing up loopback interface:              [ OK ]
Bringing up interface eth0:                  [ OK ]
ACTUALIZAR EL SISTEMA: Instalar paquetes necesarios, servicios y paquetes que nos hacen la vida más fácil.
[root@lampserver01 ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
[root@lampserver01 ~]# rpm -i http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm 
[root@lampserver01 ~]# yum update -y 
[root@lampserver01 ~]# yum install -y man mlocate bash-completion nmap nano wget screen
[root@lampserver01 ~]# yum install -y httpd mysql mysql-server php php-mysql
Algunas configuraciones de lugar.
[root@lampserver01 ~]# echo 'ServerName = lampserver01.local' >> /etc/httpd/conf/httpd.conf
[root@lampserver01 ~]# service httpd start
Starting httpd:                                            [  OK  ]
[root@lampserver01 ~]# service mysqld start
Starting mysqld:                                           [  OK  ]
[root@lampserver01 ~]# iptables -F 
[root@lampserver01 ~]# iptables -P INPUT ACCEPT 
[root@lampserver01 ~]# iptables -P FORWARD ACCEPT 
[root@lampserver01 ~]# iptables -P OUTPUT ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -p icmp -j ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -i lo -j ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
[root@lampserver01 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
[root@lampserver01 ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 
[root@lampserver01 ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited 
[root@lampserver01 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:   [  OK  ] 
[root@lampserver01 ~]# chkconfig iptables --level 345 on
[root@lampserver01 ~]# service iptables restart 
iptables: Flushing firewall rules:                            [  OK  ] 
iptables: Setting chains to policy ACCEPT: nat filter         [  OK  ] 
iptables: Unloading modules:                                  [  OK  ]
iptables: Applying firewall rules:                            [  OK  ]
Finalmente, lo que más hay que cuidar es la base de datos, por lo que haremos unas configuraciones finales a MySQL con el comando mysql_secure_installation, y seguimos las instrucciones. 

Además encendemos los servicios para que arranquen durante el inicio.
[root@lampserver01 ~]# chkconfig httpd --level 345 on
[root@lampserver01 ~]# chkconfig mysqld --level 345 on

Y nuestro LAMP server está listo:


3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Hola amigos.
    Tengo un problema que me va a volver loco.
    El asunto es que he desarrollado un formulario para el upload de imagenes, el codigo lo he probado en windows con "wamp" y funciona perfectamente. Hace 7 meses que estoy trabajando con Fedora-20 y tengo instalado el "LAMP", y la verdad que estoy muy contento. Pero cuando subo una imagen, no me aparece en la carpeta que le he asignado. Lo he probado todo y ya no se que hacer. Agradeceria cualquier informacion al respecto. Mi correo es: flamencogranaino@gmail.com
    Muchas gracias de antemano y felicidades por el blog, aporta mucho a los novatos en Linux.

    ResponderEliminar
    Respuestas
    1. Hola Jaime.

      Si has traído al Lamp la misa estructura de directorios entonces deberia funcionar. Pero hay algo en Fedora que no tienen otros sistemas operativos y es el SELinux habilitado.

      Debes verificar los permisos de ese directorio y también los logs de apache para ver qué está pasando.

      Un saludo.

      Eliminar