Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Desarrollo web con stacks de software

Un web stack, también denominado web application stack o conjunto de soluciones


(solution stack), define a un paquete de software necesario para el desarrollo de páginas y
aplicaciones web. El término stack (“pila”) hace referencia al método de apilamiento de los
componentes de este conjunto de herramientas, uno encima del otro. La sencilla arquitectura de
estos stacks para el desarrollo web se compone de un sistema operativo, un servidor web, una
base de datos y un intérprete de lenguaje de programación. Este conjunto de elementos se
encarga, con la ayuda del hardware del servidor correspondiente, de que la información necesaria
sobre el proyecto web en cuestión llegue al cliente que la solicita, por defecto el navegador de
Internet, el cual procesa los textos en HTML, CSS y JavaScript y pone la web a disposición del
usuario.

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.

Componentes de un web stack


El stack tradicional usado como infraestructura para páginas y aplicaciones web se
compone, como mínimo, de los cuatro componentes de software mencionados anteriormente:
sistema operativo, servidor web, base de datos y un intérprete de órdenes o de scripts. En
ocasiones, este paquete primordial se puede completar con frameworks, lenguajes de
programación adicionales, servidores proxy o diversos programas de análisis. A continuación,
aclaramos los componentes básicos de un stack para el desarrollo web.

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.

Intérprete de órdenes (Interpreter)


Sin el lenguaje de programación, el software del servidor web no es capaz de generar
páginas dinámicas ni aplicaciones web. Los intérpretes de lenguaje actúan, por un lado, en la
parte del cliente (en el navegador que realiza la petición) y, por otro, la programación en la
parte del servidor hace posible los cálculos necesarios para representar las páginas. El intérprete
de lenguaje de programación típico de un web stack es PHP, aunque también se puede recurrir a
algunas alternativas menos extendidas como ASP.NET, Java, Ruby, Perl o Python.

Las soluciones de web stack más populares


En el campo del desarrollo web, hay una serie de stacks de software que han demostrado
su eficacia. Las crecientes exigencias en cuanto a usabilidad, estabilidad, ampliabilidad y
escalabilidad de unas aplicaciones web cada vez más complejas han llevado en los últimos años
a que el stack clásico se usara cada vez menos como fundamento. Hoy JavaScript juega un
importante papel también en el lado del servidor, de forma que los web application stacks basados
en la plataforma de JavaScript Node.js prometen, por ejemplo, una programación simplificada de
proyectos web en pleno rendimiento, habiendo ya dejado de ser una rareza. Presentamos aquí tres
stacks para el desarrollo web especialmente populares y sus posibles ámbitos de aplicación:

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.

El stack LAMP está especialmente indicado para la realización de páginas web


dinámicas con varias subpáginas. Los usuarios se benefician, sobre todo, de la gran comunidad
que lo apoya, de unos tutoriales muy buenos y de la posibilidad de poder implementar PHP o
herramientas tan potentes como phpMyAdmin.

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:

 WAMP (Sistema operativo Windows)


 MAMP (Sistema operativo Mac OS X)
 XAMPP (Sistema operativo a escoger, Perl y PHP como intérprete de lenguaje, además de
un servidor FTP independiente de plataforma)
 LAPP (Base de datos PostgreSQL para proyectos empresariales de gran envergadura)

Desde la publicación de MariaDB, derivada de MySQL, también le corresponde la M de LAMP a


este sistema de base de datos con una capacidad superior de rendimiento. En este
artículo obtienes una información más completa sobre LAMP y su instalación.

WISA, el stack de Microsoft


A diferencia de LAMP, cuyos componentes aislados no fueron en principio desarrollados
para colaborar entre sí, Microsoft programó los componentes de WISA precisamente con este fin,
lo que garantiza el funcionamiento óptimo de este web stack. El software incluido es, lógicamente,
propietario, por lo que su uso requiere la previa adquisición de las correspondientes licencias de
uso, pero, por otro lado, los usuarios pueden contar con el amplio soporte prestado por el gigante
informático.

WISA se compone de estos elementos:

 sistema operativo Windows Server,


 Internet Information Services(IIS) como software del servidor web,
 sistema de gestión de bases de datos relacional SQL Server,
 biblioteca de lenguajes de programación ASP.NET

Gracias a la biblioteca ASP.NET se pueden programar proyectos web con Visual C# o


Visual Basic.NET, que el sistema puede ejecutar con ayuda de un compilador. De esta forma,
WISA no presupone el uso de un intérprete de lenguaje, consiguiendo así una mejor performance
frente a los stacks de su clase. Esto convierte al stack de Microsoft en una buena  solución para
proyectos web complejos y exigentes con cifras remarcables de visitas.

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.

Los componentes de un stack MEAN son:

 la base de datos NoSQL MongoDB


 el framework para aplicaciones web desde el servidor Express.js,
 el framework para el frontend de parte del cliente AngularJS,
 y la plataforma Node.js,  basada en el entorno de ejecución de JavaScript.

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.

Una ejecución completamente compilada y ampliada de un stack de MEAN la representa la


plataforma de JavaScript Meteor.

Cómo encontrar el web stack más adecuado


Decidir cuál es el paquete de software que ofrece el mejor entorno de desarrollo y
ejecución para un proyecto web depende de diferentes factores. Mientras que los stacks basados
en JavaSript están indicados sobre todo para la realización de aplicaciones de una sola página,
las pilas clásicas basadas en PHP, en Python o en Perl representan ventajas claras en la creación
de proyectos con varias páginas. Los lenguajes de programación también juegan, en general, un
gran papel en la decisión. Una regla esencial a seguir es escoger un stack que esté  basado en un
lenguaje que se domine, pues solo así se conseguirán los mejores resultados.

Naturalmente, es conveniente tener en cuenta también las diferencias técnicas de


rendimiento y estabilidad del entorno de software. Aquí se podría considerar también el uso
de componentes alternativos como el software para el servidor web nginx para proyectos web
con un gran número de visitas.

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

¿Qué es un servidor LAMP?


El acrónimo LAMP está compuesto por las iniciales de sus cuatro
componentes: Linux, Apache, MySQL y PHP. Estos forman la infraestructura en el servidor,
que hace posible la creación y el alojamiento de páginas web dinámicas. Los componentes
individuales se acumulan unos sobre otros, por lo que esta plataforma también recibe el
nombre de LAMP stack (del inglés “apilar”).

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.

¿Cómo instalar un servidor LAMP?


Antes de instalar un servidor LAMP, es importante aclarar un par de cosas. Además, es
fundamental asegurarse de que el hardware utilizado tenga la suficiente capacidad para

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.

A continuación, encontrarás información detallada sobre cómo instalar los cuatro


componentes de un servidor LAMP Ubuntu.

Primer paso: El sistema operativo


Muchas distribuciones de Linux están disponibles de forma gratuita como software de código
abierto, incluso Ubuntu. Seguir los siguientes pasos y requisitos te permitirá ejecutarlo como
sistema operativo, basado en Debian:

1. Descarga o compra Ubuntu Server Edition en la página principal de Ubuntu; a


continuación debes quemar el archivo ISO en un CD o guardarlo en una memoria
USB.
2. Inicia el sistema con ayuda del CD o de la memoria USB.
3. Selecciona el idioma y comienza la instalación en el servidor.
4. Introduce información sobre opciones de lenguaje, diseño del teclado, preferencias de
red, nombre de host, zona horaria y contraseña.
5. Configura el disco duro.
6. Ahora el instalador escaneará el CD o la memoria USB del programa buscando
actualizaciones. En este punto es recomendable seleccionar la opción que evita que
se realicen actualizaciones de manera automática.
7. Una vez terminada la instalación, se debe reiniciar el sistema e introducir lo siguiente
en la línea de comandos:

sudo apt-get update


De esta forma habrás finalizado la instalación de Ubuntu, y por lo tanto, tendrás las bases
para realizar la configuración de los demás componentes del servidor LAMP Ubuntu.

Segundo paso: El servidor web


En caso de que durante la instalación de Ubuntu, Apache no haya sido establecido como
servidor web, es posible hacerlo en cualquier momento usando el siguiente comando:

sudo apt-get install apache2


La correcta instalación de Apache 2 (“2” corresponde a la versión más actual) puede ser
verificada utilizando el enlace "localhost" o confirmando la IP del host a través de cualquier

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:

sudo a2dismod mpm_event


sudo a2enmod mpm_prefork

4. Para finalizar, solo tendrás que reiniciar el servidor:

sudo service apache2 restart

Tercer paso: El gestor de base de datos


El sistema MySQL opera como una especie de servidor en la que se pueden crear múltiples
bases de datos. Por cada base de datos se pueden crear diferentes tablas. Uno o más
clientes envían solicitudes al servidor MySQL, que puede instalarse con el siguiente comando:

sudo apt-get install mysql-server


Durante la instalación es posible determinar una contraseña para la cuenta de usuario raíz
del servidor MySQL, algo que es altamente recomendado. El siguiente paso es la
configuración de la seguridad de MySQL. El programa MySQL permite cambiar la contraseña,
eliminar cuentas de usuarios anónimos o bases de datos de prueba, e incluso bloquea el
acceso a la cuenta root a menos que se use el localhost. El comando de instalación es:

sudo apt-get install mysql-server

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:

create database webdata;


grant all on webdata.*to “usuario” identified by “contraseña”;

Cuarto paso: El lenguaje de programación


El último paso en la configuración del LAMP stack es la instalación del lenguaje de
programación – en este caso PHP, así como la de la librería PEAR (PHP Extension and
Application Repository), que incluye útiles extensiones y módulos para PHP. La instalación se
inicia con el comando:

sudo apt-get install php5 php-pear


También es recomendable instalar el soporte de MySQL para PHP5:

sudo apt-get install php5-mysql


Una vez finalizado el proceso de instalación, el archivo de configuración de PHP – que se
encuentra en /etc/php5/apache2/php.ini, deberá ser modificado de la siguiente manera:

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:

sudo mkdir /var/log/php


sudo chown www-data /var/log/php
Al cargar de nuevo Apache, se habrá completado la instalación del servidor LAMP:

sudo service apache2 reload

LAMP: El software de código abierto para cualquier


proyecto web
La mayor ventaja de un software de código abierto es que su uso, por lo general, no tiene
ningún coste. Otro de los beneficios es que, como su nombre indica, es un código de
programación abierto y accesible para todos. Como consecuencia, los así llamados Open-
source Software (OSS) le permiten a los usuarios desplegar aplicaciones y realizar mejoras en
cualquier momento. A diferencia del software privado, este resulta muy atractivo incluso para

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.

También podría gustarte