LAMP

LAMP是一个缩写,它包括:Linux 操作系统,Apache 网络服务器,MySQL 数据库,Perl、PHP 或者 Python 编程语言。

毫不夸张的说,LAMP 是开源世界的“皇家海军”[42],正是凭借 LAMP 的力量,开源应用得以在服务器市场称雄

web 服务器(Apache) 是 LAMP 的核心,几乎所有远程访问都要通过 web 服务器进行。除了 Apache ,web 服务器还有一些其它的开源实现,如:Lighttpd、Tomcat、Zope 等

Perl、PHP、Python 是服务器端脚本语言,web 服务器以扩展的形式支持这些语言作为后端处理器,以获得强大的可编程能力

数据库服务器(MySQL)提供数据存储、检索支持。除了 MySQL ,还有 PostgreSQL 等开源实现

理论上可以直接通过网络访问数据库服务器,不过出于安全需要,多数 LAMP 应用中,数据库服务器只能由 web 服务器本地访问。

也就是说,访问 web 服务器,产生了数据处理请求,web 服务器把数据请求发送到数据库服务器,然后将数据库服务器返回的处理结果发送给访问者

数据库服务器接受和返回数据处理请求,要通过 SQL 查询语言。web 服务器本身不支持 SQL,而服务器端脚本语言可以内嵌 SQL 语句,web 服务器通过脚本语言处理访问者对数据库服务器的请求

虚拟主机

一台机器上可能有多个网络接口:每一块网卡会分配一个 IP地址;类似 127.0.0.1 这样的回环地址则指向本地机器

网络接口就像港口,有很多泊位,称为端口。可以使用不同的协议连接(如 http、ftp、ssh 等)

服务器工作时,会监听某一地址的固定端口,称为“绑定”。如果该端口中传来请求,则进行响应

很多服务器可以针对不同的网络接口设置不同的响应规则,例如:从内网访问接口 192.168.1.2 ,使用 /home/user 作为根目录;从公网访问接口 211.148.131.7 使用 /var/WWW 作为根目录

这就是虚拟主机



[42] 或许 Emacs 工具链可以算是“太平洋舰队”