domingo, 18 de mayo de 2008

Linux+Apache+Mysql+Php en distros Red Hat

En este tutorial explico clara y brevemente todo lo necesario a la hora de montar un servidor LAMP (Linux+Apache+Mysql+Php) en sólo 20 minutillos sobre distros Red Hat y derivados como Fedora o CentOS.

Quizás este titular esta un poco puesto a la ligera ya que en el tutorial solo explico como instalar todos los componentes necesarios para nuestro servidor, pero no como configurarlo, así que una vez montado ya será tarea vuestra configurar apache de forma segura o quizás también lo podréis encontrar próximamente en otro tutorial en el Despacho de los Jorges.

1 Instalación de Apache

1.1 Instalación a través de yum

Si se utiliza CentOS o White Box Enterprise Linux y Fedora sólo basta ejecutar lo siguiente:

$yum -y install httpd

(Nota. El parametro '-y' le indica a yum q no nos pida confirmación y lo ejecute directamente, si preferimos ser más cautelosos suprimelo)

Si se desea que Apache incluya soporte para:

Php y Mysql

$yum -y install php php-mysql

Perl

$yum -y mod_perl

Python

$yum -y mod_python

SSL

$yum -y mod_ssl

1.2 Instalación a través de Up2date

Si utilizas Red Hat Enterprise Linux sólo basta ejecutar lo siguiente:

$up2date -i httpd

(Nota. El parámetro '-i' indica install no es equivalente al -y de yum no confundiros).

Si se desea igual que antes soporte para Php/Mysql, Python o SSL bastará con ejecutar (Ahora lo incluiremos todo en una línea)

$up2date -i php php-mysql mod_perl mod_python mod_ssl

2 Arrancando Apache

Apache es un servicio que por fortuna sólo es necesario instalar e iniciar. No requiere modificaciones adicionales para su funcionamiento básico. Para añadir el servicio a los servicios que inician junto con el sistema, basta con ejecutar:

$/sbin/chkconfig httpd on

Para iniciar el servicio por primera vez, sólo ejecuta:

$/sbin/service httpd start

ó

$service httpd start (si eres root)

Si el servicio ya está trabajando, también puedes utilizar reload para que Apache vuelva a leer la configuración sin interrumpir el servicio

$/sbin/service httpd reload

Pero cuando instalas un módulo nuevo apache necesita cargarlo para ello lamentablemente debemos interrumpir el servicio aunque por un espacio muy reducido de tiempo usando:

$/sbin/service httpd restart

Bueno pues ya tenemos nuestro Apache (Ultima versión del repositorio) instalado con soporte para php si instalamos el módulo como se explicó arriba, por lo que ahora solo nos queda instalar el Mysql.

3 Instalación de Mysql

Si utilizas Red Hat Entreprise Linux, para instalarlo usaremos:

$up2date -i mysql mysql-server

Si por el contrario no dispones de up2date sino que usas sistemas White Box Enterprise Linux o bien clones de Red Hat como CentOS, ejecuta:

$yum -y install mysql mysql-server

Con el comando anterior descargarás la versión más actualizada de Mysql así como todas las dependencias de bibliotecas u otros software necesarios para su correcto funcionamiento.

4 Arrancando Mysql

La manera más apropiada de iniciar el servicio mysqld será ejecutando el siguiente mandato:

$/sbin/service mysqld start

Procederemos a agregar a Mysql al los niveles de corrida 3, 4 y 5 de modo que la siguiente vez que se tenga que iniciar el equipo Mysql se encuentre habilitado.

$/sbin/chkconfig --level 345 mysqld on

4 Asignar password al usuario root de Mysql

Cuando instalamos Mysql, esté deja la tarea de asignar el password de root al administrador de la máquina. Por este motivo es muy importante que no se nos olvide nunca este paso.

Para entrar en el MiniShell de Mysql cuando lo arracamos por primera vez como usuario root basta con ejecutar:

$mysql

Ahora comprendereis la importancia que tiene asignar password de forma inmediata.

Primero podemos indicarle a mysql que nos liste todas las base de datos que albergar con el comando:

> show databases;

Podemos comprobar que ahi una llamada mysql, la cual usaremos para cambiar su configuración.

Para selecionar la base de datos mysql, ejecutamos:

> use mysql;

Una vez seleccionada la base de datos podemos listar todas las tablas que contiene con el siguiente comando:

> show tables;

Podemos ver como existe una tabla User la cual contiene la lista de usuarios y sus password codificados, para visualizar esta información ejecutamos:

> select Host, User, Password from user;

Como podeis comprobar el usuario root no tiene password asignado, ahora procederemos a asignarle uno de la siguiente forma:

> update user set Password=PASSWORD('tu_password') where user='root';

Si ahora volvemos a visualizar la tabla user comprobaremos el usuario tiene asignado un nuestro password de forma codificada por seguridad.

A continuación para que nuestros cambios tengan efecto ejecutamos:

> flush privileges;

Y tras ello salimos del MiniShell

> quit

Ahora para poder ingresar en Mysql no bastará con mysql a secas, sino que deberemos especificarle el usuario y el password de la siguiente manera:

$mysql -u root -p

Y a continuación nos pedirá que introduzcamos el password. tras lo cual obtendremos de nuevo acceso al Shell de Mysql.

No hay comentarios: