Estas são questões extremamente gerais. Provavelmente, você deveria fazer algumas leituras na Wikipédia ou em outros sites sobre bancos de dados, estruturas da Web e servidores da Web.
No entanto, só para dar um rápido resumo:
Um servidor web é um programa que serve dados para pessoas que acessam sua máquina pela Internet. Os dois servidores Web mais populares do mundo são o Apache e o Microsoft Internet Information Services (IIS).
Um banco de dados armazena dados, mais comumente de forma relacional. Você pode usar esses dados para conteúdo da Web, ou seja, pode armazenar postagens de blogs, nomes de usuários e senhas, basicamente qualquer coisa. Os bancos de dados mais comuns usados para desenvolvimento da web são variações de SQL, mais popularmente MySQL e MS SQL Server.
PHP, Python, Ruby e Perl são linguagens de alto nível, o que pode ter sido chamado de linguagens de script (mas se tornaram muito mais). Existem várias diferenças tecnológicas e filosóficas entre eles, mas eles são todos usados para os mesmos fins. Em termos da Web, esses idiomas são usados para programar conteúdo da Web dinâmico. Seu servidor da Web executa o código PHP / Ruby / Perl / Python, e esse código, em combinação com dados de um banco de dados e / ou páginas HTML, gera o conteúdo da Web que é servido pelo software do servidor da Web e finalmente visto pelo usuário. Todas essas linguagens têm várias estruturas para facilitar o desenvolvimento da Web (por exemplo, Rails for Ruby).
O XAMPP é apenas um kit pré-empacotado contendo o servidor web apache, o software de banco de dados mysql e as instalações PHP e Perl.
Um fluxo básico do processo de veiculação de uma página é o seguinte:
- Um usuário remoto solicita o link
- Seu software de servidor da web Apache recebe essa solicitação e se prepara para veicular as informações apropriadas sobre a conexão com esse usuário específico
- A integração do Apache com o PHP inicia o interpretador PHP em seu servidor e executa o código PHP em index.php
- Esse código PHP pode conter, por sua vez, solicitações para obter e / ou definir dados de seu banco de dados MySQL para usar na página da Web ou para gerenciamento de usuários ou sessões.
- Seu servidor da Web envia ao usuário remoto um documento HTML que é reunido por meio da combinação acima de código PHP, informações do banco de dados e HTML e CSS estáticos pré-escritos do seu site.
Além disso, para responder à sua pergunta sobre se o Apache é apenas um "disco rígido para seu site", esse não é o caso. Algumas coisas que o Apache faz para você incluem gerenciar muitas conexões de usuários ao seu site, executar os intérpretes apropriados para páginas dinâmicas da Web, controlar o acesso a várias páginas, redirecionar usuários para vários conteúdos e muito mais. O software de servidor da Web é o ponto central em que todos os tipos de idiomas, estruturas de desenvolvimento, sistemas de criptografia, controles de autenticação e acesso e outras tecnologias se cruzam para criar um site totalmente funcional.