23 de Noviembre, 2005

MySQL y el chroot de Apache otra vez

Estaba echando una mano a Pedro para ajustar un poquito su servidor.

Como es habitual no dispone de una máquina muy potente (reciclando estamos) y el rendimiento de MySQL si atacamos al servidor vía TCP/IP es inferior que usando un socket local. No digo que vaya mal, pero hay que estar muy fino si no hay recursos y queremos hacer muchas cosas ;).

Pues bien, ojeando mi anotación sobre MySQL y el chroot de Apache, no funcionaba como se esperaba :(.

Hemos hecho las actualizaciones necesarias en el script para rc.local (como el binario de MySQL, que ha cambiado el nombre), pero lo que fallaba era el tema de introducir el socket dentro de la jaula chroot donde corre Apache.

El enlace se realizaba bien pero el servidor de bases de datos nos daba error al realizar la conexión :(.

# mysql -u root -p -S /var/www/var/run/mysql/mysql.sock
Enter password:
ERROR 2002: Can't connect to local MySQL server\
 through socket '/var/www/var/run/mysql/mysql.sock' (61)

Buscando y buscando solo encontrábamos referencias al mismo código, que no funcionaba. Pues resulta que el directorio donde se hace el enlace simbólico debe pertencer al usuario sin privilegios que corre MySQL :o (no he encontrado un enlace donde explique por qué).

He actualizado la anotación antes mencionada y ahora refleja las novedades que nos hemos encontrado (para OpenBSD 3.8, que viene con MySQL 4.0.24).

Anotación por Juan J. Martínez, clasificada en: openbsd.

Hay 2 comentarios

Gravatar

y evitar los enlaces. Prueba a usar la opción bind del mount, que te monta un directorio en uso sobre otro. Yo lo he usado en la jaula del postfix y va muy fino.

saludos,
n1mh

por n1mh, en 2005-11-24 12:16:39

Gravatar

La opción bind no existe en el mount de OpenBSD, que es el sistema del que se habla en la anotación :).

Buscando... creo que se podría usar mount_null para conseguir el mismo efecto, pero desde hace 5 meses lo han suprimido del sistema porque era más un hack peligroso (tic-tac-tic-tac...) y sin mantenimiento que otra cosa.

Para estos casos, meter en el chroot el socket es lo más indicado.

por Juanjo, en 2005-11-24 12:33:07

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: