Skip to main content

Cómo instalar LAMP en Ubuntu Server 12.04 LTS

Lamp, acrónimo de Linux, Apache, Php y MySql, es la combinación de estos componentes que se dan en un tipo de servidor web. Probablemente el tipo de servidor web más popular en Internet. Cada uno de estos componetes trabajan en conjunto para poder servir páginas web dinamicas.

La forma más sencilla de instalar estos componentes en un servidor Ubuntu Server 12.04 LTS es sin duda mediante el comando tasksel. Este comando aglutina distintas tareas de instalación y entre ellas la de servidor LAMP.

Para instalar LAMP en un Ubuntu Server 12.04 LTs tan solo necesitamos abrir un terminal. En la línea de comando escribir o copiar la siguiente orden:

sudo tasksel lamp-server

Inmediatamente empezarán a descargarse los paquetes necesarios. No deberemos hacer nada hasta que empieza a instalarse el servidor de bases de datos MySQL. En ese paso nos pedirá la contraseña del usuario que será root en la base de datos. Podemos generar una contraseña fuerte con el servicio gpassword.com para el usuario root y que guardaremos en lugar seguro.

Después, simplemente podemos probar la configuración del servidor accediendo a él. Si el servidor esta en Internet, podemos usar su URL o su IP poniendola en la barra de direcciones de cualquier navegador. Si la instalación es en el equipo local podemos usar como URL localhost o como IP 127.0.0.1. Si todo quedó instalado correctamente aparecerá en el navegador el mensaje “it works” correspondiente a servir el documento index.html alojado en /var/www.

Si queremos probar el componente PHP podemos crear en el directorio un archivo llamado index.php con el siguiente contenido:

<?php
phpinfo();
?>

Y para probarlo añadimos a la ip o la url en la barra de direcciones del navegador index.php. Quedando por ejemplo localhost/index.php. Si php funciona nos mostrará información del interprete PHP.

Para terminar apuntaremos algunos datos.

Apache2 guarda sus archivos de configuración en /etc/apache2 siendo el más importante apache2.conf. El comando para ver el estado del servicio apache2 es:

sudo service apache2 status

Obviamente para parar, iniciar o reiniciar el servicio o recargar la configuración cambiaremos ‘status’ por stop, start, restart o reload, respectivamente.

De forma similar el servicio MySQL se configura desde el directorio /etc/mysql, siendo el archivo my.cnf el más importante. El comando para ver el estado del servidor es:

sudo service mysql status

De igual modo para parar, iniciar o reiniciar el servicio, cambiaremos ‘status’ por stop, start o restart, respectivamente.

El interprete PHP cuando es usado por apache guarda su configuración en el directorio /etc/php5/apache2. Siendo el archivo más importante php.ini.

Reinstalación de Mysql en Ubuntu Server 12.04 LTS

Me he encontrado en una situación en la que mi servidor Mysql dejaba de ser utilizable, por lo que he considerado reinstalarlo. Pero me he encontrado que no bastaba con desinstalar los paquetes y volver a instalarlos para tener una instalación de nuevo operativa.

La receta que al final funcionó consiste en:

Desinstalamos todo con:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo apt-get autoremove && sudo apt-get autoclean

Ahora deberíamos haber limpiado los restos de la instalación anterior podemos volvemos a instalar:

sudo apt-get install mysql-server

Seguramente no nos ha pedido generar contraseña para root.

Generamos las bases de datos que mysql requiere para su funcionamiento:

sudo mysql_install_db

Y para configurar correctamente mysql, paso en el que podremos dar contraseña a root, usaremos:

sudo mysql_secure_installation

Comando que permite preconfigurar mysql para preproducción y que deberíamos usar siempre tras instalar mysql.

Comprobar el rendimiento (Benchmark) de un sistema en Linux

Habrá ocasiones en las que queramos comprobar el rendimiento de un PC o de una máquina virtual. En los repositorios podemos encontrar una poderosa aplicación que nos permite precisamente hacer esto. Su nombre es sysbench y podemos instalarla desde consola en sistemas debian – ubuntu linux con la siguiente orden:

sudo apt-get install sysbench

Test de CPU

Para comprobar el rendimiento de la CPU basta con el siguiente comando:

sysbench --test=cpu --cpu-max-prime=20000 run

En este comando le indicamos que calcule 20000 números primos. Podemos indicarle un número mayor o menor para hacer más o menos precisa la prueba. El resultado del test nos muestra el tiempo que emplea en calcularlos.

Test de ficheros

En este test se comprueba el rendimiento de nuestro sistema de ficheros. Este test depende de 3 etapas. La primera preparamos los ficheros con los que haremos el test. Después haremos el test propiamente dicho. Y finalmente borraremos los ficheros de la prueba.

Creamos los ficheros con:

sysbench --test=fileio --file-total-size=100G prepare

Ejecutamos el test:

sysbench --test=fileio --file-total-size=100G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run

Y finalmente borramos los ficheros:

sysbench --test=fileio --file-total-size=100G cleanup

En esta prueba el valor relevante es la velocidad de acceso indicado en KB/sec. Señalar que se usa un valor alto de 100Gb del disco para evitar el uso de la cache del sistema. Pero podemos usar otros valores que consideremos oportunos. El tiempo de ejecución de la prueba sería de 300 segundos aunque podemos cambiarlo por lo que consideremos.

Test de BB.DD.

Esta prueba me parece muy valiosa ya que pone a prueba la base de datos MySQL. Al igual que en la prueba del sistema de ficheros aquí requerimos de tres pasos. Primero la creación de la base de datos. Luego la prueba propiamente dicha. Y finalmente el borrado de la base de datos usada. Aquí deberemos aportar los datos de acceso a la base de datos, como usuario (en el ejemplo root) y su contraseña.

Creamos la bb.dd.:

sysbench --test=oltp --oltp-table-size=1000 --mysql-db=test --mysql-user=root --mysql-password=contrasena prepare

Después nos disponemos a hacer la prueba con el comando:

sysbench --test=oltp --oltp-table-size=1000 --mysql-db=test --mysql-user=root --mysql-password=contrasena --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

Y borramos la base de datos con:

sysbench --test=oltp --mysql-db=test --mysql-user=root --mysql-password=contrasena cleanup

En esta prueba el valor relevante es el número de transacciones totales y cuantas realiza el servidor en un segundo.

Conclusiones

Con la aplicación podemos valorar el rendimiento de nuestro sistema o mejor, el de un servidor remoto, sea físico o virtualizado. Esta herramienta permite también probar otros componentes del sistema, pero estos, la cpu, disco y base de datos, creo son los más interesantes para un servidor de aplicaciones web.

Debemos recordar que si el sistema que pretendemos poner a prueba esta en producción, con la carga de otras funciones los resultados no serán nada concluyentes.

Disponemos de la documentación accesible en el manual del sistema mediante el cual podemos conocer la totalidad de opciones disponibles en la herramienta.

man sysbench

Los comandos mostrados han sido probados en un pequeño servidor virtual con Ubuntu Server 12.04.