Cómo instalar Linux, Apache, MySQL y PHP (LAMP) en Ubuntu 16.04

0 acciones
0
0
0
0

Cómo instalar Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 16.04

Introducción

LAMP es un conjunto de software de código abierto que suele instalarse en conjunto para permitir que un servidor aloje sitios web y aplicaciones web dinámicos. El término significa Sistema Operativo Lamp. Linux Funciona con el servidor web Apache. Los datos del sitio se almacenan en una base de datos MySQL y el contenido dinámico se procesa mediante PHP.

En esta guía, instalaremos una pila LAMP en un servidor Ubuntu 16.04. Ubuntu cumplirá nuestro primer requisito: un sistema operativo Linux.

Requisitos previos

Antes de comenzar con esta guía, deberá configurar una cuenta de usuario independiente (no root) con privilegios sudo en su servidor. Puede aprender a hacerlo completando los pasos 1 a 4 de nuestro tutorial de configuración inicial del servidor para Ubuntu 16.04.

Paso 1: Instalar Apache y configurar el firewall

El servidor web Apache es uno de los más populares del mundo. Está bien documentado y se ha utilizado ampliamente a lo largo de gran parte de la historia de la web, lo que lo convierte en una excelente opción para el alojamiento web.

Podemos instalar Apache fácilmente con el gestor de paquetes de Ubuntu. Este gestor nos permite instalar la mayor parte del software sin problemas desde el repositorio de Ubuntu. Puedes aprender más sobre cómo usar apt aquí.

Para obtener el resultado, podemos comenzar escribiendo estos comandos:

sudo apt-get update  $
sudo apt-get install apache2  $

Dado que usamos el comando sudo, esta operación se realizará con privilegios de root. Se le solicitará su contraseña de usuario habitual para confirmar su intención.

Una vez que ingrese su contraseña, apt le indicará qué paquetes planea instalar y cuánto espacio adicional en disco ocuparán. Para continuar, escriba y y presione ENTER; la instalación continuará.

Configuración de Global ServerName para suprimir las advertencias de sintaxis

A continuación, añadiremos una línea al archivo /etc/apache2/apache2.conf para suprimir un mensaje de advertencia. Aunque esto no es perjudicial, si no configura ServerName globalmente, recibirá la siguiente advertencia al comprobar si su configuración de Apache tiene errores de sintaxis:

sudo apache2ctl configtest   $
Output
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK

Abra el archivo de configuración principal con su editor de texto:

sudo nano /etc/apache2/apache2.conf  $

Dentro, al final del archivo, agregue la directiva ServerName, que apunta a su nombre de dominio principal. Si no tiene un nombre de dominio asociado a su servidor, puede usar la dirección IP pública de su servidor:

Nota: Si no conoce la dirección IP de su servidor, vaya a la sección Cómo encontrar la dirección IP pública de su servidor para encontrarla.



/etc/apache2/apache2.conf

. . .
ServerName server_domain_or_IP

Guarda y cierra el archivo cuando hayas terminado.

A continuación, compruebe si hay errores de sintaxis escribiendo:

sudo nano apache2ctl configtest  $

Dado que agregamos la directiva global ServerName, todo lo que debería ver es esto:

Output
Syntax OK

Reinicie Apache para implementar los cambios:

sudo nano systemctl restart apache2  $

Ahora puedes empezar a configurar el firewall.

Configurar el firewall para permitir el tráfico web

A continuación, suponiendo que haya seguido las instrucciones iniciales de configuración del servidor para habilitar el firewall de UFW, asegúrese de que este permita el tráfico HTTP y HTTPS. Puede asegurarse de que UFW tenga un perfil de aplicación para Apache como este:

sudo nano ufw app list  $
Output

Available applications:

Apache

Apache Full

Apache Secure

OpenSSH

Si observa el perfil completo de Apache, debería mostrar que está habilitando el tráfico en los puertos 80 y 443:

$  sudo ufw app info “Apache Full”








Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
۸۰,۴۴۳/tcp

Permitir tráfico entrante para este perfil:

$  sudo ufw allow in “Apache Full”

Puede hacer una comprobación rápida para asegurarse de que todo salió según lo previsto visitando la dirección IP pública de su servidor en su navegador web (si no tiene esta información, consulte la nota bajo el siguiente encabezado para averiguar cuál era su dirección IP pública antes):

http://your_server_IP_address

Verá la página web predeterminada de Apache en Ubuntu 16.04, disponible solo con fines informativos y de prueba. Debería verse así:

Si ve esta página, su servidor web ahora está correctamente instalado y es accesible a través de su firewall.

Cómo encontrar la dirección IP pública de su servidor

Si no conoce la dirección IP pública de su servidor, existen varias maneras de encontrarla. Normalmente, esta es la dirección que usa para conectarse a su servidor mediante SSH.

Desde la línea de comandos, puedes encontrar esto de varias maneras. Primero, puedes usar la herramienta iproute2 para obtener tu dirección escribiendo:

$ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

Esto te dará dos o tres líneas. Todas son direcciones válidas, pero es posible que tu computadora solo pueda usar una, así que prueba cada una.

Un método alternativo es usar la herramienta curl para contactar a un tercero y decirle cómo ve su servidor. Puede hacerlo solicitando su dirección IP a un servidor específico:




$  sudo apt-get install curl
$  curl http://icanhazip.com

Independientemente del método que utilice para obtener su dirección IP, puede escribirla en la barra de direcciones de su navegador web para acceder a su servidor.

Paso 2 – Instalar MySQL

Ahora que tenemos nuestro servidor web configurado, es hora de instalar MySQL. MySQL es un sistema de gestión de bases de datos. Básicamente, permite que las bases de datos almacenen, organicen y accedan a la información.

De nuevo, podemos usar apt para obtener e instalar nuestro software. En esta ocasión, también instalaremos otros paquetes auxiliares que nos ayudarán a comunicar nuestros componentes entre sí:

$ sudo apt-get install mysql-server

Nota: En este caso, no es necesario ejecutar sudo apt-get update antes del comando. Esto se debe a que lo acabamos de ejecutar en los comandos anteriores para instalar Apache. La lista de paquetes en nuestro equipo ya debería estar actualizada.

Nuevamente, se le mostrará una lista de los paquetes que se instalarán, junto con el espacio en disco que ocuparán. Presione Y para continuar.

Durante la instalación, su servidor le solicitará que elija y confirme una contraseña para el usuario "root" de MySQL. Esta es una cuenta administrativa de MySQL con privilegios elevados. Es similar a la cuenta root del servidor (aunque la cuenta que está configurando ahora es una cuenta MySQL especial). Asegúrese de que sea una contraseña segura y única, y no la deje en blanco.

Una vez finalizada la instalación, queremos ejecutar un script de seguridad sencillo que elimine algunos valores predeterminados peligrosos y bloquee ligeramente el acceso a nuestro sistema de base de datos. Inicie el script interactivo ejecutando lo siguiente:

$ mysql_secure_installation

Se le solicitará que ingrese la contraseña que estableció para la cuenta raíz de MySQL. A continuación, se le preguntará si desea configurar el complemento "VALIDATE PASSWORD PLUGIN".

Advertencia: Habilitar esta función es prácticamente una cuestión de criterio. Al habilitarla, MySQL rechazará con un error las contraseñas que no cumplan los criterios especificados. Esto puede causar problemas si se usa una contraseña débil junto con software que configura automáticamente las credenciales de MySQL, como los paquetes de Ubuntu para phpMyAdmin. Deshabilitar la validación es seguro, pero siempre se recomienda usar contraseñas seguras y únicas para la autenticación de la base de datos.

Responda y para sí o cualquier otra cosa sin activar.

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:

Se le pedirá que seleccione un nivel de validación de contraseña. Tenga en cuenta que si introduce 2 para el nivel más seguro, recibirá un error al intentar establecer una contraseña que no contenga números, mayúsculas ni minúsculas, caracteres especiales o que esté basada en palabras comunes del diccionario.

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

Si tiene activada la verificación de contraseña, se mostrará una contraseña segura para la contraseña raíz actual y se le preguntará si desea cambiarla. Si está conforme con su contraseña actual, escriba "n" para "no" cuando se le solicite.




Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

Para el resto de las preguntas, debe presionar Y y Enter en cada solicitud. Esto eliminará algunos usuarios anónimos y la base de datos de prueba, deshabilitará el inicio de sesión remoto como root y cargará estas nuevas reglas para que MySQL aplique inmediatamente los cambios realizados.

En este punto, su sistema de base de datos ya está en funcionamiento y podemos continuar.

Paso 3 – Instalación de PHP

PHP es la parte de nuestra configuración que procesa el código para mostrar contenido dinámico. Puede ejecutar scripts, conectarse a bases de datos MySQL para recuperar información y enviar el contenido procesado a nuestro servidor web para su visualización.

Podemos volver a usar el sistema apt para instalar nuestros componentes. También agregaremos algunos paquetes auxiliares para que el código PHP pueda ejecutarse en el servidor Apache y comunicarse con nuestra base de datos MySQL:

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

Esto debería instalar PHP sin problemas. Lo probaremos en un momento.

En la mayoría de los casos, queremos cambiar la forma en que Apache sirve los archivos cuando se solicita un directorio. Actualmente, si un usuario solicita un directorio al servidor, Apache primero busca un archivo llamado index.html. Queremos indicarle a nuestro servidor web que prefiera los archivos PHP, por lo que primero hacemos que Apache busque un archivo index.php.

Para ello, escriba este comando para abrir el archivo dir.conf en un editor de texto con privilegios de root:

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

Tendrá este aspecto:

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

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

Queremos mover el archivo de directorio PHP resaltado arriba a la primera posición después de la especificación DirectoryIndex, de esta manera:

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

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

Cuando termines, guarda el archivo y ciérralo presionando Ctrl+X. Para guardar, escribe Y y luego Enter para confirmar dónde guardarlo.

Después de esto, debemos reiniciar el servidor web Apache para que se reconozcan los cambios. Puedes hacerlo escribiendo lo siguiente:

$  sudo systemctl restart apache2

También podemos comprobar el estado del servicio apache2 usando systemctl:

$ sudo systemctl status apache2
Sample Output

● apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─۱۳۶۲۳ /usr/sbin/apache2 -k start
├─۱۳۶۲۶ /usr/sbin/apache2 -k start
├─۱۳۶۲۷ /usr/sbin/apache2 -k start
├─۱۳۶۲۸ /usr/sbin/apache2 -k start
├─۱۳۶۲۹ /usr/sbin/apache2 -k start
└─۱۳۶۳۰ /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server…
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

Instalar módulos PHP

Para aumentar el rendimiento de PHP, podemos instalar opcionalmente módulos adicionales.

Para ver las opciones disponibles para módulos y bibliotecas PHP, puede ingresar los resultados de búsqueda de apt-cache en less, un paginador que le permite desplazarse por la salida de otros comandos:

$  apt-cache search php- | less

Utilice las teclas de flecha para moverse hacia arriba y hacia abajo y q para salir.

Los resultados muestran todos los componentes opcionales que puedes instalar. Se ofrece una breve descripción de cada uno:

libnet-libidn-perl – Perl bindings for GNU Libidn
php-all-dev – package depending on all supported PHP development packages
php-cgi – server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli – command-line interpreter for the PHP scripting language (default)
php-common – Common files for PHP packages
php-curl – CURL module for PHP [default]
php-dev – Files for PHP module development (default)
php-gd – GD module for PHP [default]
php-gmp – GMP module for PHP [default]
…
:

Para obtener más información sobre lo que hace cada módulo, puede buscar en Internet o consultar la descripción larga del paquete escribiendo:

$   apt-cache show package_name

Habrá mucha salida, con un campo llamado Description-es que proporciona una explicación más larga de la funcionalidad del módulo.

Por ejemplo, para saber qué hace el módulo php-cli, podemos escribir esto:

$  apt-cache show php-cli

Junto con una gran cantidad de otra información, encontrará algo como esto:

Output
…
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).
…

Si después de investigar decide que desea instalar un paquete, puede hacerlo utilizando el comando apt-get install, tal como lo haríamos con nuestro otro software.

Si decidimos que php-cli es lo que necesitamos, podemos escribir:

$  sudo apt-get install php-cli

Si desea instalar más de un módulo, puede hacerlo enumerando cada uno, separado por un espacio, seguido del comando apt-get install, de la siguiente manera:

$   sudo apt-get install package1 package2 …

En este punto, tu framework LAMP está instalado y configurado. Aún necesitamos probar nuestro PHP.

Paso 4: Pruebe el procesamiento de PHP en su servidor web

Para probar que nuestro sistema está configurado correctamente para PHP, podemos crear un script PHP muy básico.

Llamaremos a este script info.php. Para que Apache encuentre el archivo y lo muestre correctamente, debe almacenarse en una carpeta muy especial llamada 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 abrirá un archivo en blanco. Queremos incluir el siguiente texto, que es código PHP válido, dentro del archivo:

info.php

<?php
phpinfo();
?>

Cuando hayas terminado, guarda y cierra el archivo.

Ahora podemos comprobar si nuestro servidor web muestra correctamente el contenido generado por el script PHP. Para comprobarlo, solo necesitamos visitar esta página en nuestro navegador. Necesitaremos la dirección IP pública de nuestro servidor.

La dirección que deseas visitar será:

http://your_server_IP_address/info.php

La página a la que accedas debería verse así:

La página a la que accedas debería verse así:

Esta página proporciona información básica sobre su servidor desde una perspectiva PHP. Es útil para depurar y garantizar que la configuración se aplique correctamente.

Si esto tuvo éxito, su PHP funcionará como se esperaba.

Probablemente querrás eliminar este archivo después de este experimento, ya que podría revelar información sobre tu servidor a usuarios no autorizados. Para ello, puedes escribir:

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

Siempre puedes volver a crear esta página si necesitas acceder a la información nuevamente.

Comentarios de 2
  1. Si alguien necesita una opinión experta sobre cómo llevar un blog, le aconsejo
    Para visitar rápidamente esta página web, continúe con el buen trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

También te puede gustar