Apache, MySQL, PHP y otros imprescindibles para mi servidor CentOS 6.6

Acabo de instalar CentOS 6.6 en mi servidor, y ahora ¿qué?

Primer login

Tras instalar CentOS 6.6 minimal, nos encontramos con un terminal de login sin entorno gráfico. Sólo tenemos un usuario (root) así que haremos login usando el password que hemos indicado durante la instalación.

Conexión a internet

Una vez dentro, podemos comprobar que no tenemos conexión a internet, ni con el cable de red contectado:

[root@server ~]# ping www.google.com
ping: unknown host www.google.com

Veamos si están detectadas las tarjetas ethernet, antes de continuar:

[root@server ~]# ifconfig -a
eth0  Link encap:Ethernet HWaddr 12:34:56:67:89:01 
      BROADCAST MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
      Interrupt: 16

eth1  Link encap:Ethernet HWaddr 12:34:56:67:89:01 
      BROADCAST MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
      Interrupt: 17

lo    Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING MTU:65536 Metric:1
      RX packets:12 errors:0 dropped:0 overruns:0 frame:0
      TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:836 (836.0 b) TX bytes:836 (836.0 b)

Perfecto, el sistema nos muestra todas las intefaces disponibles. En este caso eth0 y eth1, así como localhost. Yo he conectado el cable RJ45 en el interfaz eth0, así que vamos a intentar autoconfigurarlo mediante DCHP. Tan sencillo como lanzar dhclient.

[root@server ~]# dhclient
... cuando termine, tras algunos segundos ...
[root@server ~]# ifconfig eth0
eth0   Link encap:Ethernet HWaddr 12:34:56:67:89:01 
       inet addr:192.168.1.123 Bcast:192.168.1.255 Mask:255.255.255.0
        inet6 addr: 0123::4567:89ab:cdef:0112/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
        RX packets:153 errors:0 dropped:0 overruns:0 frame:0
        TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000 
        RX bytes:47802 (46.6 KiB) TX bytes:1312 (1.2 KiB)
       Interrupt: 16

Actualizar el sistema

Perfecto, siguiente paso. Vamos a actualizar el sistema. Aunque acabo de instalarlo, seguramente haya actualizaciones de seguridad disponibles, así que vamos a ello.

[root@server ~]# yum -y update

... tras algunas comprobaciones nos hará un resumen de las actualizaciones disponibles ...

Transaction Summary
==========================================
Install        1 Package(s)
Upgrade       51 Package(s)

Total download size: 83 M

Escribimos y para proceder descargar e instalar las actualizaciones disponibles. Es posible que algún paquete requiera de alguna interacción, así que mejor estar delante del monitor.

Instalamos Gnome

Si, es verdad, un servidor no requiere un entorno gráfico, y aunque siempre entro mediante SSH, me resulta muy cómodo tenerlo Gnome listo en caso de necesitar usarlo.

El siguiente comando instalará todo lo necesario para disponer de X Window y Gnome

[root@server ~]# yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"

... tras algunas comprobaciones comenzará la instalación ...
Transaction Summary
==========================================
Install 295 Package(s)

Total download size: 912 M

Esto deberá descargar 1GB aproximadamente. Usando el parámetro -y forzmos a responder siempre «si» en caso de pregunta durante la instalación.

Cuando acabe, tendremos que configurarlo para que se inicie en modo gráfico cada vez que arranque (si queremos). Hacer esto es tan sencillo como modificar la línea «id:3:initdefault:» por «id:5:initdefault:» en el fichero inittab:

[root@server ~]# vi /etc/inittab

Si no te gusta vi, puedes descargar nano: yum -y install nano

Ahora sólo queda reiniciar el sistema usando el comando

[root@server ~]# init 6

Al reiniciar, entraremos en un asistente, en el que nos guiará para crear usuarios y configurar la fecha del sistema/NTP de manera muy sencilla.

Vaya, otra vez sin conexión a internet?

Pues sí, debemos lanzar dhclient cada vez que queramos autoconfigurar la red. Aunque, ya que hemos instalado Gnome, configurar esto para que se ejecute al inicio de manera automática es muy sencillo:

  1. Editamos las conexiones de red,
  2. Seleccionamos eth0 (o el que necesites)
  3. Seleccionames el checkbox de conectar automáticamente.

eth0-auto

Para que nuestro servidor se convierta de verdad un servidor,deberemos instalar Apache, MySQL y PHP.

Instalar Apache

Facilísimo, sólo es necesario ejecutar:

[root@server ~]# yum install httpd

Ya está instalado! Ahora sólo tenemos que levantar el servicio:

[root@server ~]#  service httpd start

Y para comprobar que funciona correctamente, podemos instalar y ejecutar nuestro navegador favorito y comprobar la web por defecto:

[root@server ~]# yum -y install firefox && firefox 127.0.0.1

apache-installed

Instalando MySQL

Instalar MySQL también será muy sencillo. El siguiente comando instala y levanta el servicio MySQL.

[root@server ~]# yum -y install mysql-server && service mysqld start

Por seguridad, vamos a establecer una contraseña de root para MySQL y a eliminar usuarios anónimos:

[root@server ~]# /usr/bin/mysql_secure_installation

... tras responder a unas sencillas preguntas ... 

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Instalando PHP

Instalar PHP es igual de sencillo que instalar Apache y MySQL.

[root@server ~]# yum install -y php php-mysql pgp-gd php-mbstring

Deberemos reiniciar Apache, para que cargue PHP.

[root@server ~]# service httpd restart

Vamos a ver si ha funcionado. Crearemos un pequeño archivo PHP que nos mostrará información de la versión actual y la configuración.

[root@server ~]# echo "<?php phpinfo();" > /var/www/html/phpinfo.php && firefox 127.0.0.1/phpinfo.php

Si la página carga correctamente, ya está listo.

Configurar inicio automático de MySQL y Apache

Para que al reiniciar la máquina se inicie apache y mysql, deberemos ejecutar:

[root@server ~]# chkconfig httpd on && chkconfig mysqld on

Problemas que puedes encontrar

Problem: Funciona todo, pero no puedo acceder desde una máquina remota a la página de prueba de Apache.

Es probable que debas configurar iptables.

[root@server ~]# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
[root@server ~]# /etc/init.d/iptables save

 

Problem: Necesito otra versión de PHP, la 5.3.3 que se incluye en CentOS 6.6 no me sirve.

Yo he usado los repositorios de Remi, siguiendo este tutorial: https://www.mojowill.com/geek/howto-install-php-5-4-5-5-or-5-6-on-centos-6-and-centos-7/

Otras aplicaciones que pueden resultar útiles

[root@server ~]# yum -y install gedit nano thunderbird gnome-disk-utility gnome-utils wget gcalctool evince libreoffice libreoffice-langpack-ca libreoffice-langpack-es libreoffice-langpack-en unzip zip p7zip transmission git-gui git rsync curl filezilla htop links nmap telnet 

Bibliografía

http://wiki.centos.org/FAQ/CentOS6

*ttp://www.sysads.co.uk/2014/01/installing-gnome-gui-centos-6-5/

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6

http://stackoverflow.com/a/19569280