Cómo Instalar Linux, Apache, PHP, MySQL (LAMP) en Ubuntu 16.04
Se denomina «LAMP» a un grupo de software de código abierto que se instalan normalmente en conjunto en un servidor para alojar sitios y aplicaciones web dinámicas. En realidad, el término no es más que un acrónimo que representa un sistema operativo Linux con un servidor Apache, almacenamiento en una base de datos MySQL y contenido dinámico procesado con PHP. A continuación, te muestro cómo instalar LAMP en un servidor con Ubuntu 16.04 (Los pasos descritos en este tutorial funcionan además en Ubuntu 14.04, salvo algunos detalles que he especificado).
Requisitos previos
Primero que todo, debes tener una cuenta de usuario en un servidor con Ubuntu 16.04 con privilegios administrativos. Puedes aprender cómo hacer esto siguiendo los pasos del tutorial Configuración inicial del servidor de Ubuntu.
Instalar Apache
El servidor Web Apache es actualmente el más popular del mundo, lo que hace que sea una buena opción para alojar tus sitios web.
Apache se puede instalar fácilmente desde el gestor de paquetes de Ubuntu, apt. Un gestor de paquetes nos permite instalar softwares en el sistema operativo con mayor facilidad. En este caso utilizaremos el repositorio oficial de Ubuntu.
Para instalar Apache puedes comenzar escribiendo los siguientes comandos:
1 2 3 |
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install apache2 |
Recuerda que cuando antepones la palabra «sudo» estás solicitando privilegios administrativos para ejecutar los comandos que escribas a continuación. Por esto el sistema operativo te pedirá la contraseña antes de otorgarte los permisos.
Después de esto, ya tienes instalado el servidor web Apache.
Puedes comprobar que todo ha ido bien escribiendo la dirección IP pública de tu servidor en tu navegador web. Si no sabes cuál es la dirección IP pública de tu servidor puedes revisar el siguiente truco para encontrarla.
1 |
http://ip_publica_del_servidor |
Si todo ha ido según lo planeado podrás ver la página web de Apache por defecto en Ubuntu. Esta página está ahí con fines informativos y de pruebas. Deberías ver algo así:
Si puedes ver la página es porque has instalado tu servidor web correctamente.
Instalar MySQL
Una vez que tienes el servidor web configurado y corriendo es el momento de instalar MySQL. Este es un sistema de gestión de base de datos. Básicamente, se encarga de gestionar, organizar y facilitar el acceso a las bases de datos en tu servidor. Toda la información de tus sitios será guardada en una base de datos MySQL.
Utiliza nuevamente apt para adquirir e instalar el software:
1 |
$ sudo apt-get install mysql-server |
En Ubuntu 14.04 es necesario instalar adicionalmente el paqute libapache2-mod-auth-mysql:
1 |
$ sudo apt-get install mysql-server libapache2-mod-auth-mysql |
Fíjate que ya no es necesario ejecutar sudo apt-get update
antes del comando. Esto se debe a que ya lo habíamos ejecutado anteriormente al instalar Apache. La base de datos de paquetes de nuestro servidor ya debe estar actualizada, no obstante, es una buena práctica ejecutar el comando de vez en cuando para actualizar la base de datos de paquetes.
Durante la instalación, el servidor te pedirá que selecciones y confirmes una contraseña para el usuario «root» de MySQL. Esta es una cuenta administrativa en MySQL con privilegios administrativos. Esta cuenta es similar a la cuenta de «root» para el propio servidor (sin embargo, la que estamos configurando ahora es una cuenta específica de MySQL).
Una vez completada la instalación, debes ejecutar algunos comandos adicionales para configurar y asegurar tu servidor MySQL.
Configurar y asegurar la instalación de MySQL
En Ubuntu 14.04 debes decirle a MySQL que tiene que crear su propia base de datos para la estructura del directorio donde almacenará la información:
1 |
$ sudo mysql_install_db |
Esto no es necesario en Ubuntu 16.04, en caso de ejecutar el comando recibirá un error parecido a este:
1 2 3 |
root@dev1604:~# sudo mysql_install_db 2016-09-24 12:47:05 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 2016-09-24 12:47:05 [ERROR] The data directory needs to be specified. |
Después, debes ejecutar el script de seguridad para eliminar algunas configuraciones peligrosas por defecto y bloquear un poco el acceso al servidor de base de datos. Ejecuta el script escribiendo el siguiente comando:
1 |
$ sudo mysql_secure_installation |
Este script te pedirá introducir la contraseña establecida para la cuenta root de MySQL y luego te preguntará si quieres configurar el plugin VALIDATE PASSWORD
.
1 2 3 4 5 6 |
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: |
¿Qué significa esto que nos pide configurar el script de seguridad? Que el servidor MySQL solo aceptará aquellas contraseñas consideradas como seguras por el plugin VALIDATE PASSWORD, en caso de que la contraseña no cumpla con los requisitos de la validación será rechazado con un error.
En caso de responder «y» verás algo como esto:
1 2 3 4 5 6 7 |
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 |
Selecciona el nivel de seguridad asociado a las contraseñas teniendo en cuenta lo que te comenté anteriormente, donde 0 es el nivel más bajo y 2 es el más fuerte.
A continuación, te preguntará si deseas cambiar la contraseña de root. Si te gusta tu contraseña actual, escribe «n» de «no» en el indicador. Para el resto de las preguntas, basta con pulsar «y» y luego «ENTER» en cada pregunta para aceptar los valores predeterminados.
En Ubuntu 14.04 es muy parecido excepto que no te pide configurar configurar el plugin VALIDATE PASSWORD.
Instalar PHP
PHP es el procesador de código que te permitirá mostrar el contenido dinámico. Es utilizado, generalmente, para ejecutar secuencias de comandos; conectarse a las bases de datos MySQL para obtener información y entregar el contenido procesado al servidor web, para que este se encargue de mostrarlo.
Para instalar PHP ejecuta el siguiente comando:
1 |
$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql |
En Ubuntu 14.04 debes especificar la versión de php (los repositorios oficiales de esta versión emplean PHP v5.6):
1 |
$ sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql |
Por defecto Apache sirve primero los archivos .html
y luego el resto de los archivos. Sin embargo lo que se quiere es que primero sirva los archivos .php
.
Lo que debes hacer para cambiar la forma en que Apache sirve los archivos es lo siguiente:
Primero: Abre el archivo de configuración de Apache en un editor de texto. En nuestro caso utilizaremos el editor «nano»:
1 |
$ sudo nano /etc/apache2/mods-enabled/dir.conf |
Recuerda utilizar sudo
para adquirir los privilegios administrativos, de lo contrario no podrás editar el archivo. El contenido será muy similar a esto:
1 2 3 4 5 |
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet |
Segundo: Mueve el índice del archivo .php
a la primera posición después de la especificación del DirectoryIndex
, así:
1 2 3 4 5 |
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet |
Tercero: Guarda y cierra el archivo presionando CTRL-X
. Tienes que confirmar el guardado escribiendo Y
y luego pulsando ENTER
para confirmar la ubicación donde se va a guardar el archivo.
Después de esto debes reiniciar el servidor Apache para que los cambios surjan efecto. El comando para reiniciar Apache es el siguiente:
En Ubuntu 16.04:
1 |
$sudo systemctl restart apache2 |
En Ubuntu 14.04:
1 |
$ sudo service apache2 restart |
Instalación de módulos PHP
Para mejorar la funcionalidad de PHP, puedes instalar módulos adicionales. Para ver los módulos de PHP y bibliotecas disponibles ejecuta el siguiente comando:
En Ubuntu 16.04:
1 2 |
$ sudo apt-cache search php7.0- $ sudo apt-cache search php- |
Ubuntu 14.04:
1 |
$ sudo apt-cache search php- |
Los resultados son todos los componentes opcionales que se pueden instalar. Deberá mostrar algo como esto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
php-all-dev - package depending on all supported PHP development packages php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.0-cli - command-line interpreter for the PHP scripting language php7.0-common - documentation, examples and common module for PHP php7.0-curl - CURL module for PHP php7.0-dev - Files for PHP7.0 module development php7.0-gd - GD module for PHP php7.0-gmp - GMP module for PHP php7.0-json - JSON module for PHP php7.0-ldap - LDAP module for PHP php7.0-mysql - MySQL module for PHP php7.0-odbc - ODBC module for PHP php7.0-opcache - Zend OpCache module for PHP php7.0-pgsql - PostgreSQL module for PHP php7.0-pspell - pspell module for PHP php7.0-readline - readline module for PHP ... php7.0-xsl - XSL module for PHP (dummy) php7.0-zip - Zip module for PHP php7.0-dba - DBA module for PHP |
Para obtener más información sobre lo que hace cada módulo, puedes buscar en Internet o ver en la descripción larga del paquete escribiendo:
1 |
apt-cache show nombre_del_paquete |
Habrá una gran cantidad de información asociada a cada paquete, con un campo llamado Description-en,
el cual tendrá una explicación más larga de la funcionalidad que el módulo ofrece.
Por ejemplo, si quisieras saber lo que hace el módulo php-cli
podríamos escribir lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
apt-cache show php-cli Package: php-cli Priority: optional Section: php Installed-Size: 11 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org> Architecture: all Source: php-defaults (35ubuntu6) Version: 1:7.0+35ubuntu6 Depends: php7.0-cli Filename: pool/main/p/php-defaults/php-cli_7.0+35ubuntu6_all.deb Size: 2920 MD5sum: c01d4478fd2c122d043f949d4d9e30fb SHA1: 0ebbd851f388fb60a943c26afeb4c7b94abcbd61 SHA256: 6ba45b12513c2430f244d4f3e88ef5dd0fe5721141bb55ce82575b5f2495b7de Description-en: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Debian's default PHP version (currently 7.0). Description-md5: 566e36ddf36c48af1178c2f11883d22e Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu Supported: 5y |
Si, después de investigar, decides que quieres instalar un paquete, puedes hacerlo utilizando el comando apt-get install
como lo has hecho anteriormente con los demás paquetes.
Si finalmente decides que php7.0-cli
es algo que necesitas, puedes instalarlo ejecutando:
1 |
$ sudo apt-get install php7.0-cli |
Si deseas instalar más de un módulo, puedes hacerlo listándolos uno por uno, separados por un espacio, después del comando apt-get install
:
1 |
$ sudo apt-get install paquete1 paquete2 ... |
En este punto, ya tienes instalado y configurado un ambiente LAMP. Pero, todavía no has probado si PHP funciona correctamente. En el siguiente paso te muestro el método clásico para probar PHP.
Probar PHP en el Servidor Web
Para asegurarte de que has instalado PHP correctamente, tienes que crear tu primer script en PHP. Este script es muy básico y casi siempre es llamado info.php
. Para que Apache pueda interpretar el archivo, tienes que guardarlo en la raíz del servidor Apache. En Ubuntu 14.04 o superior, este directorio se encuentra en /var/www/html/
.
Abre el archivo en un editor de texto; no importa que el archivo no exista, ya que puedes guardarlo cuando termines de editarlo:
1 |
$ sudo nano /var/www/html/info.php |
Lo que debes hacer es poner el siguiente texto (que no es más que el código PHP para mostrar la información del servidor) dentro del archivo:
1 2 3 |
<?php phpinfo(); ?> |
Cuando hayas terminado, guarda y cierra el archivo, tal y como explicamos anteriormente.
Ahora ya puedes probar si tu servidor web es capaz de visualizar correctamente el contenido generado por un script PHP. Para hacer la gran prueba, sólo tienes que visitar la siguiente página en tu navegador web:
1 |
http://dirección_IP_del_servidor/info.php |
La página que debes ver es similar a esta:

Si logras ver esta página, entonces PHP está funcionando como se esperaba.
Por cuestiones de seguridad debes eliminar este archivo después de esta prueba, ya que este archivo expone información sensible sobre tu servidor a los usuarios no autorizados. Para ello, escribe lo siguiente:
1 |
$ sudo rm /var/www/html/info.php |
Siempre puedes volver a crear esta página si necesitas acceder a la información nuevamente.
Punto final
Ahora que tienes un ambiente LAMP instalado en tu servidor tienes muchas opciones para continuar. Básicamente has instalado una plataforma que te permitirá alojar la mayoría de los sitios y aplicaciones web existentes. Sin embargo, aún no hay nada que mostrar en tu servidor salvo la página de configuración de PHP. Como recomendación para que continúes a partir de aquí te invito a instalar phpMyAdmin para la gestión de tu servidor MySQL, puedes seguir los siguientes tips de seguridad para phpMyAdmin e instalar WordPress para que comiences a publicar en tu propio blog.
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir