Cómo configurar PHPList en tu Servidor Cloud para enviar emails masivos

Continuando nuestra serie de artículos sobre los Servidores Cloud,  vamos a hablar de una de las muchas aplicaciones que podemos necesitar en una empresa y que la computación en la Nube, junto con el software libre, resuelven de forma idónea. Se trata de implementar un servicio de emailing masivo que nos permita enviar correos electrónicos a miles de personas sin complicaciones.

Usaremos únicamente software libre y nos basaremos en una aplicación web desarrollada en PHP bastante popular, PHPList. El proceso que describiremos a continuación cubre todas las etapas, desde la creación de la máquina virtual en Cloudbuilder Next hasta la instalación y primeros pasos en la configuración de PHPList.

Creación del Servidor  en la Nube

Comenzaremos por crear un Servidor Cloud con la configuración básica para poder ejecutar PHPList. Es muy sencillo gracias al Panel de Control Clouduilder Next

Basta acceder a la sección Infraestructura del Panel  y en la pestaña Servidor, pulsamos el botón Crear. Aparecerá un formulario donde colocaremos las características de la máquina a aprovisionar. En este caso, no necesitamos un servidor especialmente potente, por lo que vamos a comenzar con las características más básicas, recordando que gracias a la computación en la Nube siempre que sea necesario se puede ampliar la cantidad de recursos asignados a la máquina. Otra medida que también nos permite esta modalidad es el apagado del servidor cuando no lo estamos utilizando, para reducir los costes cuando no se están realizando campañas de emailing.

Aunque puedes configurar el Servidor Cloud según tus propias necesidades, en este ejemplo comenzamos con uno de 1 core, 1 Gb de RAM y 20 Gb de espacio en disco SSD.

crearserver

Escogeremos como sistema operativo Linux, por ser gratuito y porque es realmente el entorno más natural donde se puede ejecutar PHP. La distribución de Linux que se escoja es un poco indiferente, pero en este tutorial nos vamos a decantar por Ubuntu 14.04. Para ello, realizamos los siguientes pasos:

  • En la sección Imágenes seleccionamos el icono etiquetado como SO.
  • Seleccionamos Linux como sistema operativo, Ubuntu como distribución, su versión 14.04Arquitectura de 64 bits.
  • En Instalación base podemos escoger Estándar. Esto nos ayudará a ahorrarnos una serie de pasos iniciales de instalación de diversos paquetes como el servidor web. Podríamos escoger también la opción de instalación Mínima y, en ese caso, para comenzar tendríamos que realizar manualmente la tarea de instalar Apache, PHP y MySQL, componentes necesarios para ejecutar PHPList.
  • Como software adicional podemos seleccionar Plesk si deseamos contar con el Panel de Control para la instalación de múltiples dominios y gestión de los recursos. Es un fantástico complemento a un Servidor Cloud, ya que nos facilitará la configuración de la máquina sin tener los conocimientos necesarios de sistemas. Sin embargo, nosotros no lo vamos a usar en esta ocasión, así que no lo marcaremos.

imagenes-arsys

De momento, en Configuración Avanzada  lo único que vamos a hacer es indicar la clave con la que nos conectaremos al servidor, que será la misma que se configurará en el usuario root de la base de datos MySQL.

Apretamos el botón de Crear  y esperamos unos segundos para el despliegue del Servidor Cloud.

Una vez tenemos la máquina, podemos hacer una primera prueba conectándonos a la IP asignada a través de un navegador y deberíamos encontrar la página predeterminada de la instalación de Apache.

Instalación de PHPList

Como hemos seleccionado una imagen estándar del sistema operativo, ya contiene todo lo que necesitamos para trabajar con PHP y MySQL, que son los requisitos básicos de PHPList. Ahora vamos a conectarnos a la máquina para instalar el software de listas de correo, así que: ssh root@0.0.0.0.

Cambia  0.0.0.0 por la IP asignada a tu máquina y ten en cuenta que, si conectas por Putty en Windows, este comando este no lo lanzas en el sistema directamente, sino que debes configurar la conexión en el formulario de conexiones.

Antes de instalar los archivos de PHPList tenemos que crear una base de datos específica para usar en el sistema. Para ello conectamos con MySQL y lanzamos los comandos adecuados para crear esa base de datos.

mysql -u root -p

Indicamos nuestra clave de root.

create database phplist;

Luego salimos de MySQL con exit o quit.

Ahora vamos a situarnos en la carpeta de Apache, el servidor web.

cd /var/www/
Descargamos el archivo comprimido de la aplicación, en su última versión. El comando sería algo como el que sigue, aunque quizás la versión de PHPList en el momento de la lectura de este artículo haya cambiado.

wget http://prdownloads.sourceforge.net/phplist/phplist-3.0.12.tgz

Descomprimimos el paquete tar -xvf phplist-3.0.12.tgz.

Ahora tenemos todos los archivos de la aplicación en la carpeta phplist-3.0.12 (o la que corresponda según el nombre de nuestra versión). Tendremos que mover algunos archivos a otra carpeta. Aquí ya depende de la estructura de carpetas que quieras tener en tu servidor y si tienes otros contenidos en el servidor web aparte del propio PHPList.

El document root de Apache para esta instalación de Ubuntu es /var/www/html/ y por tanto tendremos que colocar en esa carpeta los archivos que Apache necesite servir. Una alternativa sería mover a /var/www/ todo el contenido de la carpeta phplist-3.0.12 y cambiar el nombre de la carpeta public_html de PHPList por html. Para realizar estas acciones, estando situados en la carpeta /var/www/ hacemos:

mv phplist-3.0.12/* .

rm -rf html

mv public_html html

Ahora tenemos que acceder al archivo de configuración de PHPList para indicarle los datos de la base de datos que acabamos de crear. Este archivo está en la ruta /var/www/html/lists/config/config.php.

Lo editas con Vim, Nano o tu editor preferido y colocas los datos de la base de datos:

# what is your Mysql database server hostname
$database_host = "localhost";

# what is the name of the database we are using
$database_name = "phplist";

# what user has access to this database
$database_user = "root";

# and what is the password to login to control the database
$database_password = 'TU_CLAVE_DE_ROOT';

Además, otra acción opcional que puede ser interesante para los hispanohablantes sería definir el lenguaje predeterminado. Para ellopuedes añadir esta línea de código a tu config.php:
$default_system_language = "es";

¡Ya casi está! Ahora podrías entrar con tu navegador a la ruta de instalación del sistema de listas, que está en el directorio lists, y seguidamente en la carpeta de administración admin. La URL sería algo como esto: http://0.0.0.0/lists/admin/.

config-bb1

Verás que te pide inicializar la base de datos, pulsas el enlace para realizar esta acción y completas el formulario.

config-bb2

A partir de aquí ya tienes el sistema instalado, pero todavía quedan varias tareas de configuración que ya serían más propias de tu organización en particular, como crear una lista, la página de suscripción, etc.