Guía práctica para alojar un sitio web

Actualizado el 3 de octubre, 2016. Por BlueHosting.

Una vez que adquiere su plan y selecciona la distribución apropiada de Linux para su servidor es hora de poner manos a la obra. En esta guía explicamos en un enfoque completo y práctico sobre cómo alojar un sitio web —sin dejar detalles de lado. Incluimos la instalación y configuración de una infraestructura LAMP (Lamp Apache MySQL y PHP), la cual es una de las opciones más comunes, además de una explicación detallada sobre como cargar sus archivos y añadir sus registros DNS. ¡Al finalizar tendrá los conocimientos necesarios para alojar uno o más sitios en su nuevo servidor!

  • Los paquetes y configuraciones mencionados en esta guía están basados en distribuciones Ubuntu 14.04 LTS y Debian 8. Si desea utilizar otra distribución, o si desea utilizar una infraestructura LEMP en lugar de una infraestructura LAMP le sugerimos que explore nuestra plataforma de documentación en busca de tutoriales adecuados según su sistema operativo y salte la primera sección de este tutorial. Puede regresar y continuar en la sección Cargar archivos.
  • Esta guía está diseñada para sitios web pequeños/medianos que estén ejecutándose con WordPress, Drupal u otro sistema de gestión de contenidos. Si su sitio web no cumple con las características de estas categorías, tendrá que evaluar sus requerimientos e instalar paquetes personalizados que se adapten a estos.
  • Esta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados están precedidos por la utilidad sudo. Si usted inicia sesión como root simplemente obvie el uso de este prefijo.

Servidor web

El primer paso para alojar un sitio web es instalar un servidor web, una aplicación capaz de entregar su contenido a través de Internet. Esta sección le ayudará a comenzar con la instalación y uso de Apache, el servidor web más popular y utilizado en la web a nivel mundial. Para más información sobre Apache o para consultar acerca de otros servidores web alternativos como nginx por favor explore nuestra plataforma de documentación.

Instalar Apache

Verifique e instale todas las actualizaciones disponibles para su sistema e instale Apache en su Servidor:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install apache2

Es probable que se le pida confirmar si desea instalar los paquetes de actualización, en ese caso escriba s o y y presione Enter. Su servidor descargará, instalará e iniciará el servidor web Apache.

Optimizar Apache según su servidor

Instalar Apache es un proceso sencillo, pero si permite que se ejecute con las opciones predeterminadas, su servidor podría quedarse sin memoria. Es por esto que es muy importante optimizar la configuración de Apache antes de comenzar a alojar un sitio web en su servidor.

Nota: Estas instrucciones están diseñadas para la optimización de un servidor con 2 GB de memoria RAM, pero puede usar esta información para otro servidor haciendo una equivalencia directa, es decir, si su servidor tiene 1 GB de memoria RAM, simplemente divida los valores mostrados entre 2.

  1. Solo por seguridad, guarde una copia del archivo de configuración de Apache. Puede restablecer dicha copia (apache2.backup.conf) si algo ocurre con su archivo de configuración.

    sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.backup.conf
    
  2. Abra el archivo de configuración para su edición:

    sudo nano /etc/apache2/apache2.conf
    

    Esto abrirá el archivo con el editor nano, pero puede utilizar otro de su preferencia.

  3. Asegúrese de establecer los siguientes valores:
    Nota: En Ubuntu 14.04, debe anexar la sección IfModule mostrada al final de su archivo apache2.conf:

    KeepAlive Off
    
    ...
    
    <IfModule mpm_prefork_module>
        StartServers 4
        MinSpareServers 20
        MaxSpareServers 40
        MaxClients 200
        MaxRequestsPerChild 4500
    </IfModule>
    
  4. Guarde los cambios en el archivo de configuración de Apache. Si está usando nano, entonces presione CTRL + X y luego presione Y. Finalmente pulse Enter para confirmar.

  5. Reinicie Apache para que los cambios surtan efecto:
    sudo service apache2 restart
    

¡Buen trabajo! Ha optimizado Apache exitosamente para su servidor, lo que mejora el desempeño e implementa medidas de seguridad para prevenir el consumo excesivo de recursos. Ya casi está listo para alojar sitios web con Apache.

Configurar los hosts virtuales basados en nombre

Ahora que su servidor web Apache está ajustado para un desempeño óptimo, es momento de comenzar con el alojamiento de uno o más sitios web. Hay varios métodos de lograr esto. En esta sección, utilizará los hosts virtuales basados en nombre para alojar sitios web en su directorio principal.

  1. Desactive el host virtual determinado de Apache:

    sudo a2dissite *default
    
  2. Navegue a su directorio /var/www/html:

    cd /var/www/html
    
  3. Cree una carpeta para alojar su sitio web, remplazando ejemplo.com con su nombre de dominio:

    sudo mkdir ejemplo.com
    
  4. Cree un grupo de subdirectorios dentro del que acaba de crear para poder almacenar los archivos, logs y respaldos de su sitio web. Ingrese los siguientes comandos, remplazando ejemplo.com con su nombre de dominio:

    sudo mkdir -p ejemplo.com/public_html
    sudo mkdir -p ejemplo.com/log
    sudo mkdir -p ejemplo.com/backups
    
  5. Cree al archivo de host virtual para su sitio web. Remplace ejemplo.com y ejemplo.com.conf con su nombre de dominio:

    sudo nano /etc/apache2/sites-available/ejemplo.com.conf
    

    Advertecia: El nombre del archivo debe terminar en .conf en versiones de Apache 2.4 y posteriores. (Apache 2.4 es la versión predeterminada en Ubuntu 14.04). La extensión .conf es también retrocompatible con versiones anteriores.

  6. Ahora es momento de crear una configuración para su host virtual. Hemos creado algunos ajustes básicos para comenzar. Copie y pegue la configuración mostrada a continuación en el archivo que acaba de crear. Remplace las ocurrencias de ejemplo.com con su nombre de dominio real:
    Extracto del archivo: /etc/apache2/sites-available/ejemplo.com.conf

    # domain: ejemplo.com
    # public: /var/www/html/ejemplo.com/public_html/
    
    <VirtualHost *:80>
      # Admin email, Server Name (domain name), and any aliases
      ServerAdmin webmaster@ejemplo.com
      ServerName  ejemplo.com
      ServerAlias www.ejemplo.com
    
      # Index file and Document Root (where the public files are located)
      DirectoryIndex index.html index.php
      DocumentRoot /var/www/html/ejemplo.com/public_html
      # Log file locations
      LogLevel warn
      ErrorLog  /var/www/html/ejemplo.com/log/error.log
      CustomLog /var/www/html/ejemplo.com/log/access.log combined
    </VirtualHost>
    
  7. Guarde los cambios del archivo de configuración del host virtual presionando CTRL + X y luego presionando Y. Presione Enter para confirmar.

  8. Active su nuevo sitio web, remplazando ejemplo.com con su nombre de dominio.

     sudo a2ensite ejemplo.com.conf
    

    Lo que hace este comando es crear un enlace simbólico a su archivo ejemplo.com.conf en el directorio apropiado para hosts virtuales activos.

  9. El comando anterior le alertará que debe reiniciar Apache para guardar los cambios. Reinicie para aplicar la nueva configuración:

     sudo service apache2 restart
    
  10. Repita los primeros nueve pasos para cualquier otro sitio web que quiera alojar en su Servidor.

¡Felicidades! Ha configurado Apache para que aloje uno o más sitios web en su servidor. Después de cargar sus archivos y añadir los registros DNS más adelante en esta guía, sus sitios web serán accesibles en todo el mundo.

Base de datos

Las bases de datos almacenan datos en una forma estructurada y fácil de manejar, sirviendo como base para cientos de aplicaciones web y de servidores. Hay una gran variedad de plataformas de bases de datos disponibles que son además de código abierto. Estas cumplen con los requerimientos de la gran mayoría de sitios web. Esta sección le ayudará a dar los primeros pasos con MySQL, una de las plataformas para bases de datos más populares hoy en día. Para más información sobre MySQL y otras bases de datos por favor consulte las guías en nuestra plataforma de documentación.

Instalar MySQL

  1. Instale MySQL. Su servidor descargará, instalará e iniciará el servidor de base de datos MySQL:

    sudo apt-get install mysql-server
    
  2. Se le pedirá que ingrese una contraseña para el usuario root de MySQL. Este no está relacionado con el usuario root de Servidor, asegúrese de usar una contraseña segura y diferente por propósitos de seguridad. Guarde la contraseña en un lugar seguro, la necesitará para iniciar sesión en MySQL más adelante.

  3. Asegure MySQL usando la utilidad mysql_secure_installation:

    sudo mysql_secure_installation
    
  4. Irán apareciendo las instrucciones de la utilidad mysql_secure_installation. Siga dichas instrucciones para remover cuentas de usuario anónimas, deshabilitar el inicio de sesión remoto con el usuario root y eliminar la base de datos de prueba.

¡Eso es todo! MySQL está ahora instalado y ejecutándose en su servidor.

Optimizar MySQL para su servidor

MySQL consume demasiada memoria cuando se usa con la configuración predeterminada. Para limitar el uso de recursos, deberá editar el archivo de configuración de MySQL.

Nota:
Estas instrucciones están diseñadas para optimizar una instalación de MySQL 5.5 en un servidor con 2 GB de RAM. Si su servidor no tiene la misma cantidad de memoria, comience con estos valores y modifíquelos cuidadosamente mientras observa el uso de memoria en busca de problemas de desempeño.

  1. Abra el archivo de configuración de MySQL para su edición:

    sudo nano /etc/mysql/my.cnf
    
  2. Comente todas las líneas que comiencen con key_buffer. Esta es una opción obsoleta y usaremos la opción correcta en su lugar.

  3. Edite los siguientes valores:
    Extracto del archivo: /etc/mysql/my.cnf

    max_allowed_packet = 1M
    thread_stack = 128K
    
    ...
    
    max_connections = 75
    

    Nota: En MySQL 5.6, quizás deba agregar estas líneas junto con [mysql] en la parte superior. En las versiones más antiguas, puede haber varias entradas para una sola opción así que asegúrese de editar todas las ocurrencias.

  4. Agregue las siguientes líneas al final de my.cnf:
    Extracto del archivo: /etc/mysql/my.cnf

    table_open_cache = 32M
    key_buffer_size = 32M
    
  5. Guarde los cambios en el archivo de configuración de MySQL presionando CTRL + X, presionando luego Y y finalmente Enter para confirmar.

  6. Reinicie MySQL para guardar los cambios:
    sudo service mysql restart
    

Ahora que ha editado el archivo de configuración MySQL, está listo para crear e importar bases de datos.

Crear una base de datos

La primero que debe hacer en MySQL es crear una base de datos. Si usted ya tiene una base de datos que quiere importar, entonces pase a la sección Importar una base de datos.

  1. Inicie sesión como root en MySQL:

    mysql -u root -p
    

    Se le pedirá la contraseña del usuario root. Ingrese la contraseña que estableció al momento de la instalación.

  2. Cree una base de datos, remplazando BDejemplo con el nombre que desea asignar a su base de datos:

    CREATE DATABASE BDejemplo;
    
  3. Cree un nuevo usuario en MySQL y luego otorgue al usuario los permisos para acceder a la nueva base de datos, remplazando usuarioejemplo con su nombre de usuario real y micontraseña con su contraseña:

    GRANT ALL ON BDejemplo.* TO 'usuarioejemplo' IDENTIFIED BY 'micontraseña';
    

    Nota: Los nombres de usuario y contraseñas MySQL solo se utilizan por los scripts para acceder a la base de datos. No necesitan representar cuentas de usuario reales en el sistema.

  4. Diga a MySQL que vuelva a cargar las tablas con los permisos adecuados:

    FLUSH PRIVILEGES;
    
  5. Ahora que ha creado la base de datos y ha otorgado a un usuario los permisos a la base de datos, puede salir de MySQL:

    quit
    

Ahora tiene una nueva base de datos que puede utilizar para su sitio web. Si no necesita importar una base de datos, puede continuar con la sección de PHP.

Importar una base de datos

Si ya tiene un sitio web, quizás quiera importar una base de datos existente en MySQL. Es fácil y le permite levantar un sitio web ya establecido y mantenerlo en ejecución en su servidor en cuestión de minutos.

El primer paso es cargar los archivos de su sitio web en Servidor. Vea las instrucciones en la sección Cargar archivos.

Importe la base de datos, remplazando miusuario con su nombre de usuario de MySQL y BDsitioweb con el nombre de la base de datos que quiere importar. Se le pedirá la contraseña MySQL:

mysql -u miusuario -p BDsitioweb < archivo.sql

Su base de datos será importada en la instalación MySQL de su servidor.

PHP

PHP es un lenguaje de programación de scripts de propósito general que permitir producir páginas web interactivas y dinámicas. Muchas aplicaciones web populares y sistemas de gestión de contenidos, como WordPress y Drupal, están escritos en PHP. Para desarrollar o alojar sitios web usando PHP, primero debe instalar el paquete base y un par de módulos.

Instalar PHP

  1. Instale el paquete PHP base:

    sudo apt-get install php5 php-pear
    
  2. Agregue la extensión para el soporte MySQL en PHP:

    sudo apt-get install php5-mysql
    

Optimizar PHP según su servidor

Después de instalar PHP, tendrá que activar el registro de eventos y optimizar PHP para obtener un mejor desempeño. El ajuste al cual debería prestarle más atención es memory_limit, el cual controla cuánta memoria es asignada a PHP.

Nota:
Las instrucciones están designadas para optimizar un servidor de 2GB de memoria RAM, pero puede usar esta información como referencia para cualquier servidor. Por ejemplo, si tiene un servidor más grande, puede aumentar el límite de memoria a un valor más grande como 256M.

  1. Abra el archivo de configuración de PHP:

    sudo nano /etc/php5/apache2/php.ini
    
  2. Verifique que lo siguiente esté configurado tal y como se muestra a continuación. Todas las líneas enumeradas abajo no deben estar comentadas. Para esto, asegúrese de eliminar los signos de punto y coma (;) al principio de las líneas:
    Extracto del archivo: /etc/php5/apache2/php.ini

    max_execution_time = 30
    memory_limit = 128M
    error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
    display_errors = Off
    log_errors = On
    error_log = /var/log/php/error.log
    register_globals = Off
    

    Nota: El ajuste de 128M en la variable memory_limit es una pauta general. Aunque este valor debería ser suficiente para la mayoría de sitios web, algunos sitios más grandes y otras aplicaciones web podrían requerir 256 megabytes o más.

  3. Guarde los cambios presionando CTRL + X, luego la tecla Y y finalmente Enter.

  4. Cree el directorio /var/log/php/ para almacenar el registro de error de PHP:

    sudo mkdir -p /var/log/php
    
  5. Cambie el propiertario del directorio /var/log/php/ a www-data, el usuario bajo el cual se ejecuta PHP:

    sudo chown www-data /var/log/php
    
  6. Reinicie Apache para cargar el módulo PHP:

    sudo service apache2 restart
    

¡Felicidades! Ha instalado y configurado PHP en su Servidor aprovechando los recursos al máximo.

Cargar archivos

Ya ha instalado con éxito los módulos Apache, MySQL y PHP. En otras palabras, ha implementado una infraestructura LAMP en su servidor. Ha llegado el momento de cargar un sitio web a su servidor. Este es uno de los últimos pasos antes de activar el interruptor y publicar su sitio web en Internet.

  1. Si aún no lo ha hecho, descargue e instale un cliente con capacidad SFTP en su computador local. Recomendamos usar el cliente SFTP FileZilla. Puede consultar nuestro tutorial sobre FileZilla para más información.
  2. Siga las instrucciones en la guía referenciada en el paso 1 para conectarse a su servidor.
  3. Cargue los archivos de su sitio web al directorio /var/www/html/ejemplo.com/public_html (remplazando ejemplo.com con el nombre real de su dominio).
    Nota: Si usted configuró varios hosts basados en nombre, no olvide cargar los archivos de otros sitios web en sus directorios respectivos.

Si está usando un CMS como WordPress o Drupal, será necesario configurar el archivo de configuración para que apunte el sistema de gestión de contenidos a la base de datos MySQL. Este tema no se aborda en este tutorial.

Probar su sitio web

Una buena práctica es probar su sitio web antes de añadir los registros DNS. Esta es su última oportunidad de verificar todo y asegurarse de que luzca bien antes de lanzarlo al Internet.

  1. Ingrese la dirección IP de su servidor en la barra de direcciones de su navegador web favorito, por ejemplo: http://111.222.33.44 (remplazando con su dirección IP real). Se debería cargar su sitio web en el explorador.
  2. Si usted está planificando alojar varios sitios web, puede probar los hosts virtuales editando el archivo hosts en su computador local. Para más información puede consultar nuestro tutorial: ¿Cómo hacer una visualización previa de su sitio web sin DNS?.
  3. Pruebe los hosts basados en nombre ingresados los nombres de dominio en la barra de direcciones de su navegador web. Los sitios web deberían cargar en dichos navegadores.
    Nota: recuerde eliminar las entradas para los hosts basados en nombre de su archivo hosts cuando haya terminado de probar los registros DNS.

Añadir registros DNS

Ahora debe apuntar su nombre de dominio a su servidor o servidor de Servidor. Este proceso puede llevar un tiempo, así que permita unas 24 horas para que los cambios en el DNS se vean reflejados en Internet.

  1. Inicie sesión en su Panel de Servidor.
  2. En el menú superior, seleccione DNS.
  3. Escriba su nuevo dominio en el cuadro de texto Dominio, seleccione la dirección IP (se muestra la dirección del servidor seleccionado) y haga clic en Agregar Dominio.
    Agregar dominio
  4. Se mostrará un Recordatorio de configuración de nameserver (DNS) y luego se agregará el nuevo dominio a la lista correspondiente.

Configurar Reverse DNS

  1. Inicie sesión en su Servidor.
  2. Seleccione el servidor en el cual hará los cambios.
  3. Haga clic en la pestaña Reverse DNS.
  4. Escriba el nombre del dominio que desea agregar al registro rDNS, seleccione la dirección IP apropiada de la lista desplegable y haga clic en Agregar dominio:
    Anexo 2 Agregar rDNS

¡Felicidades! Ha configurado reverse DNS para su nombre de dominio y ha completado este tutorial.

Recursos adicionales

Para complementar la información aquí presentada puede consultar otros recursos en nuestra plataforma de documentación. Para encontrar tutoriales referentes a la infraestructura LAMP use las palabras clave LAMP + su distribución Linux. También puede consultar tutoriales que explican la instalación de LEMP, en el cual se sustituye el servidor web Apache por Ngnix. También puede consultar los siguientes recursos para complementar la información aquí presentada:

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...