Otro navegador web en tu servidor web

Ayer hablaba de cómo tener un navegador web en tu servidor web con PhantomJS. Hoy hago referencia a otro, SlimerJS. En la página web dice:

  • Opening a webpage,
  • Clicking on links,
  • Modifying the content…

SlimerJS is useful to do functional tests, page automation, network monitoring, screen capture, etc.

SlimerJS is similar to PhantomJs, except that it runs Gecko, the browser engine of Mozilla Firefox, instead of Webkit.

Un navegador web en tu servidor web

Llevaba tiempo queriendo saber cómo se hace esto, cómo puedes ejecutar un navegador web en tu servidor web para, por ejemplo, realizar una captura de pantalla y mostrar cómo se visualiza una página web un navegador o para, por ejemplo, tener una representación de la página web (con su JavaScript ejecutado, su CSS aplicado) y poder extraer cierta información.

Para hacer esto necesitas un headless browser, un navegador web sin interfaz gráfico. Hay unos cuantos por ahí fuera, pero parece que uno de los más usados hoy en día es PhantomJS, basado en WebKit (el motor de Google Chrome y Safari), que ofrece:

PhantomJS is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.

Cómo verificar la conexión a un servidor

Muchas veces intentamos conectarnos a un servidor web y recibimos un mensaje de error del navegador como “conexión cerrada” o “conexión requirió demasiado tiempo” o similar.

¿Qué problema hay? Pueden ser muchas cosas… ¿pero realmente el problema está en el servidor o el problema lo tenemos nosotros?

Hay diversas formas de averiguar si el problema lo tenemos nosotros con nuestro ordenador, nuestra conexión o nuestro proveedor de acceso a Internet. Dos muy fáciles son usar Is down for everyone or just me?, un sitio web que comprueba la conexión al sitio web que le digamos, o utilizar un proxy online, como por ejemplo Zend2.com.

Servidores web para Windows

En los sistemas operativos Windows de Microsoft, el servidor web nativo se llama Internet Information Services (IIS). Sin embargo, también existen otras alternativas:

  • Apache, quizás el mejor servidor web actual.
  • XAMPP, disponible para Windows, Linux, Mac OS X y Solaris, contiene Apache, MySQL, PHP y Perl preconfigurados y listos para usar. Es portable, se puede utilizar sin instalar, por lo que se puede llevar en una memoria USB.
  • WampServer, incluye Apache, MySQL y PHP. Necesita instalación, pero tiene la ventaja que permite instalar múltiples versiones de los programas que lo componen y reproducir la configuración exacta del servidor de producción.
  • EasyPHP, incluye Apache, MySQL y PHP. Dispone de módulos preconfigurados con aplicaciones conocidas (WordPress, Drupal, Joomla, etc.) listas para instalar y utilizar. Es portable, se puede utilizar sin instalar, por lo que se puede llevar en una memoria USB.
  • Server2Go, se puede usar desde dispositivos de solo lectura como un CD-ROM.