guia

(Guía) ¿Cómo instalar LAMP en Ubuntu 18 o más?

Se que hay muchos tutoriales de cómo instalar LAMP en Ubuntu, pero hace poco volví a instalar Ubuntu ya en su última versión estable 18.04, 18.10 y su actualización a 19.04, yo siempre seguía los tutoriales de Digital Ocean, siempre mantienen un tutorial actualizado con cada una de las distros que sale.

Pero en esta ocasión me fallo!! :(, el programa me lanzaba un error al instalar PHPMyAdmin otras veces con el PHP, y me toco batallar mucho para poder encontrar la solución más adecuada y que quedara 100% funcional.

Por eso decidí dejar mi guía completa, para que puedan instalar su servidor de manera rápida y sin tanto problema.

¿Cómo instalar LAMP en Ubuntu?

LAMP hace referencia a un grupo de diferentes programas de código abierto que típicamente son instalados en conjunto, con el objetivo de habilitar a un servidor como prestador de los servicios de páginas web dinámicas. De hecho, este término es el acrónimo de:

  • Linux
  • Apache
  • MySQL
  • PHP.

En esta guía, instalaremos LAMP con PHPMyAdmin en un servidor Linux 18.04.

Instalación

Antes de empezar con la instalación debemos tener actualizado el sistema para ello usamos la terminal e ingresamos el siguiente comando:

$ sudo apt update && sudo apt upgrade

Como éste es un comando sudo, estas operaciones son ejecutadas con los privilegios de superusuario. Te preguntará por la contraseña de tu cuenta regular para verificar tus intenciones.

Paso 1: Instalar Servidor HTTP Apache

El servidor web Apache es uno de los más populares en el mundo. Se encuentra muy bien documentado.

$ sudo apt install apache2 apache2-utils

apt te informará cuáles paquetes se instalarán y cuánto espacio en disco será requerido. Digita “Y” y después “Enter” para continuar, así, la instalación procederá.

Ajuste del cortafuegos para permitir el tráfico web

Para permitir el tráfico de entrada HTTP y HTTPS para este perfil, ingresamos el siguiente comando:

$ sudo ufw allow in "Apache Full"

Una vez que se complete la instalación, ingrese la dirección IP pública en su navegador 127.0.0.1 o localhost. Debería ver la página web predeterminada de Apache como se muestra a continuación:

Si viste esta página, entonces tu servidor web se encuentra instalado correctamente y es accesible a través del cortafuegos.

Paso 2: Instalar MySQL

Ejecute el siguiente comando en la terminal para instalar MYSQL:

$ sudo apt install mysql-server

Aquí es donde tuve varios problemas…

Ahora con el comando sudo mysql_secure_installation asignará una contraseña al usuario root, pero… ¡esto no funciona!. Si accedemos al comando sin ser superusuario con: mysql_secure_installation pedirá la contraseña del usuario root pero nunca podremos acceder por que no hay una contraseña asignada.

Para resolver esto hay que crear una contraseña al usuario root accediendo al servidor mysql con el siguiente comando:

$ sudo mysql -u root -p

Pedirá la contraseña del usuario root, dejamos en blanco y damos “ENTER” :o, ahora asignamos una contraseña al usuario root con el siguiente comando:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tu_contraseña';

NOTA: Cambiar lo que está dentro de las comillas simples ” por tu contraseña, generalmente se usa la contraseña ‘root’ en un servidor local de pruebas pero si vas a usar un servidor de producción ingresa una contraseña segura.

Paso 3: Instalar PHP

Ahora, vamos a instalar PHP, cuya versión predeterminada es PHP 7, y otros módulos para implementaciones web usando el siguiente comando. Ingresamos la letra “S” para confirmar la descarga e instalación de PHP y sus complementos.

$ sudo apt-get install php libapache2-mod-php php-common php-mysql php-gd php-cli

En la mayoría de los casos, desearás modificar la forma mediante la cual Apache sirve archivos cuando un directorio es solicitado. En este momento, si un usuario solicita un directorio del servidor, Apache buscará, en primera instancia, un archivo llamado index.html. Nosotros queremos que el servidor web le dé prioridad a los archivos PHP sobre cualquier otro archivo. Para lo cual haremos que el Apache busque el archivo index.php en primer lugar.

Para lograrlo, digita el siguiente comando para abrir el archivo dir.conf en un editor de texto con privilegios de superusuario:

$ sudo nano /etc/apache2/mods-enabled/dir.conf

Debería verse semejante a esto:

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Y lo modificaremos, poniendo en primer lugar index.php después de la especificación DirectoryIndex, debería verse similar a:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Cuando termines, graba y cierra el archivo presionando las teclas “Ctrl + X“. Confirma los cambios presionando “Y“, y a continuación pulsa la tecla “Enter” para verificar el lugar de grabación del archivo.

Una vez que PHP haya sido instalado, será posible probar la configuración de PHP creando una página simple info.php en la raíz del documento del servidor web, ejecutando el siguiente comando:

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Cuando termines, graba y cierra el archivo.

Reiniciar Apache

$ sudo systemctl restart apache2

Ahora ya puedes probar si tu servidor web se encuentra habilitado para desplegar correctamente contenido PHP. Para hacerlo, visita una página web específica en tu navegador, necesitarás tu dirección pública de nuevo.

La dirección que deberás visitar es:

http://your_server_ip/info.php || http://localhost/info.php || http://127.0.0.1/info.php

La página que deberías estar viendo debe ser similar la siguiente:

Esta página provee información básica sobre tu servidor, recogida desde la perspectiva de PHP. Es útil cuando necesites hacer algún tipo de seguimiento o para verificar que la configuración deseada ha sido aplicada de manera correcta.

Si pudiste ver esta página en tu navegador, tu PHP está trabajando según lo esperado.

Instalar el Driver PDO

Si tienes aplicaciones que usan PDO de PHP para conectar a MYSQL darán el siguiente error: could not find driver, pues el componente PDO no está instalado, para ello debemos instalar con el siguiente comando:

$ sudo apt install php7.3-mysql

A continuación, deberá asegurarse de que el módulo esté habilitado:

$ sudo phpenmod pdo_mysql

Listo, reiniciar apache:

$ sudo systemctl restart apache2

Ahora podemos observar que en nuestro archivo info.php en la información de PDO hay lo siguiente:

Paso 4: Instalar PHPmyAdmin

Ahora, vamos a instalar phpMyAdmin con el fin de administrar bases de datos MySQL / MariaDB desde un navegador web, para ello vamos a ejecutar el siguiente comando:

$ sudo apt install phpmyadmin

Si por alguna razón este comando nos da error y que no encuentra el paquete, instalamos la siguiente ruta:

$ sudo add-apt-repository ppa:phpmyadmin/ppa
$ sudo apt update
$ sudo apt install phpmyadmin

Ayuda externa https://mecazero.com/instalando-lamp-y-phpmyadmin-en-ubuntu-19-10-eoan-ermite/

IMPORTANTE: Durante la instalación preguntará para qué servidor web configurar, elegir apache2 con “Espacio” y continuar (para navegar entre las opciones usar la tecla “TAB“, para continuar solo da “ENTER“).

Ahora nos preguntará si queremos configurar la base de datos para phpMyAdmin con dbconfig-common y contestamos que Sí.

En el siguiente paso se nos pregunta por la contraseña del usuario root de MySQL. Esta contraseña ya la configuramos anteriormente.

Al final creamos un enlace simbólico de la carpeta de phpmyadmin para poder acceder en el mismo, esto lo hacemos en la siguiente ruta /var/www/html:

$ sudo ln -s /usr/share/phpmyadmin /var/www/html

Entonces podemos ingresar a phpmyadmin desde la siguiente ruta en el navegador: http://localhost/phpmyadmin el usuario es “root” y la contraseña es la que se configuró anteriormente.

Ahora, solo nos falta dar permisos de escritura a nuestra carpeta HTML, para poder poner nuestros archivos, para ello vamos a ejecutar el siguiente comando:

$ sudo chown Nuestro_usuario /var/www/html
$ sudo chmod 777 /var/www/html
$ sudo chown -R www-data:www-data /var/www/html

Ahora, necesitamos activar el archivo .htaccess, para poder configurar nuestro sitio, para activarlo vamos a ejecutar el siguiente comando, seguido con reiniciar el apache:

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

Para algunos programador, que utilizan los Short Codes de php <? y ?>, estos vienen desactivados por defecto para activarlos hay que editar nuestro archivo php.ini,

La ubicación la encontramos en el info.php que creamos anteriormente

Para editarlo utilizamos el siguiente comando:

$ sudo nano /etc/php/7.3/apache2/php.ini

Buscamos el la siguiente línea:

short_open_tag=Off

Y la cambiamos por:

short_open_tag=On

O esta puede estar comentada con un “;“, simplemente lo eliminamos

;short_open_tag = On

Listo, reiniciar apache:

$ sudo systemctl restart apache2

¡Genial!

Ya tenemos nuestro servidor completamente funcional.

Fuentes:
Digital Ocean
Solo Linux
InfinitUbuntu
Solvetic
JuanchoRua

Errores posibles:
No activa correctamente .htaccess: Solución
Error en PHPMyAdmin en sql.lib.php: Solución
Error en PHPMyAdmin en Warning in ./libraries/plugin_interface.lib.php#532: Solución

Nota: Fijarse en el numero de línea, no siempre son iguales.