sábado, 25 de mayo de 2019

Instalar LAMP en Ubuntu 16.04

Introducción

Instalar LAMP es conveniente para instalar después aplicaciones como Wordpress. Aqui vamos a explicar cómo instalar LAMP, que incluye el servidor Apache, la Base de datos Mysql y el lenguaje de programación PHP. 
Crearemos una instancia LAMP (Linux, Apache, MySQL y PHP) sobre un servidor Ubuntu 16.04. Estos son los pasos a seguir para dejar el servidor preparado para instalar después un servidor Wordpress en Ubuntu.

Crear un usuario sudo en el servidor

Para evitar trabajar siempre con root, conviene configurar una cuenta de usuario alternativa con permisos reducidos para el trabajo diario. Una vez iniciada la sesión como root, podemos agregar la nueva cuenta de usuario que usaremos para iniciar sesión a partir de ahora. En este ejemplo cremos un nuevo usuario llamado "jose”.

adduser jose

Se pedirá una contraseña para cuenta.
Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta estándar, pero es posible que necesitemos realizar tareas administrativas. Para evitar tener que desconectarnos de nuestro usuario normal y volver a iniciar sesión como la cuenta raíz, podemos configurar lo que se conoce como "superusuario" o privilegios de administrador para nuestra cuenta normal. Esto permitirá que nuestro usuario normal ejecute comandos con privilegios administrativos colocando la palabra sudo antes de cada comando.

Para agregar estos privilegios a nuestro nuevo usuario, debemos agregar el nuevo usuario al grupo "sudo". Por defecto, en Ubuntu 16.04, los usuarios que pertenecen al grupo "sudo" pueden usar el comando sudo.

Entrando como usuario root, ejecutamos el siguiente  comando para agregar el nuevo usuario al grupo sudo:

usermod -aG sudo jose

Ahora nuestro usuario jose puede ejecutar comandos con privilegios de superusuario.

Instalar una instancia LAMP

Wordpress necesita un servidor web, una base de datos y PHP para funcionar correctamente. Podemos instalar Apache fácilmente usando el administrador de paquetes de Ubuntu, apt. Un administrador de paquetes nos permite instalar la mayoría del software sin problemas desde un repositorio mantenido por Ubuntu. Para nuestros propósitos, podemos comenzar escribiendo estos comandos:

sudo apt-get update
sudo apt-get install apache2

Suprimir las advertencias de sintaxis

Agregamos una línea al archivo /etc/apache2/apache2.conf para suprimir un mensaje de advertencia. Aunque no es dañino, si no configuramos  el nombre del servidor de forma global, nos saldrá una advertencia al verificar la configuración de Apache en busca de errores de sintaxis:

sudo apache2ctl configtest


Suprimir las advertencias de sintaxis de Apache en Linux

Abrimos el archivo a editar.

sudo nano /etc/apache2/apache2.conf

Al final del archive escribimos servername  y ponemos la ip del servidor, en nuestro caso como va a ser un servidor local para pruebas, nos basta con 127.0.1.1  para probar ejecutamos de nuevo y salimos grabando con ctrl-X.

sudo apache2ctl configtest
Ahora ya no debe salirnos la advertencia anterior. Reiniciamos apache para implementar los cambios.

sudo systemctl restart apache2

Ajustar el firewall para permitir el tráfico web

Nos aseguramos  de  que el firewall tenga un perfil de aplicación para Apache.

sudo ufw app list

Tiene que mostrar Apache Full y los puertos 80 y 443.

sudo ufw app info "Apache Full"

Permitimos el tráfico 

sudo ufw allow in "Apache Full"

Para probar que todo es correcto, en el navegador web del servidor escribimos http://127.0.1.1  (o la ip de nuestro servidor ) y nos debe mostrar esto:


Pagina por defecto de Apache2 de Ubuntu


Instalar MySQL

Ahora que tenemos nuestro servidor web en funcionamiento, es hora de instalar MySQL. MySQL es un sistema de gestión de base de datos que  organizará y proporcionará acceso a bases de datos donde nuestro sitio almacenará la información.
Esta vez, instalaremos algunos otros paquetes de "ayuda" que nos ayudarán a lograr que nuestros componentes se comuniquen entre ellos.

sudo apt-get install mysql-server

Durante la instalación, su servidor le pedirá que seleccione y confirme una contraseña para el usuario  de MySQL. Esta es una cuenta administrativa en MySQL que tiene privilegios. Hay que administrar una contraseña sólida y guardarla para cuando nos la pida en el futuro.

Instalación de MySQL server en Ubuntu

Cuando se complete la instalación, ejecutaremos  un script de seguridad simple que eliminará algunos valores predeterminados peligrosos y bloqueará el acceso a nuestro sistema de base de datos. 

mysql_secure_installation

Esto será más importante si se trata de nuestro servidor definitivo, en nuestro caso como es un servidor local para hacer pruebas no es muy relevante.

Instalar PHP

PHP procesará el código para mostrar contenido dinámico. Puede ejecutar scripts, conectarse a nuestras bases de datos MySQL para obtener información y entregar el contenido procesado a nuestro servidor web para que se muestre.
Vamos a incluir algunos paquetes de ayuda también, para que el código PHP pueda ejecutarse bajo el servidor Apache y conectarse con nuestra base de datos MySQL. Esta operación debemos hacerla como root, para ello antes debemos escribir sudo su.

sudo su

apt-get install php libapache2-mod-php php-mcrypt php-mysql

Actualmente, si un usuario solicita un directorio del servidor, Apache primero buscará un archivo llamado index.html. Queremos decirle a nuestro servidor web que prefiera los archivos PHP, por lo que primero haremos que Apache busque un archivo index.php.

Para ello escribimos  este comando para abrir el archivo dir.conf en un editor de texto con privilegios de administrador.

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

Nos mostrará esto:

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

Debemos cambiarlo por esto:

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

Salimos grabando con Ctrl-X. 

Reiniciamos de nuevo Apache.

sudo systemctl restart apache2

Podemos ver el estado de apache  con :

sudo systemctl status apache2

Nos mostrará algo como esto.


Ver el estado de un servidor apache en ubuntu

Instalar los módulos adicionales de PHP

Para mejorar la funcionalidad de PHP podemos instalar algunos módulos adicionales.
Para ver las opciones disponibles para los módulos y las bibliotecas de PHP, puede canalizar los resultados de la búsqueda de apt-cache en menos, un buscapersonas que le permite desplazarse por el resultado de otros comandos:

apt-cache search php- | less

Utilizamos las flecas para movernos y q para salir.
Si queremos más información sobre un paquete ponemos :

apt-cache show nombre_paquete

Instalaremos los paquetes.

sudo apt-get install nombre_paquete1 nombre_paquete2

En nuestro caso instalaremos.
sudo apt-get install php-cli

Probar PHP 

Para probar que nuestro sistema está configurado correctamente para PHP, crearemos un script PHP muy básico.
Llamamos a este script info.php. Para que Apache encuentre el archivo y lo sirva correctamente, debe guardarlo en un directorio muy específico, que se llama "raíz web".

En Ubuntu 16.04, este directorio se encuentra en / var / www / html /. Podemos crear el archivo en esa ubicación escribiendo:

sudo nano /var/www/html/info.php

Esto nos abre un archivo vacío en el que podemos escribir.

<?php
phpinfo();
?>

Salimos grabando con Ctrl-X.

Ahora testeamos si funciona PHP poniendo en nuestro navegador:

http://nuestra_IP/info.php

Lo que nos debe mostrar la siguiente pantalla:


Pantalla de confirmación  de PHP en Ubuntu


Esta página básicamente muestra información sobre nuestro servidor desde la perspectiva de PHP. Es útil para garantizar que la configuración es  correcta.

Si se muestra esta pantalla, PHP está funcionando como se esperaba.

Después de esta prueba conviene eliminar el archivo, pues podría proporcionar información sobre nuestro servidor a usuarios no autorizados. Para esto, escribimos:

sudo rm /var/www/html/info.php

No hay comentarios:

Publicar un comentario