The software packet XAMPP is a collection of popular applications like the web server Apache, a leading database management system (either MySQL or MariaDB), the scripting languages PHP and Perl, and more – all together in a compact test server. Our XAMPP tutorial will take you through the installation and configuration process, with the aid of clear instructions and screenshots, to help you set...XAMPP tutorial: installation and first steps
Web stack—the software framework for web development
Given that a web stack’s distinct software components can be individually combined, there are numerous variations possible that can be used for many different application cases. The most popular software combination is the open source bundle LAMP, which is composed of Linux, Apache, MySQL, and PHP.
Conventional web stack components
As mentioned above, web stacks are critical pieces of infrastructure for websites and web applications and are composed of four software building blocks: operating systems, webservers, databases, and script interpreters. Additionally, frameworks help expand the capabilities of web stacks by allowing them to use additional programming languages, proxy servers, or different analysis programs. Here’s an overview of the system’s basic components:
The operating system comprises the central interface between the basic server hardware (processor, working memory, web space) as well as the other applied software components. That is to say, the operating system relies on hardware resources in order to ensure the functionality of individual applications, especially webservers. Possible systems that can be built upon web stacks include various Linux, Windows, Unix, and Mac OS distributions.
Installed on the operating system, a web server is a type of software that delivers documents to requesting clients. With the help of HTTP transfer protocols, client requests are passed on to the web server. If the requested documents deal with static content, like HMTL files or images, then the web server directly processes the request by sending the corresponding data to the client. Dynamic content, on the other hand, can only be rendered with the help of databases and script modules. The most commonly used web server solutions include names like Apache, Microsoft IIS, and nginx.
In database systems, which are also commonly referred to as databases, volumes of data relevant to the web project are permanently stored so that the web server can default to these when needed. In order for this process to properly function, the server uses server extensions to put in requests, which are then processed by the databank and sent back to the extensions. These extensions generate a suitable output format, like HTML, from the result and forward it to the web server. The database choice is tightly connected to web server software and applied script as well as the programming language. Popular options are Oracle, MySQL, and MongoDB.
Without script interpreters, web servers would be unable to realize dynamic websites and web applications. For one thing, this is why script interpreters operate client side, which means within the requesting browser. For another, certain calculation processes for depicting sites already take place through server side scripting. The typical web stack script interpreter is PHP; other, less frequently used alternatives, like ASP.NET, Java, Ruby, Perl, or Python, are also available.
The most popular web-stack solutions
LAMP—the classic option
As previously mentioned, LAMP is the most well-known and widely used web stack. As one of the first-ever used models, this option is an optimal package for web projects. With
- Linux as its operating system
- Apache as the web server
- a MySQL database
- and the script interpreter, PHP,
all of the components of this model are made up of open source software with free licenses. This means that they are both free of charge and can be modified as desired. But don’t be deterred by the freeware nature of this option: LAMP models are able to more than hold their own against proprietary solutions and have been used to develop MediaWiki, the Wikipedia software. LAMP packages are especially well-suited for implementing multipage, dynamic websites. Users especially benefit from the large community, extensive tutorials, and the option of using PHP and high-performance tools, like phpMyAdmin.
Due to the steadily increasing progress of this technology and the development of new freeware, different variations of LAMP stacks have arisen that have partly replaced the system’s conventional components. Some popular examples include:
- WAMP (Windows as operating system)
- MAMP (Mac OS X as operating system)
- XAMP (any operating system, Perl and PHP as script interpreters; platform-independent FTP server)
- LAPP (PostgreSQL as database for enterprise projects)
The ‘M’ listed above can also stand for MariaDB, the MySQL spin-off. Read on about LAMP stack and its installation in our Digital Guide series on the matter.
WISA—the Microsoft stack
Unlike the LAMP stack, which is essentially an arrangement of individual, separately designed components, Microsoft has programmed the components of its WISA stack specifically with cooperation in mind, which guarantees optimal function of the software package. Of course, the implemented software is proprietary, which is why its corresponding licenses need to be purchased. Users also have access to the software giant’s support service as well. Microsoft’s web stack makes use of:
- the operating system, Windows Server,
- the web server software Internet Information Services (IIS),
- the relational database management system, SQL server
- and the programing language library, ASP.NET
Thanks to the ASP.NET library, web projects can be programmed based on VisualC# or Visual Basic.NET, which can be directly executed from the system with the help of a compiler. WISA doesn’t require the use of any script interpreters, and because of this it’s at a considerable performance advantage when compared to other web stacks that do need them. This makes the Microsoft stack a good solution for challenging, complex web projects.
MEAN—modern architecture for single-page web applications
- The NoSQL database, MongoDB
- the server side web application framework, Express.js,
- the client side frontend-framework, AngularJS
One of the main advantages of this web application stack is its extremely sleek and accelerated development process as well as the opportunity for scaling projects. And thanks to the document-based data transfer in JSON format, client-oriented single-page applications and mobile apps can be masterfully implemented. There is even variation among MEAN web sticks. For example, MEEN, with Ember.js as the frontend framework, or MERN, which uses React.js as its frontend framework. Meteor presents a completely compiled and expanded execution of a MEAN stack.
How to find the right web stack
Of course, before any decision can be made, it’s important to also take technical differences, such as the performance and stability of the software environment, into account. Considering alternative components, like nginx as web server software for web projects with high hit rates is a further ‘must’. In any case, it’s clear that no one-size-fits-all approach can be taken when picking the right web stack solution.