服务器端技术如何实际工作?

我一直听说服务器端stream行的LAMP和WAMPconfiguration,也知道LAMP代表Linux,Apache,MySQL,PHP / Python / Perl / Ruby等。
但是我不知道所有这些如何相互融合。
例如,如果我在家里的Windows机器上安装了Xampp,并且它有一个htdocs文件夹,我在那里存储我的网页…当我查询该页面时,浏览器显示给我…
我需要知道什么:

  • 阿帕奇实际上是否只是我的网页硬盘驱动器?
  • PHP / Python / Perl / Ruby和MySQL在哪里适合?
  • 就像Xampp在我的电脑上有htdocs在Apache Web服务器上有一个类似的文件夹?

这一切都令人困惑,任何人都可以解释?

这些是非常一般的问题。 您应该在维基百科或其他网站上阅读有关数据库,Web框架和Web服务器的内容。

但是,只是为了给你一个快速简要说明:

Web服务器是一种为通过万维网访问您的计算机的人员提供数据的程序。 世界上最stream行的两个Web服务器是Apache和Microsoft Internet信息服务(IIS)。

数据库通常以关系方式存储数据。 您可以将这些数据用于网页内容,即可以存储博客文章,用户名和密码,基本上可以存储任何内容。 用于Web开发的最常见的数据库是SQL变体,最stream行的是MySQL和MS SQL Server。

PHP,Python,Ruby和Perl是高级语言,可能曾经被称为脚本语言(但已经变得如此之多)。 他们之间存在各种技术和哲学上的差异,但他们都习惯于相同的目的。 用networking术语来说,这些语言被用来编写dynamic网页内容。 您的Web服务器运行PHP / Ruby / Perl / Python代码,并结合来自数据库和/或HTML页面的数据,输出由Web服务器软件提供并最终由用户看到的Web内容。 所有这些语言都有各种框架来使Web开发更容易(例如Rails for Ruby)。

XAMPP只是一个预先包装好的工具包,包含了Apache web服务器,mysql数据库软件以及PHP和Perl的安装。

服务页面的基本stream程如下:

  1. 远程用户请求http://www.yoursite.com/index.php
  2. 您的Apache Web服务器软件接收到该请求,并准备通过与该特定用户的连接来提供适当的信息
  3. Apache与PHP的集成启动服务器上的PHP解释器并在index.php中执行PHP代码
  4. 该PHP代码可能会反过来包含从您的MySQL数据库获取和/或设置数据以在网页中使用或用于用户或会话pipe理的请求。
  5. 您的Web服务器通过以上PHP代码,数据库信息以及您的网站上预编写的静态HTML和CSS的组合,向远程用户发送一个HTML文档。

此外,要回答你的问题,关于Apache是​​否只是“你的网站的硬盘驱动器”,情况并非如此。 Apache为你做的一些事情包括pipe理许多用户与你站点的连接,为dynamic网页执行正确的解释器,控制对各种页面的访问,将用户redirect到各种内容等等。 Web服务器软件是各种语言,开发框架,encryption系统,身份validation和访问控制以及其他技术相互交叉的中心点,以创build一个function完备的网站。

Apache是​​一个Web服务器,可以将计算机上的端口打开到连接的networking。 这可以让您的networking中的用户访问http://192.168.1.101 (您的IP地址)。 如果你的路由器configuration正确,那么你可以抛出一个你自己的网站。

开箱即用,Apache将HTML传递给浏览器。 如果您查看此页面的来源,那么您可以看到HTML。

PHP / Python / Ruby是用来与Apache接口的dynamic语言(dynamic行为)。

MySQL是持久的数据。 它以PHP / Python / Ruby可以轻松转换和显示的方式存储数据。

Xampp使用Apache。

Apache是​​一个实际监听你的请求到本地或127.0.0.1的Web服务器,然后根据请求回复。 通常Apache监听端口80,8080等

PHP,Python,Perl Ruby是您作为程序员编写的服务器端包含(或脚本)。当Apache收到请求时,它将查找这些文件,并要求相应的parsing器parsing并返回输出。

比如你打电话给http://localhost/test.php 。 Apache接收调用并在htdocs中查找文件test.php。 由于它是一个PHP文件,Apache将调用PHPparsing文件,然后返回HTML或任何输出。

MySQL是存储数据的数据库。 想想所有这些StackOverflowpost,他们都存储在数据库中。

htdocs只是一个定义为Web服务器根目录的文件夹。 您可以重新configuration并将其更改为其他文件夹。