Laboratorio de Programación
Laboratorio de Programación
Laboratorio de Programación
Los componentes de software de un web stack pueden combinarse de forma individual, por
lo que existe un gran número de versiones, cada una para diferentes fines. La combinación más
conocida, sin embargo, es la pila open source LAMP, resultado de la unión
de Linux, Apache, MySQL y PHP.
Sistema operativo
El sistema operativo es la interfaz central entre el hardware fundamental del servidor
(procesador, unidad de memoria, espacio web) y los otros componentes de software. Dicho de otra
forma, el sistema operativo recurre a los recursos de hardware para garantizar la funcionalidad de
las aplicaciones, en especial del servidor web. Algunos de los sistemas sobre los que se puede
levantar un web stack son Linux, Windows, Unix y Mac OS.
Servidor web
El servidor web es un software instalado en el sistema operativo que entrega documentos
al cliente que los solicita. La solicitud del cliente es comunicada al servidor web mediante el
protocolo de transmisión HTTP. Si estos documentos solicitados son contenidos estáticos como
archivos HTML o imágenes, el servidor web procesa esta petición directamente entregándolos
al cliente, pero el contenido dinámico, por el contrario, solo lo puede transmitir con ayuda de bases
de datos y módulos de programación. Las soluciones de servidor web más utilizadas incluyen a
Apache, Microsoft IIS y nginx.
1
Base de datos
En los sistemas de bases de datos, también denominados sencillamente bases de datos,
se almacenan, de forma eficiente y a largo término, los datos necesarios para que el servidor web,
en el momento requerido, pueda recurrir a ellos. Para ello, el servidor emite peticiones con ayuda
de las extensiones del servidor, que la base de datos procesa y devuelve a las extensiones del
servidor. Estas generan, a partir del resultado de la petición, un formato adecuado de emisión
como HTML y lo envían al servidor web. La elección de la base de datos está estrechamente
ligada al software del servidor web y al lenguaje de programación utilizado. Los más usados son,
entre otros, Oracle, MySQL y MongoDB.
LAMP, el clásico
Como ya se mencionó anteriormente, LAMP es el web stack más conocido. Como una de
las primeras, representó durante mucho tiempo la mejor pila de desarrollo de proyectos
web. Todos sus componentes son open source con licencia libre y, de esta manera, no solo
modificables, sino también gratuitos:
sistema operativo Linux,
servidor web Apache,
base de datos MySQL,
intérprete de lenguaje PHP.
2
Pese a su condición gratuita, LAMP supo mantenerse firme desde el principio frente a
soluciones propietarias equiparables y se usó, por ejemplo, para el desarrollo de MediaWiki, el
software de Wikipedia.
Debido a los avances técnicos constantes y al desarrollo de nuevo software libre, hoy
existen algunas variaciones de LAMP, en las cuales se han sustituido parcialmente los
componentes tradicionales. Algunos de las más conocidas son:
3
MEAN, la solución para aplicaciones web
La pila MEAN sigue un concepto completamente diferente al del web stack clásico. Debido
a su composición, la necesidad habitual de diferentes lenguajes de programación para el servidor
(PHP, etc.) y para el cliente (JavaScript) desaparece, ya que todos los elementos de este paquete
de software soportan JavaScript. El sistema operativo y el software del servidor web pasan a una
posición secundaria.
Este stack tiene la ventaja de facilitar y acelerar el proceso de desarrollo y de permitir una
buena escalabilidad del proyecto web. La transmisión de los datos en formato JSON beneficia, en
especial, a la implementación de aplicaciones web de una sola página en el lado del cliente y
de aplicaciones móviles.
También en este caso existen una serie de variaciones como MEEN, con Ember.js como
framework para el frontend, o MERN, con REact.js.
En definitiva, la gran cantidad de web stacks disponible deja claro que no existe la solución
universal válida para todos los casos.
4
Servidor LAMP: una solución económica para webs
dinámicas
Existen dos tipos de páginas web: estáticas y dinámicas. Las webs estáticas están alojadas en
un servidor y creadas en lenguaje HTML. Están pensadas principalmente para mostrar una
información permanente a la que es posible acceder en cualquier momento. El contenido de
las páginas web dinámicas, por su parte, se genera de forma activa cada vez que se realiza
una solicitud. Estas últimas resultan muy útiles cuando la temática de la web
requiere actualizaciones regulares – por ejemplo, aquellas donde se presentan noticias,
pronósticos del clima o datos del mercado de valores. Las páginas web dinámicas requieren
una infraestructura especial, que consta de un sistema operativo, un servidor web, un gestor
de bases de datos y uno o más lenguajes de programación; facilidades que ofrece por
ejemplo, el servidor LAMP.
Índice
1. ¿Qué es un servidor LAMP?
2. ¿Cómo instalar un servidor LAMP?
3. LAMP: El software de código abierto para cualquier proyecto web
Su funcionamiento es muy simple. Linux sirve como sistema operativo base para ejecutar el
servidor web Apache. Este último no puede interpretar contenidos dinámicos, pero es aquí
donde PHP entra a ejercer sus funciones de programación del lado del servidor. El proceso
funciona entonces de la siguiente manera: Apache le envía un código fuente al intérprete
PHP, incluyendo la información correspondiente sobre las acciones del visitante de la web, y
permite el acceso a la base de datos MySQL. El resultado es devuelto a Apache y este se
muestra finalmente en el navegador web del visitante.
Un servidor LAMP es la opción preferida por muchos por sus bajo coste y su alta
disponibilidad. Además, sus componentes individuales pueden ser reemplazados fácilmente
por aquellos con las mismas funciones. Como sistema operativo se puede usar, por ejemplo,
Windows (WAMP) o MacOS (MAMP). En vez de Apache, es común utilizar nginx como
servidor web y en cuanto a gestor de bases de datos, MySQL y MariaDB son muy similares.
Otros lenguajes de programación compatibles son Perl, Ruby o Python.
5
instalar y trabajar con la infraestructura LAMP. En principio, este sistema no demanda un
rendimiento muy superior, pero sí es importante contar al menos con el espacio necesario.
Dependiendo del contenido que se ofrezca a los usuarios, puede ser necesario contar con un
hardware más potente, como por ejemplo, servicios de almacenamiento de archivos en línea o
servicios de streaming. Es importante considerar el tráfico de datos existente, el tráfico
potencial, así como también el número de visitas.
Una vez conseguido el hardware, es posible decantarse por una de las muchas distribuciones
existentes de Linux. Bien sea Red Hat, openSUSE, Debian, Ubuntu o CentOS, debe
considerarse el nivel de conocimientos y manejo de Linux, como también el uso previsto para
el servidor LAMP.
6
navegador web. Una vez aparece el mensaje “It works!”, puedes empezar con la
configuración haciendo los siguientes ajustes:
1. KeepAlive es una herramienta que mejorará la velocidad de tu página web, pero que
también acaparará una gran cantidad de espacio en el disco. Por lo tanto, y
especialmente para aquellos sistemas con menor capacidad, es recomendable
seleccionar la opción “KeepAlive Off” en la ficha de configuración
etc/apache2/apache2.conf.
2. Apache utiliza el módulo Event como Módulo de MultiProcesamiento (MPMs), mientras
que PHP usa el módulo Prefork. En la sección /etc/apache2/mods-available
encontrarás los datos mpm_prefork.conf, y deberás configurarlos de la siguiente
manera:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 6
MaxSpareServers 12
MaxRequestWorkers 39
MaxConnectionsPerChild 3000
</IfModule>
3. También podrás desactivar el módulo Event, para luego activar el módulo Perfork:
7
Para crear una base de datos en MySQL deberas iniciar sesión:
mysql -u root -p
A continuación podrás crear y determinar los derechos de acceso de los usuarios:
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30
De esta forma el sistema arrojará un reporte de errores para un mejor rendimiento. Además,
es posible guardar aquellos errores en error.log. A continuación, se debe crear el directorio
de registro para PHP y asignar los derechos de propietario del servidor Apache:
8
usuarios experimentados, que pueden gestionar por si mismos el soporte y la configuración
del producto.
Instalar un servidor LAMP no solo vale la pena debido a su flexibilidad y su bajo coste, sino
también por la manera en que sus elementos se complementan. Los servidores LAMP
permiten la operación y el desarrollo de páginas web estáticas y dinámicas. El ejemplo más
reconocido es el software para wikis libre MediaWiki, desarrollado para Wikipedia y
programado usando un sistema LAMP.