Cómo alojar un sitio web (Guía para configurar su propio servidor)

Cómo crear un servidor


Para alojar un sitio web en un servidor, deberá ensuciarse las manos y configurar todo el entorno usted mismo. A continuación, encontrará un ejemplo generalizado de cómo hacer las cosas usando un servidor privado virtual en ejecución Ubuntu 18.04

En resumen, deberás:

    • Realizar la configuración inicial del servidor
    • Configure una zona DNS y apunte su dominio
    • Instalar una pila de software
    • Crea un host virtual
    • Pon tu sitio web en funcionamiento

PD Si no desea seguir estos pasos complicados, considere obtener un alojamiento web.

1. Los primeros pasos de configuración del servidor

Si decide alquilar un servidor dedicado o un VPS, primero deberá establecer una base sólida. Esto implica acceder a su servidor a través de un terminal o un cliente SSH y realizar ajustes y actualizaciones de seguridad.

Conéctese a su servidor

Comience conectándose a su servidor. El siguiente comando hará el truco:

ssh [correo electrónico protegido] _server_IP -port

Cuando se conecta por primera vez, es posible que se le solicite agregar la dirección IP de su servidor a la lista de hosts conocidos. Escribir si para continuar y luego se le pedirá que ingrese el contraseña de root.

Agregar IP del servidor a hosts conocidos

Aquí hay un ejemplo de lo que debería ver en su pantalla si todo salió bien.

pantalla inicial de inicio de sesión de Ubuntu SSH

Recibe las últimas actualizaciones

Ejecute los siguientes comandos para obtener las últimas actualizaciones para su servidor Ubuntu 18.04:

sudo apt update
sudo apt upgrade

Cuando ejecute el segundo comando, verá una pantalla de confirmación. Escribir Y para proceder.

confirmando las actualizaciones del servidor Ubuntu

Crear un nuevo usuario

A continuación, deberá agregar un nuevo usuario, ya que no se recomienda utilizar el root para las tareas diarias. Llamémoslo webmaster. Para comenzar la creación del usuario, ejecute:

webmaster adduser

creando un nuevo usuario Ubuntu

Una vez que cree una contraseña, se le pedirá que ingrese los detalles generales (que puede dejar en blanco). Luego, escriba Y para confirmar la creación del nuevo usuario.

De forma predeterminada, el nuevo usuario no tendrá suficientes privilegios para hacer todo lo que necesita, por lo tanto, deberá agregarlos manualmente. Así es como lo haces:

usermod -aG sudo webmaster

¡Eso es! Su nuevo usuario administrativo está listo. Para comenzar a usarlo en lugar de root, ejecute:

su – webmaster

cambio de usuario del sistema

Configurar la autenticación de clave pública (opcional)

El uso de una contraseña para autenticar lo deja vulnerable a los intentos de fuerza bruta y pone a su servidor en un riesgo moderado (especialmente si es flojo para configurar una contraseña única y segura).

Una excelente manera de mejorar la integridad del servidor es usar claves SSH en lugar de una contraseña normal. Los pasos deben ser idénticos independientemente de la distribución de Linux que esté ejecutando. Empezar cerrar sesión de su servidor y ejecute el siguiente comando en su computadora local para crear una nueva clave pública:

ssh-keygen

Se le pedirá que ingrese una frase de contraseña adicional y la ubicación de dónde guardar la clave pública. Por defecto, guarda todo en /Users/Your_User/.ssh directorio (que puede mantener a menos que tenga otros planes en mente).

ejecutando SSH keygen

Tan pronto como termine, copie la clave SSH en su servidor usando:

ssh-copy-id [correo electrónico protegido] _server_IP

También puede hacer lo mismo para su usuario root por si acaso:

ssh-copy-id [correo electrónico protegido] _server_IP

mover la clave SSH al servidor remoto

Finalmente, deberá iniciar sesión en su servidor nuevamente. Solo que esta vez, usará la clave SSH y su frase de contraseña para autenticarse. Si alguien adivina su contraseña, no podrá iniciar sesión, ya que se requiere la clave pública para realizar una conexión exitosa.

iniciar sesión en el servidor con clave SSH

Deshabilitar autenticación de contraseña (opcional)

Como ahora puede acceder a su servidor con la clave SSH recién generada, es recomendable deshabilitar la autenticación de contraseña normal. Para hacerlo, podemos usar el nano editor de texto:

sudo nano / etc / ssh / sshd_config

Busque una línea que diga #PasswordAuthentication sí, elimine el # # y cambiar el si a un No. El resultado final debería verse así:

deshabilitar la autenticación de contraseña en la configuración sshd

Para guardar estos cambios y salir del editor nano, presione CTRL + X, escribir Y y presione Entrar. Y finalmente, aplique todo volviendo a cargar el servicio sshd:

sudo systemctl reload sshd

¡Y eso es! Ahora usará una clave pública para autenticar en lugar de una contraseña, que se considera una forma más segura de acceder y administrar un servidor.

Configurar un cortafuegos

Por último, pero no menos importante, es aconsejable usar un firewall para protegerse de los peligros que acechan en la web. Firewall sin complicaciones es una de las mejores herramientas para el trabajo. Para configurarlo, ejecute:

sudo apt-get install ufw

Cuando está instalado, el firewall no funcionará a menos que se active manualmente. Puede habilitarlo usando:

sudo ufw enable

habilitar ufw Ubuntu

Para verificar si está funcionando, ejecute:

sudo ufw status detallado

2. Configurar una zona DNS

El próximo desafío será crear una zona DNS, que actúe como material vinculante entre un nombre de dominio y un servidor. Podemos dividirlo en dos pasos más pequeños:

  1. Configurar una zona DNS dentro de su servidor
  2. Crear servidores de nombres personalizados en su registrador de dominios

Crear una nueva zona DNS

Para crear una nueva zona DNS, utilizaremos una herramienta llamada bind9. Al final, este es el servicio que nos permite cargar un sitio web a través de un nombre de dominio en lugar de una dirección IP.

Para instalar Bind9 en su servidor Ubuntu 18.04, ejecute:

sudo apt-get install bind9

Una vez instalado, todos los archivos estarán disponibles en el / etc / bind directorio. Vamos a navegar primero:

cd / etc / bind

Para mantener todo ordenado y organizado, crearemos un directorio separado para nuestras zonas DNS:

zonas de sudo mkdir -p

Creemos un nuevo archivo de zona DNS para nuestro dominio. Estaremos usando dominio-ejemplo.com para fines de demostración (debe reemplazarlo con su nombre de dominio real).

sudo nano zones / dominio-ejemplo.com

Ejemplo de fragmento de zona DNS:

;
; Archivo de datos BIND para domain-example.com
;
$ TTL 3h
@ IN SOA ns1.domain-example.com. admin.domain-example.com. (
1; De serie
3h; Actualizar después de 3 horas
1h; Vuelva a intentarlo después de 1 hora
1w; Caduca después de 1 semana
1h); TTL de almacenamiento en caché negativo de 1 día
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

dominio-ejemplo.com. EN UN YOUR_SERVER_IP
ns1 EN UN YOUR_SERVER_IP
ns2 EN UN YOUR_SERVER_IP
www EN CNAME dominio-ejemplo.com.
correo EN UN YOUR_SERVER_IP
ftp IN CNAME dominio-ejemplo.com.
dominio-ejemplo.com. EN MX 10 dominio-ejemplo.com.

Asegúrese de reemplazar todas las instancias de su Your_Server_IP y dominio-ejemplo.com con los valores reales Guarde el archivo de zona presionando CTRL + X y luego escribiendo Y para confirmar los cambios.

A continuación, necesitaremos editar la configuración local y especificar la ubicación de nuestra zona DNS recién creada. Esto garantiza que el servidor sepa qué archivo de zona pertenece a qué nombre de dominio.

sudo nano named.conf.local

Pegue las siguientes líneas en la parte inferior del archivo mientras reemplaza dominio-ejemplo.com con la dirección de su sitio web real.

zona "dominio-ejemplo.com" {
maestro de tipo;
archivo "/etc/bind/zones/domain-example.com";
};

prensa CTRL + X y entrada Y para guardar sus cambios y salir del editor nano.

También puede probar si todo se agregó y configuró correctamente ejecutando el siguiente comando:

sudo named-checkzone domain-example.com /etc/bind/zones/domain-example.com

verificar la zona dns

Por último, ejecute estos dos comandos para reiniciar el servicio DNS de su servidor y asegurarse de que se esté ejecutando:

sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 start

En este punto, la zona DNS está lista desde el lado del servidor. Para finalizarlo, deberá crear entradas de servidores de nombres personalizadas dentro de su registrador de dominios.

Crear servidores de nombres personalizados para su dominio

Como especificamos dos servidores de nombres (ns1.domain-example.com y ns2.domain-example.com) en nuestro ejemplo de zona DNS, necesitaremos crear estas entradas en el registrador de dominios y usarlas.

Así es como deberían verse las entradas:

Servidor de nombres personalizadoPuntos a
ns1.domain-example.comYour_Server_IP
ns2.domain-example.comYour_Server_IP

creación del servidor de nombres hijo

Una vez creado, deberá dirigir su dominio a estos nuevos servidores de nombres.

actualizar servidores de nombres

3. Instale la pila LAMP

LAMP es una de las pilas de software más utilizadas de la web. Es la abreviatura de Linux, Apache HTTP Server, MySQL / MariaDB y PHP. Antes de alojar un sitio, deberá asegurarse de que todos estos ingredientes estén disponibles en su servidor. Así es como se vería el proceso de configuración con Ubuntu 18.04:

apache

Apache HTTP Server ya puede estar incluido en los paquetes predeterminados que vienen con su servidor. Si no, ejecute:

sudo apt-get install apache2

instalar Apache

Dado que hay un firewall, debemos asegurarnos de que estos puertos estén abiertos, ya que Apache no funcionará correctamente de lo contrario. Esto es lo que debe permitir a través del firewall:

sudo ufw permite 80 / tcp
sudo ufw permite 443 / tcp

Luego, reinícielo para asegurarse de que se apliquen los cambios:

sudo ufw reload

En este punto, esto es lo que debería ver visitando el Dirección IP de su servidor a través de un navegador:

página predeterminada de Apache2

PHP

Para obtener la última versión de PHP con algunos módulos adicionales que WordPress necesita, ejecute:

sudo apt-get install php php-common php-mysql php-gd php-cli

confirmar la instalación de PHP

Puede verificar qué versión de PHP se instaló en su servidor escribiendo:

php -v

verificar la versión de PHP

MySQL / MariaDB

MariaDB y MySQL son dos de las mejores opciones para su servidor de base de datos en Linux. Para este ejemplo, usaremos MariaDB. Para instalarlo en su servidor, ejecute:

sudo apt-get install mariadb-server mariadb-client

instalar Mariadb

Una vez hecho esto, deberá usar un script adicional que viene con el paquete. Establecerá las medidas de seguridad básicas para su servidor de base de datos. Comience escribiendo:

sudo mysql_secure_installation

En el primer paso, se le pedirá que proporcione la contraseña raíz de MySQL. presione el Entrar botón para continuar ya que aún no se ha creado. Luego, siga el resto de las instrucciones que aparecen en la interfaz de línea de comandos.

Instalación segura de Mariadb

Finalmente, puede verificar si mi servidor de base de datos está operativo ejecutando:

sudo systemctl status mysql

4 Crear un host virtual

La siguiente tarea será crear un directorio dedicado para los archivos de su sitio web. Comience cambiando su directorio de trabajo:

cd / var / www / HTML

Use este comando para crear una carpeta para su dominio y una adicional dentro de:

sudo mkdir -p dominio-ejemplo.com/public_html

Luego, haz el administrador de página web usuario creamos previamente el propietario mediante el uso de:

sudo chown -R webmaster: webmaster domain-example.com/public_html

También deberá asegurarse de que los permisos de lectura se apliquen al directorio raíz de Apache. En este caso:

sudo chmod -R 755 / var / www / html /

En este punto, Apache obtiene todas las configuraciones del 000-default.conf archivo. Tendremos que copiar el contenido de este archivo y crear uno separado para nuestro nombre de dominio. La forma más fácil de copiar una plantilla de la configuración del host virtual es mediante el siguiente comando:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

Básicamente, esto hace una copia del archivo con un nombre diferente en el mismo directorio. Este es el archivo que le dice a su servidor web Apache la ubicación del directorio raíz de un dominio, el registro de errores y otras rutas importantes. Para cambiar su contenido, usaremos nano:

sudo nano /etc/apache2/sites-available/domain-example.com.conf

Ejemplo de configuración de Apache:

# La directiva ServerName establece el esquema de solicitud, el nombre de host y el puerto que
# el servidor usa para identificarse. Esto se usa al crear
# URL de redireccionamiento. En el contexto de hosts virtuales, ServerName
# especifica qué nombre de host debe aparecer en el host de la solicitud: encabezado a
# coincide con este host virtual. Para el host virtual predeterminado (este archivo) esto
# el valor no es decisivo ya que se utiliza como host de último recurso independientemente.
# Sin embargo, debe configurarlo para cualquier host virtual adicional explícitamente.

ServerAdmin [correo electrónico protegido]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName dominio-ejemplo.com
ServerAlias ​​www.dominio-ejemplo.com

# Loglevels disponibles: trace8, …, trace1, debug, info, Notice, Warn,
# error, crítico, alerta, emerg.
# También es posible configurar el nivel de registro para
# módulos, por ejemplo.
#LogLevel info ssl: advertir

ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log combinado

# Para la mayoría de los archivos de configuración de conf-available /, que son
# habilitado o deshabilitado a nivel global, es posible
# incluye una línea para un solo host virtual en particular. Por ejemplo el
# la siguiente línea habilita la configuración de CGI solo para este host
# después de que se haya deshabilitado globalmente con "a2disconf".
#Incluir conf-available / serve-cgi-bin.conf

Asegúrese de reemplazar todas las instancias de domain-example.com con su nombre de dominio real. Para guardar el archivo, presione CTRL + X y confirme escribiendo Y. El resultado final debería verse así:

Agregar configuración de dominio a Apache

En este punto, deberá desactivar el archivo de configuración de host virtual predeterminado y usar el recién creado. Este comando lo deshabilitará:

sudo a2dissite 000-default.conf

Luego, agregue el archivo de configuración creado recientemente como se muestra a continuación:

sudo a2ensite domain-example.com.conf

Por último, deberá reiniciar Apache para que se apliquen los cambios. Puede hacerlo ejecutando:

sudo systemctl reload apache2

Instaló correctamente LAMP en su servidor. Como su dominio ya está apuntando al servidor, es posible que deba esperar unas horas para que el DNS se propague por completo. Entonces debería ver una pantalla similar cuando visite su dominio a través del navegador.

contenido del directorio raíz del dominio

5. Configurar WordPress (o subir un sitio web)

Como la configuración inicial del servidor finalmente se ha completado, es hora de alojar un sitio web en él. En esta sección, le mostraremos un ejemplo general de cómo poner en funcionamiento un sitio de WordPress.

Crear una nueva base de datos MySQL y usuario

Comience accediendo a la interfaz MySQL a través del terminal:

sudo mysql

>Use la siguiente sintaxis para crear una nueva base de datos:

CREAR BASE DE DATOS wpdatabase;

Luego, cree un nuevo usuario y especifique la contraseña:

CREAR USUARIO ‘wpuser’ @ ‘localhost’ IDENTIFICADO POR ‘SuperSecurePassword123’;

A continuación, asigne privilegios administrativos a su usuario recién creado con:

OTORGUE TODOS LOS PRIVILEGIOS EN wpdatabase. * A ‘wpuser’ @ ‘localhost’;

¡Eso es! Su usuario y base de datos MySQL están listos para la acción. Para desactivar la interfaz, escriba:

salida

Mover archivos de WordPress a su servidor

Por último, pero no menos importante, tenemos que cargar los archivos reales del sitio web en el directorio raíz de su dominio. Hay dos enfoques que describiremos paso a paso:

  • Usando el comando wget para obtener la última versión de WordPress
  • Configurar un cliente FTP (como FileZilla)

Método 1: usar las herramientas de línea de comandos

La primera forma es usar un comando llamado wget. Para usarlo en su servidor, deberá instalarlo:

sudo apt-get install wget

Luego, cambie su directorio de trabajo a la carpeta raíz de su nombre de dominio:

cd /var/www/html/domain-example.com/public_html

Use el comando wget para descargar la última versión de WordPress de la web:

wget https://www.wordpress.org/latest.zip

Luego, extraiga todo el contenido del archivo usando:

descomprima el archivo .zip

Por defecto, todos los archivos aparecerán en un nuevo directorio llamado WordPress (lo que puede hacer que su sitio web funcione a través de dominio-ejemplo.com/wordpress) Para que todo funcione correctamente, tendremos que mover todos los archivos de ese directorio al anterior. Aquí te explicamos cómo hacerlo:

cd wordpress

El siguiente comando moverá todos los archivos del directorio actual a su ubicación especificada:

sudo mv * /var/www/html/domain-example.com/public_html/

Antes de comenzar la instalación, deberá preparar su archivo wp-config.php. Como solo se proporciona una muestra. Comience renombrándolo:

sudo mv wp-config-sample.php wp-config.php

Luego, edite el archivo usando nano y agregue los detalles de configuración de la base de datos MySQL.

sudo nano wp-config.php

Asegúrese de actualizar el MySQL Usuario, Base de datos, y Anfitrión secciones con los valores que creó anteriormente.

edición de la configuración de WP

Por último, visite su nombre de dominio en el navegador y verá la pantalla de configuración inicial de WordPress.

configuración inicial de WordPress

Una vez que lo termine, puede instalar un complemento de migración como All-in-One WP Migration para importar un sitio web de WordPress existente.

Método 2: usar un cliente FTP

Alternativamente, puede usar un cliente FTP como FileZilla. En caso de que haya configurado una clave SSH y haya deshabilitado la autenticación de contraseña, deberá usarla para iniciar sesión en lugar de la combinación normal de nombre de usuario y contraseña. Para configurar la conexión SFTP:

  1. Ir FileZilla Site Manager y agregue un Nuevo sitio.
  2. Establezca el protocolo en SFTP – Protocolo de transferencia de archivos SSH.
  3. Ingrese la IP de su servidor en el Anfitrión campo y establecer el puerto a 22.
  4. Establezca el tipo de inicio de sesión en Archivo de clave.
  5. Especifique la ruta a su clave SSH (p. Ej.. /Users/Name/.ssh/id_rsa).
  6. FileZilla lo convertirá en un .ppk archivo, que luego puede usar para hacer una conexión.

conversión de clave SSH

La configuración final debería verse así:

Configuración de FileZilla sftp

Ahora, podrá acceder a su servidor a través de FTP y cargar cualquier archivo directamente desde su computadora.

FileZilla sftp connection

¡Felicidades! Aprendiste a alojar un sitio web en un servidor privado virtual con Ubuntu 18.04. Se ha cubierto todo, desde la configuración inicial del servidor hasta la preparación de la pila de software. Todo lo que queda es agarrar un servidor y ensuciarse las manos!

Este artículo fue publicado con la ayuda de Hostinger.com.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map