PHP-TUT-02 Montando los servidores

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Ya sabemos que las páginas dinámicas se programan empleando tecnologías de servidor. Para probar y analizar los ejercicios de esta serie de artículos, así cómo otros recursos PHP que publicaremos, o programar tus propias páginas dinámicas, necesitas tener un servidor de red que te proporcione los servicios necesarios. Por supuesto puedes buscar, si lo deseas, un servidor en Internet. Pero los que hay gratuitos no suelen tener las prestaciones que vamos a necesitar. Por otra parte, si cada nuevo código que vamos a probar debe ser transferido a un servidor remoto, vas a perder un tiempo precioso. Por estas y otras razones lo ideal es que tengas el servidor en tu casa. Esto tiene la ventaja añadida de que podrás implementar los servicios que necesites y configurarlos cómo te convenga en cada caso.

Como la mayoría de los usuarios no tienen una red local instalada en su domicilio, lo que vamos a hacer es usar un solo ordenador como cliente y servidor. Esto no es nada extraño. Muchos desarrolladores, incluido yo mismo, usamos este recurso para tener un entorno cómodo y práctico en el que crear nuestros proyectos. Así pues, nos encontramos con que en nuestro ordenador ya tenemos los programas clientes más habituales: el navegador de Internet (Google Chrome, Firefox, Ópera o cualquier otro) y el cliente de correo electrónico (p.e. Thunderbird). Si, además, montamos los programas servidores, ya tendremos una red local en nuestro ordenador. La única diferencia es que, al llamar a las páginas así creadas, en lugar de usar una dirección de Internet usaremos la dirección de nuestra propia máquina local (ya veremos cómo). Luego, una vez creado y probado un sitio, lo subiremos al servidor remoto que nos interese y allí estará disponible para todo el mundo. Lo que vamos a hacer en este capítulo es montar nuestra máquina para que constituya, por sí misma, una red y configurarla adecuadamente. Es un proceso muy simple y que sólo habrá que llevar a cabo una vez. Algunos de los programas que vamos a montar ahora no los emplearemos hasta otros artículos posteriores y, en su momento, los configuraremos adecuadamente.

LA PLATAFORMA SERVIDORA

Los programas que necesitaremos para seguir esta serie y para la mayoría de nuestros trabajos para Internet o para una Intranet serán los siguientes:

  • Servidor de páginas web.
  • Intérprete de PHP 7 (la última versión, de momento).
  • Servidor de bases de datos.
  • Servidor de correo electrónico.
  • Servidor y cliente de FTP.

En esta lista no incluimos el cliente web (navegador) ni el cliente de correo electrónico, porque esos los tiene ya todo el mundo en su equipo.

En este apartado vamos a hablar, aunque sea brevemente, sobre estas aplicaciones. Cómo muchos de vosotros ya sabéis, soy partidario de usar, siempre que sea posible, programas open source, es decir, de tecnología abierta, frente a programas propietarios. Esto es así por varias razones. Principalmente, porque el software open source es gratis, y no es cuestión de que para estudiar el funcionamiento de un programa o un lenguaje haya que pagar por él. Por otra parte los programas de tecnología abierta son tan eficientes y seguros como los programas de pago y, en muchos casos, más. Aquí no podremos usar open source siempre que lo deseemos, pero lo usaremos donde podamos. Si no, recurriremos a versiones trial (uso de 30 días) de determinadas aplicaciones comerciales. Excepción a esto es el sistema operativo. Los programas los vamos a ver sobre una plataforma Windows, no porque me guste más o menos que Linux (que lo de los gustos es muy personal) sino porque es la más extendida entre las personas que se asoman, por primera vez, a estas técnicas, que es a quienes van dirigidos estos primeros artículos de la serie de PHP.

EL SERVIDOR Apache

El programa que vamos a emplear como servidor de páginas web es el Apache (http://www.apache.org). Es el servidor web más extendido en Internet. La mayoría de los sitios que visitas a diario están corriendo sobre este servidor. Las razones son varias. Por una parte, es gratuito. No hay que que pagar nada para emplearlo. Por otra parte, es uno de los servidores más robustos que existen, muy seguro ante los ataques en la Red. Además, es extremadamente fácil de configurar. Los pocos datos de configuración que necesitaremos retocar están almacenados en un archivo de texto plano.

EL INTÉRPRETE DE PHP 7

El lenguaje de programación objeto de este libro funciona mediante el uso de un intérprete. Cuando el usuario solicita una página desarrollada mediante esta tecnología, el intérprete de PHP (http://www.php.net), instalado en el equipo servidor, lee el código de dicha página y lo ejecuta. A continuación genera una página HTML como resultado de la ejecución, y se la entrega al servidor web, quien se la envía al cliente. PHP es un lenguaje de scripts interpretados. En ese sentido el concepto es similar a JavaScript, dejando de lado el hecho de que este último se interpreta y ejecuta en el lado del cliente, y PHP lo hace en el lado del servidor. Por lo demás, la filosofía de trabajo es similar, aunque un lenguaje de servidor siempre ofrece más recursos y posibilidades que uno de cliente.

LA BASE DE DATOS MySQL

Dentro de las múltiples posibilidades que los sitios dinámicos ofrecen al usuario está la obtención de información almacenada en una base de datos en el servidor. Supón que quieres escribir una página desde la cual el usuario pueda obtener los resultados de los eventos deportivos que se celebran en su ciudad. Tendrás una base de datos donde almacenarás los resultados de encuentros de fútbol, partidos de tenis, combates de boxeo, carreras de caballos, etc. Tu página dinámica recibirá la solicitud del cliente sobre un determinado deporte, buscará esta información en la base de datos y se la servirá al cliente. En el mercado existen diversos sistemas de bases de datos. Nosotros hemos elegido para esta serie MySQL, por varias razones. Por una parte, es gratuito (aunque también existen licencias comerciales). Por otra parte, los datos se almacenan en archivos que tienen un tamaño mucho menor que otras bases de datos. Además, el motor de datos de MySQL es mucho más rápido, tanto grabando datos como localizándolos y recuperándolos, que el de otras bases de datos. Eso sin contar con que MySQL ofrece una gran seguridad sobre la integridad de los datos almacenados.

EL SERVIDOR DE CORREO

Es muy posible que tus páginas dinámicas incluyan la posibilidad de remitirle algún mensaje de correo electrónico a los usuarios. Por ejemplo, si desarrollas algún foro, o tablón de anuncios, en el que el usuario pueda incluir mensajes y otros usuarios puedan responderle con comentarios u otros mensajes. En ese caso, la página deberá poder mandarle al usuario un aviso, por correo electrónico, de que tiene nuevas respuestas a sus posts. Del mismo modo que para poder conectarnos a una página web es necesario un servidor web, para que se le manden al usuario mensajes es necesario un servidor específico. En este caso montaremos el Argo Mail Server.

EL SERVIDOR Y EL CLIENTE DE FTP

El lenguaje PHP permite escribir código que gestione la transferencia de información, archivos, documentos, etc., mediante el protocolo FTP. Para ello hace falta que la plataforma servidora incluya un servidor de FTP, lo mismo que para consultar páginas web hace falta un servidor HTTP. Nosotros usaremos el Filezilla FTP (https://filezilla-project.org/), que es gratuito.

INSTALANDO EL SOFTWARE

Vamos a instalar aquí todo el software que necesitaremos en esta serie de artículos, aunque, en los primeros, no lo usemos todo. Así ya no tendremos que andar luego pendientes de andar descargando e instalando aplicaciones.

XAMPP

Este programa es muy cómodo para usuarios de Windows (aunque también hay versiones para Linux y Mac), porque monta, de una sola tacada, Apache, el intérprete de PHP, el motor de MySQL, el servidor de FTP, y alguna cosilla más que, de momento, no nos preocupa. Lo descargamos de la siguiente dirección: https://www.apachefriends.org/es/download.html, pulsando sobre el enlace de la última versión correspondiente a nuestro sistema operativo. Una vez descargado, lo ejecutamos. Es muy posible que nos salga un aviso de que el antivirus podría dar un falso positivo con parte del software que se instala. Cómo sabemos que lo que instala XAMPP es completamente seguro (acepta mi palabra al respecto), si el antivirus da algún problema, lo desactivaremos y reinstalaremos el programa. Después de la instalación, no olvides reactivar tu antivirus.

En la figura 1 se ve la lista de componentes básicos que se van a instalar. Aunque algunos no los usaremos de momento, selecciónalos todos.

Figura 1. Selección de componentes a instalar.

Figura 1. Selección de componentes a instalar.

 En la siguiente fase, se nos indica el directorio dónde se instalará XAMPP. Deja el que aparece por defecto. En la siguiente fase, se te informa de que se instalarán en tu ordenador los CMS WordPress, Joomla y Drupal. Aunque, de momento, no los vamos a usar, pulsamos Next. Más adelante nos serán útiles. Después vemos una barra de progreso. Pasados unos minutos, nos sale un cuadro de diálogo que nos avisa de que el firewall está bloqueando Apache. Marca la casilla que ves en la figura 2 y pulsa el botón Permitir acceso.

Figura 2. El firewall debe permitir que Apache "pase" a través de él.

Figura 2. El firewall debe permitir que Apache “pase” a través de él.

Al final de la instalación se nos muestra un cuadro de diálogo con la opción marcada para iniciar el panel de control. Pulsamos sobre Finish y, tras unos segundos, se abre el panel que vemos en la figura 3.

Figura 3. El panel de control de XAMPP.

Figura 3. El panel de control de XAMPP.

Pulsaremos los botones Start que hay en las filas Apache, MySQLFileZilla y Mercury, lo que activará estos cuatro servidores (Mercury es un servidor de correo electrónico). Al pulsar sobre el de MySQL veremos el aviso del Firewall de la figura 4.

Figura 4. El firewall debe permitir el acceso de MySQL.

Figura 4. El firewall debe permitir el acceso de MySQL.

Marcaremos la casilla que vemos en la imagen y pulsaremos sobre Permitir acceso.

Por último, al activar el servidor de FileZilla nos aparece el correspondiente cuadro de diálogo, que vemos en la figura 5.

Figura 5. El servidor FTP también debe poder acceder a través del firewall.

Figura 5. El servidor FTP también debe poder acceder a través del firewall.

Una vez más, marcamos la casilla correspondiente y permitimos el acceso. Estas operaciones ya no habrá que repetirlas más, a menos que cambiemos nuestra conexión a Internet.

Al activar Mercury nos aparece el cuadro de díálogo de la figura 6.

Figura 6. El servidor Mercury también debe pasar por el firewall.

Figura 6. El servidor Mercury también debe pasar por el firewall.

El panel de control, tal como lo vamos a necesitar en estos artículos, queda como vemos en la figura 7.

Figura 7. El panel de control de XAMPP con los servidores necesarios activados.

Figura 7. El panel de control de XAMPP con los servidores necesarios activados.

Podemos cerrar el panel, y XAMPP permanecerá activo en segundo plano. Cuando queramos ver el panel, situaremos el puntero del ratón sobre el icono de XAMPP de la parte derecha de la barra de tareas, haremos clic con el botón derecho y, en el menú contextual que se abre, pulsaremos sobre Show / Hide.

Cuando reiniciemos nuestro ordenador, es posible que tengamos que arrancar XAMPP desde el menú de inicio.

COMPROBANDO EL FUNCIONAMIENTO

Tenemos que acceder al directorio donde está instalado XAMPP. Si hemos dejado el que se nos ofrecía por defecto durante la instalación (lo que es muy aconsejable), es C:/xampp. Dentro encontraremos un directorio llamado htdocs. En él colocaremos todas las páginas dinámicas que creemos, organizadas en una estructura de directorio que crearemos según nuestras necesidades. En primer lugar vamos a crear un directorio para hacer una primera prueba de funcionamiento. Lo llamaremos primera_prueba, de modo que la ruta donde trabajaremos en este artículo será C:/xampp/htdocs/primera_prueba. Dentro crearemos un archivo (por ejemplo, con el bloc de notas o el VIM (según nuestro sistema operativo, en todo caso un editor de texto plano), con el siguiente código:

Lo grabaremos como index.php, y el nombre completo es C:/xampp/htdocs/primera_prueba/index.php.

Ahora abrimos el navegador y tecleamos, en la barra de direcciones, http://localhost/primera_prueba/index.php (o, simplemente, http://localhost/primera_prueba). Veremos en el navegador una página con un aspecto similar al de la figura 8.

Figura 8. Información sobre el funcionamiento de PHP.

Figura 8. Información sobre el funcionamiento de PHP.

 Con esto ya sabemos que Apache y PHP están funcionando. En artículos posteriores veremos como comprobar MySQL, Mercury y FileZilla.

EL CLIENTE FILEZILLA.

Hemos instalado el servidor. Ahora vamos a dejar también el cliente (aunque, de momento, no lo configuraremos ni usaremos, hasta más adelante). Lo encontramos en https://filezilla-project.org/download.php?type=client&beta=1. Lo descargamos y lo instalamos con el asistente que incluye. De momento, no estableceremos ninguna conexión con el servidor. Lo dejamos instalado y, por ahora, nos olvidamos de él.

CONSIDERACIONES FINALES

Ya tienes todos los servicios necesarios operando en tu ordenador. Ahora ya puedes probar todos los ejercicios de los siguientes artículos, según vayas avanzando en su lectura (y según yo vaya teniendo tiempo de colgarlos ( 😉 ). También puedes desarrollar y probar todas las páginas web que te atrevas a crear. Cuando lleves a cabo un sitio profesional deberás, lógicamente, publicarlo en un servidor que implemente todas las tecnologías que hemos visto en este artículo. Desde mi experiencia personal te sugiero que contrates sus nombres de dominio y los alojamientos con ARSYS (https://www.arsys.es/), o con 1and1 (https://www.1and1.es). En un artículo posterior te enseñaremos a publicar.

     

4 comentarios:

  1. Pingback: Manejo básico de datos con PHP » eldesvandejose.com

  2. Pingback: PHP-TUT-20 Gestión de imágenes (I) » eldesvandejose.com

  3. Pingback: Crear un virtual host en Windows » eldesvandejose.com

  4. Pingback: PHP-TUT-18 La comunicación web » Recursos para programadores

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *