Paso 1: Instalar Apache y actualizar el firewall
El servidor web Apache está entre los más populares del mundo. Está bien documentado, tiene una comunidad de usuarios activa y ha sido muy utilizado durante gran parte de la historia de la web, por lo que es una excelente opción predeterminada para alojar sitios web.
Instale Apache usando el administrador de paquetes de Ubuntu, apt
:
Si es la primera vez que utiliza sudo
en esta sesión, se le pedirá que proporcione su contraseña de usuario para confirmar que tenga los privilegios adecuados para administrar los paquetes del sistema con apt
. También se le solicitará que confirme la instalación de Apache al pulsar Y
y ENTER
.
Una vez que la instalación se complete, deberá ajustar la configuración de su firewall para permitir tráfico HTTP y HTTPS. UFW tiene diferentes perfiles de aplicaciones que puede aprovechar para hacerlo. Para enumerar todos los perfiles de aplicaciones de UFW disponibles, puede ejecutar lo siguiente:
Verá un resultado como este:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
A continuación, explicamos cada uno de estos perfiles:
- Apache: este perfil abre solo el puerto
80
(tráfico web normal no cifrado). - Apache Full: este perfil abre los puertos
80
(tráfico web normal no cifrado) y443
(tráfico TLS/SSL cifrado). - Apache Secure: este perfil abre solo el puerto
443
(tráfico TLS/SSL cifrado).
Por ahora, es mejor permitir conexiones únicamente en el puerto 80
, ya que se trata de una instalación nueva de Apache y todavía no tiene un certificado TLS/SSL configurado para permitir tráfico HTTPS en su servidor.
Para permitir tráfico únicamente en el puerto 80
utilice el perfil Apache
:
Puede verificar el cambio con lo siguiente:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Ahora, se permite tráfico en el puerto 80
a través del firewall.
Puede realizar una verificación rápida para comprobar que todo se haya realizado según lo previsto dirigiéndose a la dirección IP pública de su servidor en su navegador web (consulte la nota de la siguiente sección para saber cuál es su dirección IP pública si no dispone de esta información):
http://your_server_ip
Verá la página web predeterminada de Apache para Ubuntu 20.04, que se encuentra allí para fines informativos y de prueba. Debería tener un aspecto similar a este:
Si ve esta página, su servidor web estará correctamente instalado y el acceso a él será posible a través de su firewall.
Paso 2: Instalar MySQL
Ahora que dispone de un servidor web funcional, deberá instalar un sistema de base de datos para poder almacenar y gestionar los datos de su sitio. MySQL es un sistema de administración de bases de datos popular que se utiliza en entornos PHP.
Una vez más, utilice apt
para adquirir e instalar este software:
Cuando se le solicite, confirme la instalación al escribir Y
y, luego, ENTER
.
Then run the following ALTER USER
command to change the root user’s authentication method to one that uses a password. The following example changes the authentication method to mysql_native_password
:
After making this change, exit the MySQL prompt:
Cuando la instalación se complete, se recomienda ejecutar una secuencia de comandos de seguridad que viene preinstalada en MySQL Con esta secuencia de comandos se eliminarán algunos ajustes predeterminados poco seguros y se bloqueará el acceso a su sistema de base de datos. Inicie la secuencia de comandos interactiva ejecutando lo siguiente:
Se le preguntará si desea configurar el VALIDATE PASSWORD PLUGIN
.
Nota: La habilitación de esta característica queda a discreción del usuario. Si se habilita, MySQL rechazará con un mensaje de error las contraseñas que no coincidan con los criterios especificados. Dejar la validación desactivada será una opción segura, pero siempre deberá utilizar contraseñas seguras y únicas para credenciales de bases de datos.
Elija Y
para indicar que sí, o cualquier otra cosa para continuar sin la habilitación.
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:
Si responde “sí”, se le solicitará que seleccione un nivel de validación de contraseña. Tenga en cuenta que, si ingresa 2
para indicar el nivel más seguro, recibirá mensajes de error al intentar establecer cualquier contraseña que no contenga números, letras en mayúscula y minúscula, y caracteres especiales, o que se base 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
Independientemente de que haya elegido instalar el VALIDATE PASSWORD PLUGIN
, su servidor le solicitará, a continuación, que seleccione y confirme una contraseña para el root user de MySQL. No debe confundirse con el root del sistema. El root user de base de datos es un usuario administrativo con privilegios completos sobre el sistema de base de datos. Si bien el método de autenticación predeterminado del root user de MySQL no requiere el uso de una contraseña, incluso si hay una establecida, deberá definir una contraseña segura en este punto como una medida de seguridad adicional. Hablaremos de esto en breve.
Si habilitó la validación de contraseña, se le indicará la seguridad de la contraseña del root user que acaba de ingresar y su servidor le preguntará si desea continuar usándola. Si está conforme con su contraseña actual, ingrese Y
para indicar “sí” en la solicitud:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Para el resto de las preguntas, presione Y
y ENTER
en cada mensaje. Con esto, se eliminarán algunos usuarios anónimos y la base de datos de prueba, se deshabilitarán las credenciales de inicio de sesión remoto de root y se cargarán estas nuevas reglas para que MySQL aplique de inmediato los cambios que realizó.
Cuando termine, compruebe si puede iniciar sesión en la consola de MySQL al escribir lo siguiente:
OutputWelcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Para salir de la consola de MySQL, escriba lo siguiente:
Paso 3: Instalar PHP
Instaló Apache para presentar su contenido y MySQL para almacenar y gestionar sus datos. PHP es el componente de nuestra configuración que procesará el código para mostrar contenido dinámico al usuario final. Además del paquete php
, necesitará php-mysql
, un módulo PHP que permite que este se comunique con bases de datos basadas en MySQL. También necesitará libapache2-mod-php
para habilitar Apache para gestionar archivos PHP. Los paquetes PHP básicos se instalarán automáticamente como dependencias.
Para instalar estos paquetes, ejecute lo siguiente:
Una vez que la instalación se complete, podrá ejecutar el siguiente comando para confirmar su versión de PHP:
OutputPHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
En este punto, su pila LAMP está plenamente operativa
Paso 4: Crear un host virtual para su sitio web y no usar Wordpres
Al emplear el servidor web Apache, puede crear hosts virtuales (similares a los bloques de servidor en Nginx) para encapsular detalles de configuración y alojar más de un dominio desde un único servidor. En esta guía, configurará un dominio llamado your_domain, pero deberá cambiar este nombre por el de su dominio propio.
Nota: En caso de que utilice DigitalOcean como proveedor de hosting de DNS, puede consultar nuestros documentos sobre productos para hallar instrucciones detalladas sobre cómo configurar un nuevo nombre de dominio y orientarlo hacia su servidor.
Ubuntu 20.04 tiene habilitado un bloque de servidor por defecto, que está configurado para proporcionar documentos del directorio /var/www/html
. Si bien esto funciona bien para un solo sitio, puede ser difícil de manejar si aloja varios. En lugar de modificar /var/www/html
, crearemos una estructura de directorio dentro de /var/www
para el sitio your_domain y dejaremos /var/www/html
establecido como directorio predeterminado que se presentará si una solicitud de cliente no coincide con ningún otro sitio.
Cree el directorio para your_domain de la siguiente manera:
A continuación, asigne la propiedad del directorio con la variable de entorno $USER
, que hará referencia a su usuario de sistema actual:
Luego, abra un nuevo archivo de configuración en el directorio sites-available
de Apache usando el editor de línea de comandos que prefiera. En este caso, utilizaremos nano
:
De esta manera, se creará un nuevo archivo en blanco. Pegue la siguiente configuración básica:
<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Con esta configuración de VirtualHost
, le indicamos a Apache que proporcione your_domain
usando /var/www/your_domain
como directorio root web. Si desea probar Apache sin un nombre de dominio, puede eliminar o convertir en comentario las opciones ServerName
y ServerAlias
añadiendo un carácter #
al principio de las líneas de cada opción.
Ahora, puede usar a2ensite
para habilitar el nuevo host virtual:
Puede ser conveniente deshabilitar el sitio web predeterminado que viene instalado con Apache. Es necesario hacerlo si no se utiliza un nombre de dominio personalizado, dado que, en este caso, la configuración predeterminada de Apache sobrescribirá su host virtual. Para deshabilitar el sitio web predeterminado de Apache, escriba lo siguiente:
Para asegurarse de que su archivo de configuración no contenga errores de sintaxis, ejecute lo siguiente:
Por último, vuelva a cargar Apache para que estos cambios surtan efecto:
DirectoryIndex
en Apache
Nota sobre Con la configuración predeterminada de DirectoryIndex
en Apache, un archivo denominado index.html
siempre tendrá prioridad sobre un archivo index.php
. Esto es útil para establecer páginas de mantenimiento en aplicaciones PHP, dado que se puede crear un archivo index.html
temporal que contenga un mensaje informativo para los visitantes. Como esta página tendrá precedencia sobre la página index.php
, se convertirá en la página de destino de la aplicación. Una vez que el mantenimiento se completa, el archivo index.html
se elimina del root de documentos, o se le cambia el nombre, para volver mostrar la página habitual de la aplicación.
Si desea cambiar este comportamiento, deberá editar el archivo /etc/apache2/mods-enabled/dir.conf
y modificar el orden en el que el archivo index.php
se enumera en la directiva DirectoryIndex
:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Después de guardar y cerrar el archivo, deberá volver a cargar Apache para que los cambios surtan efecto:
En el siguiente paso, crearemos una secuencia de comandos PHP para probar que PHP esté correctamente instalado y configurado en su servidor.
Comentarios
Publicar un comentario