domingo, octubre 23, 2005

Iniciando MySQL en Linux

Dejando de lado el tema de las elecciones de hoy -y de la boludez de la gente que votó a Macri-, me ví hace un tiempo en la situación de querer instalar un servidor web con PHP y MySQL bajo Linux.

La instalación en si no es complicada, no hay mas que hacer que seleccionar ciertos paquetes -PHP, Soporte MySQL para PHP, Apache y MySQL- en el gestor de paquetes de la distribución -o bien en http://rpm.pbone.net- y todo debería estar funcionando.

Si la instalación se hace de esa manera, lo mas probable es que los archivos PHP sean gestionados automaticamente por Apache y sean parseados.
En caso que no sea de esa manera, tenemos que editar el archivo httpd.conf y agregarle dos lineas:

una que carga al módulo de PHP -en caso que usemos PHP como módulo:
LoadModule php4_module ruta/a/libphp4.so

y otra linea que le indique a Apache qué tipos de archivo tienen que ser tratados por ese módulo:
AddType application/x-httpd-php .php .php3 .php4

Esta línea indica a Apache que los archivos .php, .php3 y .php4 tienen que ser interpretados por PHP antes de ser enviados al cliente.

Es algo recomendable agregar tambien el tipo .html y .htm ; para poder poner dentro de los archivos HTML código PHP; de manera que el visitante no sabe que ve un PHP.

Una vez que funciona Apache junto con PHP, lo que tenemos que lograr es hacer funcionar el servidor de base de datos MySQL.
En un comienzo, no es fácil.

Sin tener iniciado el daemon, hay que iniciarlo de la siguente manera:

mysqld -Sg
o bien
mysqld --skip-grant-tables

Luego, creamos las tablas iniciales en MySQL corriendo:

mysql_install_db

¿Qué hace ésto? Carga al servidor MySQL sin leer la tabla de permisos. Quiere decir que cualquier usuario es administrador, y de hecho, cualquier usuario puede entrar sin indicar contraseña.
Una vez iniciado de esa manera, conectamos el cliente MySQL mediante un shell tipeando:

mysqladmin -u root password 'nuestro_pass'

Eso, lo que hace es definir los datos del usuario root. Una vez hecho esto, podemos cerrar el daemon y volver a ejecutarlo sin el parametro skip-grant-tables, para que haya que poner, si o si, el password.


Una vez hecho esto, podemos comenzar a operar comunmente el servidor.
Es muy recomendable crear, por lo menos, un usuario por cada base de datos que vayamos a usar; y que ese usuario solamente pueda hacer ciertas consultas, y no tenga permisos para realizar alter tables, drops, etc.