Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. Apache
Webdesign

Cómo instalar, configurar y asegurar tu propio servidor de sitio web desde cero

by
Difficulty:IntermediateLength:LongLanguages:
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Spanish (Español) translation by Nadia Gonzales (you can also view the original English article)

Si alguna vez has sido propietario o tienes un sitio web, estarás familiarizado con una parte importante de este: alojamiento de calidad, buenos servidores. Y si bien hay una gran cantidad de compañías de alojamiento disponibles, encontrar la mejor opción a veces puede ser complicado. Este tutorial de nivel intermedio te ayudará a comprender el alojamiento con un VPS o un servidor dedicado.

¿Para quien es esto?

Si no eres desarrollador, autor de Themeforest o no tienes conocimientos básicos sobre la administración de servidores, esta publicación no es para ti. Te sugiero que compres una solución profesional perfectamente adecuada, lista para usar, con herramientas prefabricadas.

Sin embargo, si tu tarea requiere más recursos que el sitio web de WordPress promedio, sería prudente considerar cambiar de alojamiento a VPS o servidor dedicado. Y no pienses que tendrás que pagar $ 5,000 mensualmente para obtener una de estas opciones: los precios son mucho más bajos de lo que crees, y el impacto positivo es mucho mayor.

¿Cuándo deberías considerar actualizar tu alojamiento?

¿En qué momento queda claro que tu alojamiento se está reduciendo? No hay límite absoluto o respuesta perfectamente correcta a esto. Pero puedes tomar la decisión correcta si respondes a estas preguntas:

  • ¿Tu sitio web tiene mucho tráfico?
  • ¿Quieres más fiabilidad y seguridad?
  • ¿Quieres un mejor control y acceso al servidor raíz?
  • ¿Estás preparado para resolver los problemas de su servidor sin ayuda o soporte? Un inconveniente importante es que probablemente no tendrás soporte, y tendrás que hacer varias cosas tu mismo: instalar el software de servidor de base de datos y web, mantener todo actualizado y, configurar todas las aplicaciones en (la mayoría de las veces) un entorno basado en Linux, a través de una interfaz de línea de comandos.

¿Qué elegir?

En este punto, supongamos que deseas algo más que una solución de alojamiento compartido, pero ¿qué elegir? VPS o un servidor dedicado?

  • Un VPS (servidor privado virtual) es una forma asequible de obtener la flexibilidad que necesitas, aunque seguirás compartiendo el servidor con otros a través de la "virtualización". Es mejor que el alojamiento compartido, pero no es la mejor opción disponible.
  • Un servidor dedicado es casi lo mismo que un VPS, pero en lugar de compartir recursos de hardware con otros a través de la virtualización, puedes utilizar toda la computadora para tu sitio web, exclusivamente.

El proceso de instalación y configuración es casi el mismo para el VPS y el servidor dedicado.

Lo que cubriremos en este artículo

Saltemos al núcleo de este artículo. Estaremos cubriendo un poco de:

  • Preparación
  • Instalación
  • Acceso al servidor
  • Instalación de Apache con Let´s Encrypt (SSL HTTPS), PHP7 y servidor MySQL
  • Actualización PHP
  • Instalación de phpMyadmin y seguridad
  • Revivir el sitio
  • Actualización del SO
  • Renovación de SSL
  • Solución de problemas
  • Conclusión

Preparación

Como este artículo trata sobre la instalación y configuración de un servidor dedicado / VPS ya existente, en este punto ya debes tener el servidor (en su estado predeterminado). No señalaré a ningún proveedor de servidores en particular, mi elección personal es ovh.ie, pero tu eres libre de elegir el proveedor de servidores que quieras. Lo único que recomiendo antes de tomar una decisión es: asegúrate de que tu proveedor de servidor tenga una infraestructura global sólida, es decir, presencia en al menos cinco continentes (lo siento, Antártida). Cuanta más presencia tenga, más valor obtendrás de sus recursos y rango de precios.

La mayoría de los proveedores te permitirán elegir dónde necesitas la presencia física de tu servidor. Esto es importante, ya que cuanto más cerca esté tu servidor de tu país o región, mayor será la carga y el rendimiento de tu sitio.

Antes de comprar el servidor, también debes pensar en la disponibilidad de CDN (red de entrega de contenido). Si tu sitio web tiene muchos archivos que estarán sirviendo a una amplia audiencia global, se requiere un CDN para aumentar el rendimiento de tu sitio web. Siempre puedes obtener la solución CDN por separado, por lo que esto no necesariamente afecta la elección de servidor.

Instalación

Una vez que hayas comprado tu servidor, lo recibirás como un servidor desnudo con el sistema operativo predeterminado. No habrá cPanel, ningún panel de Plesk, la única información que tendrás es:

  • Dirección IPv4 del VPS
  • Dirección IPv6 del VPS
  • Nombre del VPS
  • Usuario/Contraseña

Sin enlace, sin panel de administración: ¡nada! Primero, verifiquemos qué sistema operativo está instalado de manera predeterminada, puedes verlo en el panel de control de usuario del proveedor de tu servidor (no en el panel de control de tu servidor). Es probable que sea uno de los siguientes:

  • Arch Linux (64 bits)
  • Centos 6 (64 bits)
  • Centos 7 (64 bits)
  • Cpanel on CentOS 6 (64 bits)
  • Debian 7 (Wheezy) (64 bits)
  • Debian 8 (Jessie) (64 bits)
    Debian 9 (Stretch) (64 bits)
  • Ventana acoplable en Ubuntu 14.04 servidor
  • Ventana acoplable en 16.04 servidor
  • Drupal (64 bits)
  • Fedora 26 (64 bits)
  • Joomla! (64 bits)
  • Kubuntu 14.04 Escritorio
  • LAMP 1.0 (64 bits)
  • OpenVPN en Debian 8
  • Parallels Plesk 12 en Centos 6
    Parallels Plesk 12 en Ubuntu 14.04
  • Plesk en Debian 8 (64 bits)
  • Prestashop (64 bits)
  • Ubuntu 14.04 servidor
  • Ubuntu 16.04 servidor
    Ubuntu 18.04 servidor
  • VestaCP en Debian 8
  • Virtualmin en Debian 8
  • Wordpress (64 bits)

¡Vaya! Esa es una gran lista de sistemas operativos. Yo personalmente he probado los que figuran en negrita. En general, el proceso de configuración y las instrucciones son iguales para todos, aunque puede haber algunas diferencias de sintaxis para los comandos del sistema operativo. Mi elección personal es Ubuntu 16.04 o Ubuntu 18.04, así que demostraré el proceso completo para estos dos.

Si tu sistema operativo predeterminado es diferente, recomiendo instalar Ubuntu 16.04. Puedes hacerlo desde el panel de administración de tu proveedor de VPS / Servidor seleccionando el sistema operativo que necesitas de la lista. El proceso no debería tomar más de diez minutos y, una vez hecho, se te dará nueva información de acceso al servidor.

Puede que te preguntes por qué recomiendo instalar Ubuntu 16.04 si la versión 18.04 ya está disponible. Existen dos motivos principales:

  • En algún momento, deberás actualizar tu sistema operativo a una versión más nueva, y quiero mostrarte cómo puedes hacerlo, incluso con los sitios web existentes.
  • Si por alguna razón no puedes actualizar el sistema operativo, quiero mostrarte cómo puedes actualizar tu PHP a la última versión disponible en Ubuntu 16.04.

Acceso al servidor

Entonces, ¿cómo puedes acceder a tu servidor? Esto depende del SO de tu computadora personal y versión.

Para Windows 10, desde 2015, puedes conectarte a un servidor Secure Shell (SSH) sin instalar ningún software de terceros.

Para todas las versiones de Windows hay una herramienta muy simple para eso: PuTTY. PuTTY es un cliente SSH y telnet. PuTTY es un software de código abierto desarrollado y respaldado por un grupo de voluntarios.

Si tu SO es Mac tienes varias opciones:

  • Usando el cliente SSH incorporado en el SO Mac
  • Ejecutando SSH desde la línea de comandos del terminal.
  • Cyberduck en Mac es un cliente SSH sólido y conocido, este es bastante popular.

Estoy usando Windows 10, y mi elección personal es PuTTY. Entonces, comienza abriendo tu cliente SSH.

PuTTY

Como puedes ver, debemos ingresar nuestro nombre de anfitrión o dirección IP (asegúrate de que el tipo de conexión sea SSH). Después de la instalación del SO, recibirás por correo electrónico la información requerida para acceder a tu servidor:

  • Dirección IPv4 del VPS
  • Dirección IPv6 del VPS
  • Nombre del VPS
  • Usuario/Contraseña

Copia el nombre del VPS que recibiste, pégalo en el campo Nombre de anfitrión y luego presiona Abrir.

puTTY login

Se abrirá una ventana modal negra con el mensaje "Iniciar sesión como:". Escribe tu nombre de usuario y presiona Enter.

Se te pedirá que escribas tu contraseña (al escribir la contraseña no verás el proceso de escritura, por razones de seguridad) y luego presiona Enter.

Si has hecho todo correctamente, debes iniciar sesión y ver una pantalla similar a esta:

login screen

Este artículo no trata sobre cómo usar Linux con todos sus diversos comandos, por lo que no explicaré cada uno de los que usamos aquí. Aquí hay una lista de comandos comunes de Linux que puedes explorar más a fondo. Pero siguiendo las instrucciones que describo aquí, completarás las siguientes tareas: instalación, configuración, seguridad y actualización del servidor dedicado.

Instala Apache con Let's Encrypt (SSL HTTPS), PHP7 y el servidor MySQL

Escribe clear y presiona Enter. Se borrará la pantalla. Para comprobar qué versión de sistema operativo tenemos ahora, escribe lsb_release –a y presiona Enter. Si seguiste todos los pasos en la parte de instalación de este artículo, verás que tienes instalado el Ubuntu 16.04. instalado

En este punto, tenemos dos opciones: continuar con la versión del sistema operativo existente o actualizarla a la versión más actual. Ahora continuemos con la versión existente.

Ahora instalaremos el servidor Apache con PHP7 y el servidor MySQL, pero primero vamos a actualizar el sistema actual (no la versión del sistema operativo).

Escribe sudo apt-get update y presiona Enter.

Luego sudo apt-get upgrade y presiona Enter.

Es posible que se te solicite que confirmes el uso de espacio adicional en el disco para las actualizaciones, entonces presiona Y y Enter.

A continuación, quizá se te pida que realices una acción en un archivo de configuración: elige la acción predeterminada y continúa. Después de eso, escribe sudo apt-get install apache2 mysql-server php y presiona Enter. Por último, vuelve a confirmar el uso de espacio en disco con Y y Enter.

MySQL Password

Ingresa una contraseña para tu usuario de MySQL (asegúrate de que sea lo suficientemente fuerte) y repítela en el siguiente paso. Cuando el proceso finalice, serás el orgulloso propietario de un nuevo servidor Apache + servidor Mysql y PHP versión 7

Si ya tienes un dominio vinculado con tu servidor actual, ve a tu dominio. De lo contrario, ingresa en la ventana del navegador la dirección IPv4 de tu VPS y verás algo similar a esto:

New Apache server

SSL

Mira el campo de dirección de la ventana del navegador. Notarás que tu sitio utiliza el protocolo http, no https. Necesitamos instalar y activar el certificado SSL, así que vamos a utilizar la Autoridad de Certificación de Let's Encrypt de forma gratuita, automatizada y abierta. La sacaremos del repositorio en https://github.com/letsencrypt, pero primero necesitaremos instalar la aplicación Git.

Abre de nuevo tu cliente de línea de comandos y escribe sudo apt-get install git y presiona Enter.

Ahora escribe git clone https://github.com/letsencrypt/letsencrypt. Con Letsencrypt instalado, ahora vamos a navegar a la carpeta letsencrypt escribiendo cd letsencrypt / y presionando Enter.

Luego escribe ./letsencrypt-auto Deja que el proceso haga el resto, puede tomar un par de minutos hasta que aparezca un cuadro de diálogo con el texto:

Aquí quiero hacer una nota: si estás utilizando el marcador de posición del dominio VPS, es decir, tu nombre de anfitrión o dirección IPv4, puedes tener problemas con el cifrado de acceso. Es posible que veas:

Para resolver este problema ingresa tus dominios finales.

Suponiendo que no haya más problemas continúa ingresando tu dirección de correo electrónico, luego acepta los términos de letsencrypt.

Se abrirá un nuevo cuadro de diálogo que te pedirá que elijas si el acceso a https es requerido o si es opcional (es decir, si los usuarios pueden acceder a tus enlaces con http o si todos los enlaces deben redirigirse a https), te recomiendo que elijas la segunda opción. Si has hecho todo correctamente, verás un nuevo cuadro de diálogo con un mensaje de éxito. Presiona Enter y reinicia el servidor Apache escribiendo sudo systemctl restart apache2. Ahora, si visitas tu página, deberías ver que el https está activo:

we have https

Más adelante, te mostraré cómo puedes renovar tu certificado, porque un certificado de letencrypt es, de forma predeterminada, válido solo por 90 días.

Actualiza PHP

De acuerdo con los requisitos de WordPress, la versión mínima de PHP que necesitamos es 7.2 en el momento de la escritura. Si verificas la versión de PHP en Ubuntu 16.04 verás que es 7.0, 7.0.30 o 7.1. Para ejecutar esa verificación escribe en el cliente SSH: php -v

Antes de actualizar nuestro PHP tendremos que revisar los módulos de PHP instalados. Para hacer eso escribe: sudo dpkg --get-selections | grep -v deinstall | grep php

Haz una captura de pantalla o guarda el contenido en un archivo de texto: deberás instalar esos módulos nuevamente después de actualizar a PHP 7.2.

A continuación, necesitamos actualizar la lista de paquetes. Ejecuta los siguientes comandos para actualizar tus paquetes e instalar PHP 7.2 en tu servidor:

Ejecuta una verificación nuevamente para ver que has instalado PHP 7.2 correctamente.

Una vez hecho esto, necesitamos desactivar la versión anterior y decirle a Apache que use PHP 7.2. Escribe lo siguiente:

PHP 7.2 ahora debería estar activo en tu sitio web. Lo único que queda es instalar todos los módulos que verificamos antes de la actualización. Verifica la lista que guardaste antes y con las correcciones apropiadas escribe lo siguiente:

Reinicia el servidor apache con sudo systemctl restart apache2

Instala phpMyAdmin y asegúralo

¡Gran progreso! Ahora puedes preguntarte: ¿dónde colocas tu sitio y cómo creas las bases de datos? Comencemos por instalar y asegurar la aplicación phpMyadmin para una mejor administración de la base de datos.

Nota: si estás haciendo esto por separado, sin haber seguido todos los pasos anteriores, primero actualiza el sistema: sudo apt-get update

  • Para instalar phpMyAdmin escribe lo siguiente: apt-get install phpmyadmin php-mbstring php-gettext.
  • Para la selección del servidor, elige apache2.
  • Selecciona cuando se te solicite utilizar dbconfig-common.
  • Establece la contraseña de la aplicación mysql para phpMyAdmin.

Y ahora, si estás utilizando PHP 7.0, no el 7.2, habilita las extensiones de PHP mcrypt y mbstring (si tu PHP es 7.2 mcrypt ya no es necesario).

sudo phpenmod mcrypt

sudo phpenmod mbstring

Reinicia el servidor apache: sudo systemctl restart apache2

Ahora puedes acceder a la interfaz web visitando el nombre de dominio de tu servidor o la dirección IP pública seguida de / phpmyadmin.

phpmyadmin

Asegurando phpMyAdmin

En esta etapa, todos pueden escribir la dirección phpmyadmin y llegar aquí, por lo que necesitaremos asegurarla. ¿Cómo? Añadiendo una puerta de enlace adicional frente a toda la aplicación. Haremos esto utilizando las funcionalidades de autenticación y autorización .htaccess incorporadas de apache.

Primero tendremos que habilitar el uso de anulaciones de archivos .htaccess, así que escribe lo siguiente: nano /etc/apache2/conf-available/phpmyadmin.conf

Coloca el cursor justo después de DirectoryIndex index.php de esta manera, agregando Allowoverride All:

Presiona CTRL + X, presiona Y, presiona Enter.

Reinicia el servidor Apache: sudo systemctl restart apache2

Ahora crea el archivo .htaccess escribiendo: sudo nano /usr/share/phpmyadmin/.htaccess

Introduce la siguiente información:

Presiona CTRL + X, presiona Y, luego presiona Enter.

Crea el archivo .htpasswd para la Autenticación

sudo apt-get install apache2-utils

htpasswd -c /etc/phpmyadmin/.htpasswd root

Establece la contraseña y reinicia el servidor apache: sudo systemctl restart apache2

Ahora, si intentas acceder a phpmyadmin, verás un cuadro modal con el nombre de usuario y la contraseña requeridos:

password for phpmyadmin

Una vez que ingreses el nombre de usuario y la contraseña (recuerda que esto no es el usuario y la contraseña de MySQL), serás redirigido a la página de inicio de sesión habitual de phpMyAdmin. Ingresa tu usuario y contraseña de MySQL y tendrás acceso a todas tus bases de datos.

Revivir el sitio

Ahora es el momento de poner tu sitio en el servidor. Con la aplicación phpMyAdmin puedes crear o importar tu base de datos a través de un navegador regular. Pero para colocar los archivos de tu sitio en el servidor, necesitarás un cliente FTP, ya que no hay ningún administrador de archivos basado en la web disponible para nosotros.

Elige el cliente FTP que te guste, yo prefiero Filezilla. Al usar el acceso del servidor raíz que se te dio al comienzo de la instalación del servidor, conéctate a tu servidor a través de FTP utilizando el protocolo SFTP.

Una vez que hayas iniciado sesión, serás dirigido a la carpeta raíz. Aquí no tienes restricciones de área, por lo que puedes abandonar la carpeta raíz y acceder a la raíz del sistema de archivos del servidor. Navega a var/www/html; esta es la carpeta pública de tu sitio web y donde debes cargar todos los archivos de tu sitio web. Para acelerar el proceso, puedes cargar un solo archivo comprimido y descomprimirlo con un comando SSH. Para hacerlo, primero instalemos la aplicación de descompresión escribiendo en nuestro cliente SSH: apt-get install unzip. Después escribe el comando unzip archive.zip donde "archive" es el nombre exacto de tu archivo.

Ahora los archivos de tu sitio serán descomprimidos.

Actualizar el SO

No actualicé específicamente el sistema operativo antes de colocar el sitio en el servidor para mostrar cómo actualizar el sistema operativo sin pérdida de datos. Por supuesto, cualquier cosa puede salir mal, así que antes de actualizar el sistema operativo tendremos que hacer una copia de seguridad de nuestro sitio web. Para hacer eso primero, necesitaremos hacer una copia de seguridad de la base de datos a través de phpMyadmin y hacer una copia de seguridad de todos los archivos del sitio. La forma más sencilla es crear un archivo de los archivos de nuestro sitio web y descargarlo mediante FTP.

Para archivar el sitio primero, necesitaremos instalar la aplicación zip escribiendo: apt-get install zip

Después de esto, podemos ejecutar el comando: zip -r myarchive.zip myfolder donde "myfolder" es el nombre exacto de la carpeta del sitio.

Descarga tu archivo zip y tu archivo de base de datos; ahora estamos listos para actualizar el sistema operativo. Necesitarás unos veinte minutos. Si tu sitio está activo y tiene visitantes, actualiza el SO en un momento de poco tráfico.

Para actualizar el SO escribe lo siguiente:

Eso es. Una vez que la actualización haya terminado, puedes verificar la versión de tu sistema operativo escribiendo: lsb_release –a

Renovar SSL

Como ya mencioné, letsencrypt establece la fecha de caducidad de su certificado en 90 días, por lo que después de ese período deberás actualizar tu certificado. Para ello, abre tu cliente SSH, inicia sesión y navega hasta la raíz: cd root/letsencrypt

  • Detén el servidor apache con: sudo systemctl stop apache2.service
  • Luego escribe: ./letsencrypt-auto certonly
  • Elige 2
  • Ingrese tu nombre de dominio
  • Y reinicia el servidor apache con: sudo systemctl restart apache2

Solución de problemas

La instalación y configuración del servidor es una tarea compleja: muchas cosas pueden salir mal y tendrás que invertir tiempo y paciencia para resolver los problemas. Durante mi experiencia personal he experimentado varios problemas que quiero destacar para ti:

Permisos limitados para el usuario raíz. La primera vez que instalé un sitio web en mi servidor, recibí un mensaje de que WordPress no podía crear el archivo wp-config.php y no se podían mostrar las imágenes. Mi primer pensamiento fue cambiar los permisos de carpeta/archivos. Esto no era correcto, de hecho, el problema proviene del usuario raíz. Deberás cambiar el propietario de la carpeta html (tu carpeta pública). Para hacerlo, abre tu cliente SSH, inicia sesión y escribe: sudo chown -R www-data html

El segundo problema que me tomó mucho tiempo resolverlo fue que PHP no estaba analizando el sitio web, solo se mostraba como texto sin formato. Si experimentas esto, escribe lo siguiente en el cliente SSH:

Cambia el php7.0-fpm a tu versión.

Conclusión

La primera vez que encontré la tarea de configuración del servidor, realmente me hizo falta un tutorial como este. Tuve que recopilar información poco a poco, lo que llevó mucho tiempo y fue bastante difícil. Realmente espero que este artículo te ayude.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.