General

Cómo instalar un servidor local

General Hosting

Páginas como phptester nos han sido útiles hasta ahora, pero ya va siendo hora de que empecemos a instalar un servidor local. A partir de ahora, y en cuanto empecemos a ver con más detalle aspectos de HTML para crear nuestras páginas web, será importante instalar un servidor local para realizar las pruebas y ver un comportamiento real.

Un servidor local también nos permitirá empezar a conocer los entresijos de la configuración del archivo php.ini, pues algunas de sus directivas nos será importante conocerlas para aumentar el tamaño máximo de subida de archivos o el tiempo máximo de ejecución, por ejemplo.

Además, con un servidor local podremos estructurar mejor nuestros programas, colocando las funciones más utilizadas en un archivo que podemos utilizar como librería, por ejemplo. O separando nuestro código en módulos para su reutilización o una mejora en la estructura de los datos.

Pero, ¿qué es y por qué deberíamos instalar un servidor local?

Instalar un servidor local para simular un entorno real

Cuando colocamos una página web en Internet, lo que en realidad estamos haciendo es, dicho rápidamente para que sea más comprensible, copiar sus archivos y su base de datos en un equipo que hace de servidor (esto es, devuelve las páginas que se le solicitan), el cual proporciona los resultados (la página web) al cliente después de haberla procesado. Este sería un resumen muy rápido y faltando multitud de detalles.

Es habitual, y más que habitual, es deseable e incluso necesario, el que nuestros programas en PHP o páginas web se compongan de varios archivos distintos que vayan “comunicándose” entre ellos. Escribir un programa de una cierta complejidad en un mismo archivo es una auténtica locura, especialmente si se desea mantenerlo, detectar errores o reutilizarlo.

En cambio, escribir un programa en varios archivos, utilizando en cada momento lo que se necesita y creando un código bien diseñado es fundamental tanto para el rendimiento como para la lectura posterior del propio programa y la depuración de errores.

Por ello, en un servidor nos encontraremos con varios archivos organizados en directorios y que, juntos, contendrán la lógica del programa. Además, gracias a ello también podemos separar las vistas (es decir, “lo que ves” en el navegador) de la lógica (el procesamiento del programa en sí mismo). El servidor, además, también proporcionará todas las herramientas que hagan, en nuestro caso, que PHP funcione y podamos utilizarlo.

Así, gracias a nuestro servidor local podremos navegar entre las páginas que creemos y también ejecutar los programas en PHP sin más para realizar las pruebas que necesitemos.

Instalar un servidor local, sí, ¿pero cuál?

Existen unos cuantos servidores locales que se utilizan de forma común para poder realizar las pruebas o trabajar de forma “local” antes de desplegar nuestro programa y web en el entorno final para que circule por Internet. Incluso, si usas un sistema operativo basado en Linux podrás configurarte el servidor local directamente y empezar a trabajar allí.

Sin embargo, nos guste o no, la gran parte del mundo utiliza Windows, así que vamos a ver cómo instalar un servidor local allí. Para ello hemos elegido el paquete XAMPP, aunque podríamos haber elegido cualquier otro de similares características. De igual forma, este paquete también se puede instalar en Linux y en Mac, así que si no quieres configurarte el servidor local de otra forma, también puedes descargarte XAMPP e instalarlo.

Con este paquete tendremos todo lo necesario para nuestros programas.

Pasos para realizar la instalación

Antes de comenzar, vamos a hacer una comprobación inicial. Consistirá en saber si ya tenemos un servidor local en nuestro equipo o no está en funcionamiento. Será suficiente acceder a él y, para eso, debemos abrir un navegador web e ir a la URL http://localhost y ver qué ocurre. Si nos sale el típico mensaje de error, como podemos ver a continuación, es que no hay ninguno funcionando.

Error debido a que no existe un servidor local

Recordad bien esa URL, http://localhost, porque será “la raíz” de nuestro servidor. Será donde empezaremos a dejar nuestros archivos y, si por ejemplo creamos un archivo programa.php, accederíamos desde http://localhost/programa.php por ejemplo.

Descargando el paquete XAMPP

Realizada la comprobación, vayamos a la página web de XAMPP y descarguemos el paquete según nuestro sistema operativo. En el momento de escribir estas líneas, el paquete contiene la versión 7.4.2 de PHP.

Página web desde donde descargar XAMPP para instalar un servidor local

Ejecutando el instalador

Ya hemos descargado nuestro archivo, por lo que comenzamos la instalación pulsando doble clic sobre él para empezar a instalar un servidor local. En primer lugar nos saldrá un aviso si está activo el control de cuentas de usuario, pues algunos directorios tienen los permisos restringidos. Pulsaremos OK para continuar.

Aviso si está activo el control de cuentas de usuario

A continuación comenzará la instalación en sí, iniciándose el asistente de instalación al que deberemos dar en Next > para continuar.

Inicio de la instalación de XAMPP

Dentro del paquete XAMPP encontraremos bastantes elementos. Todos vienen marcados de antemano pero no los vamos a necesitar todos. Únicamente necesitaremos, para que podamos instalar un servidor local útil para nuestros propósitos, Apache (que no podemos desmarcar), MySQL para poder operar con bases de datos, PHP (que tampoco podemos desmarcar) que, obviamente, necesitamos, y phpMyAdmin para tener un panel de control en el que crear y visualizar nuestras bases de datos.

Los demás podemos dejarlos o no a conveniencia de cada uno, pero básicamente son gestores de archivos de subida por FTP y servidores de correo electrónico para pruebas, además de alguna otra cosita. Pero no los vamos a necesitar, a priori. Siempre podremos volver a instalarlos si fuera el caso. Pulsamos en Next > para continuar.

Componentes a instalar en XAMPP

A continuación nos permite escoger la carpeta donde se va a instalar XAMPP. Por defecto es C:\xampp, así que será la que dejemos. Seguimos pulsando en Next > para acceder a la siguiente pantalla.

Carpeta en la que instalaremos el servidor local

Las dos siguientes pantallas no tienen pérdida y no será necesario ni siquiera incluir una imagen. En la primera se nos hace un poco de publicidad de otros paquetes que se ofrecen y una casilla que, si dejamos marcada, nos abrirá una página con más información. Pulsamos en Next > y accedemos a la última pantalla antes de instalar que, simplemente, nos informa que se va a proceder a la instalación. Así pues, volvemos a pulsar en Next > para que se inicie la instalación.

Instalando XAMPP

Firewall de Windows

Cerca del final de la instalación, es posible que os salga una ventana de aviso del Firewall de Windows, el cortafuegos para autorizar que el servidor de Apache pueda comunicarse con redes privadas o públicas. Al igual que recomienda, deberíamos desactivar las redes públicas y permitir las redes privadas, pues no queremos que nadie acceda exteriormente. Curiosamente, al menos en mi caso, la que salía marcada era la opción de redes públicas y no la de redes privadas. Cambiadlo y pulsad en el botón Permitir acceso.

Aviso del Firewall de Windows

Finalizada la instalación, nos aparecerá la ventana de confirmación con una casilla para marcar si queremos iniciar el Panel de Control de XAMPP ahora mismo o no. La dejamos marcada para poder iniciarlo y pulsamos en Finish.

Instalación de XAMPP finalizada y casilla para iniciar el Panel de Control

Panel de Control de XAMPP

Si hemos marcado la casilla anterior, el Panel de Control de XAMPP se iniciará una vez hayamos terminado de instalar un servidor local como es este. Si no fuera así, podemos abrirlo en cualquier momento desde iconos o desde el menú de Inicio.

Nada más abrirlo por primera vez nos aparecerá una ventana para seleccionar el idioma. Lamentablemente, no está disponible en español y sólo se ofrece inglés o alemán, así que elegid el que más sepáis. Imagino que casi todos haréis como yo y elegiréis el inglés. Pulsamos, pues, el botón Save.

El Panel de Control de XAMPP contiene un listado de los módulos (Apache, MySQL, FileZilla, Mercury y Tomcat) junto a una serie de indicaciones y otra serie de acciones que podemos realizar. Bajo de esta sección tenemos otra con las notificaciones que vayan surgiendo, mientras que a la derecha tendremos el menú principal. Hay que tener en cuenta que, para cerrar XAMPP debemos pulsar en el botón Quit, pues cerrar con la X sólo lo minimizará (se podrá volver a abrir desde el icono de XAMPP del área de notificación).

Panel de Control de XAMPP

Iniciar los módulos

Para iniciar los módulos que necesitamos, únicamente deberemos pulsar en el botón Start. Si todo ha ido bien, veremos el nombre de nuestro módulo con un fondo verde, un número (o varios) en la columna de PID(s) que identifican el proceso y del cual no vamos a necesitar nada, y los puertos activos en la columna de Port(s) que nos servirán para establecer conexión.

En nuestro caso sólo hemos instalado Apache y MySQL, así que será en ellos donde deberemos pulsar Start aunque, si no vamos a utilizar aún bases de datos, no será necesario activar MySQL. Ojo, cuando activéis MySQL puede que os vuelva a saltar el firewall de Windows, así que proceded como antes. Y, en ocasiones, puede que salte también cuando se activa por primera vez Apache.

Panel de Control XAMPP con Apache y MySQL iniciados

Comprobación de que todo ha ido bien

Si todo ha ido bien, hemos instalado correctamente el paquete y, en el Panel de Control de XAMPP hemos iniciado Apache y se ha puesto en verde, significará que hemos podido instalar un servidor local sin problemas. Pero vayamos a comprobarlo mejor volviendo a acceder a http://localhost y ver qué ocurre.

Página de bienvenida de XAMPP en localhost

Ahora sí, hemos podido acceder a la página de bienvenida de XAMPP. Hemos conseguido instalar un servidor local y funciona perfectamente. Pasemos ahora a probar nuestro primer programa en PHP y ver si funciona y, para finalizar, algunas directivas de configuración que nos pueden ser útiles.

Nuestro primer programa en PHP

Si recordáis, hemos instalado XAMPP en la carpeta C:\xampp. Por tanto, vamos a acceder a ella a ver qué contiene.

Carpeta de archivos de XAMPP

De entre todas estas carpetas y archivos, nos interesarán realmente muy pocos de ellos. Primero detectar que, desde aquí, podemos acceder al Panel de Control e incluso iniciar o detener el servidor. Pero la carpeta que realmente nos va a importar más es htdocs. Es dentro de ella donde colocaremos los archivos y programas que vayamos creando.

Si accedéis a ella, veréis que hay unos cuantos archivos y carpetas. Estos son los que, cuando hemos accedido a http://localhost, nos han mostrado la página de bienvenida. Digamos que localhost “apunta” a esta carpeta para “servirnos” lo que aquí haya. Podéis dejar o eliminar los archivos que vienen por defecto, no hay problema. Para que empecemos a organizar bien las cosas, vamos a dejarlos y crearemos una carpeta llamada primer_programa dentro de htdocs.

Dentro de esa carpeta que acabamos de crear, creemos un archivo de nombre programa.php en el que colocamos el siguiente código:

<?php
echo 'Mi primer programa en PHP';
?>

Y, ahora, vamos a http://localhost/primer_programa/programa.php para ver lo que imprime por pantalla.

Mi primer programa en PHP

Genial, se ha impreso nuestro mensaje como estaba previsto. Accediendo a localhost, luego sólo hemos tenido que indicarle en la ruta la carpeta primer_programa que habíamos creado y, posteriormente, programa.php para que accediera a dicho archivo, ejecutándose entonces el código PHP que hemos colocado.

Ahora sí, instalar un servidor local nos permitirá editar mejor nuestro código, preservarlo y organizarlo mejor.

Una pequeña configuración básica

Dentro de la configuración del servidor podemos cambiar muchas cosas, pero la gran mayoría están bien como está. Vamos a fijarnos únicamente ahora en algunos aspectos de la configuración que puede que sí cambiemos más a menudo en el futuro. Volvamos al Panel de Control de XAMPP y pulsemos en el botón Config en la fila de Apache.

Archivos de configuración para Apache desde el Panel de Control de XAMPP

Allí veremos varios archivos de los cuales nos fijaremos especialmente en la configuración de PHP (php.ini). Accedemos a ese archivo y veremos un montón de texto, probablemente incomprensible, pero sólo tenemos que quedarnos ahora mismo con tres detalles (buscando estos textos en dicho archivo).

post_max_size

Esta directiva nos indica el tamaño máximo de los datos que pueden enviarse al servidor. En el XAMPP que acabamos de instalar ahora mismo, su valor es de 40M, es decir, 40 megas. Podemos incrementarlo, en caso de necesitarlo, pero siempre debe estar por encima o igual a la siguiente directiva.

upload_max_filesize

Con esta directiva controlamos el tamaño máximo de un fichero que se envíe al servidor. Durante mucho tiempo, el valor predefinido era de únicamente 2M, pero actualmente en la versión que he utilizado para este artículo me indica también 40M, supongo que porque, cada vez más, los archivos especialmente de imágenes son mayores.

Si veis un valor bajo (ese 2M por ejemplo), podéis subirlo. Si no, cuando entremos de lleno en los formularios y cómo subir imágenes, veremos que no podemos subir archivos mayores al número aquí indicado. Pero, cuidado, tampoco nos pasemos y coloquemos varios gigas, porque puede dar error o puede que no lo necesitemos en nuestros programas. Además, chocará con la siguiente directiva.

max_execution_time

Con esta directiva controlamos el tiempo máximo de la ejecución de nuestros programas en PHP. Es decir, que si todo lo que debe procesar PHP supera este límite de tiempo, acabaremos obteniendo un error. El valor que me aparece actualmente después de la instalación es de 120 segundos, que puede ser poco, pero hay que tener cuidado.

Pensemos que aumentarlo mucho puede dar lugar a que nos intenten subir un archivo extenso para bloquear nuestra página web o con contenido malicioso. O que nos estén colando un archivo tan enorme que agotará los recursos de memoria y procesamiento de nuestro servidor. Y es que hay que pensar que todo tiene su límite.

Si realmente vemos que necesitamos subirlo, poned un par de minutos más. Pero para la mayoría de cosas a realizar, debería servir. Sólo si estáis pidiendo una cantidad inmensa de fotografías enormes o un vídeo de varios gigas, no os será suficiente. Pero para guardar cosas así, mejor utilizar otros métodos.

Otras directivas

Desde php.ini se pueden configurar una gran cantidad de cosas más. Por ejemplo el límite de memoria que un programa debe consumir, si aparecerán los errores de nuestros programas o no (ideal para depurar el código), cuál será la carpeta temporal a la hora de subir archivos (veremos para qué sirve ésto más adelante), establecer la hora local (por defecto será la del lugar desde donde lo habéis instalado, pero podéis cambiarla), permitir la subida de archivos o cuántos archivos se pueden subir a la vez, y muchas otras cosas. Es cuestión de leerse los manuales para saber todo lo que nos puede dar, aunque la mayoría de cosas no se suelen tocar.

Reiniciar cuando hayan cambios

Y, una cosa importante que se nos puede olvidar, es que cuando hagamos algún cambio de configuración, por ejemplo en el archivo comentado php.ini, debemos detener Apache pulsando en Stop y luego volver a iniciarlo. Si no lo hacemos así, los cambios que hemos realizado no se aplicarán.

Por fin tenemos un servidor local

Llegamos al final del artículo y ya estamos listos para dar un paso adelante. Ahora, gracias a que hemos podido instalar un servidor local, podremos estructurar mejor nuestros programas, separar el diseño de los procesos e ir construyendo, día a día, mejores programas.

Teniendo nuestro servidor local, veremos ahora en el próximo artículo una breve introducción a HTML y, después, empezaremos una serie de varios artículos sobre formularios en los que pedir datos al usuario para poder, así, trabajar con datos que vengan desde los propios usuarios sin tener que ponerlos nosotros como ejemplo.

Deja un comentario