1.1动态资源与语言
WEB 资源类型:
- 静态资源:原始形式与响应内容一致,在客户端浏览器执行
- 动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端
注意:静态和动态的区别,不在于网页是否能动态变化,而在于服务端的页面文件和客户端得到页面文件是否一致。
2.LAMP 架构的组成
LAM(M)P:
- L:linux
- A:apache (httpd)
- M:mysql, mariadb
- P:php, perl, python
LAMP 环境指的是在 Linux 操作系统中分别安装 Apache 网页服务器、MySQL 数据库服务器和 PHP 开发服务器,以及一些对应的扩展软件。AMP也支持win操作系统 (sccm 域升级版)
apache主要实现如下功能:
mysql 主要实现如下功能:
php主要实现如下功能:
3.CGI和astcgi
3.1什么是cgi?
CGI:Common Gateway Interface 公共网关接口
CGI 可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准。
请求流程:
Client -- (http协议) --> httpd -- (cgi协议) --> application server (program file) -- (mysql协议) --> mysql
3.2 什么是fastcgi?
通用网关接口(FastCGI)是一段程序,运行在服务器上。
fastcgi的方式是,web服务器收到一个请求时,不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。
请求流程:
Client -- (http协议) --> httpd -- (fastcgi协议) --> fastcgi服务器 -- (mysql协议) --> mysql
4.CGI和fastcgi比较
CGI: 兼职, 一次性的过河拆桥式的服务
FASTCGI: 专职,全周期的,持续式的服务。
5.PHP
PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。
5.1 Opcode语言
pcode是一种PHP脚本编译后的中间语言,类似于Java的ByteCode,或者.NET的MSL
PHP的语言引擎Zend执行PHP脚本代码一般会经过如下4个步骤
1、Scanning 词法分析,将PHP代码转换为语言片段(Tokens)
2、Parsing 语义分析,将Tokens转换成简单而有意义的表达式
3、Compilation 将表达式编译成Opcode
4、Execution 顺次执行Opcode,每次一条,从而实现PHP脚本的功能
即:扫描-->分析-->编译-->执行
5.2 PHP 配置
php 的配置文件:/etc/php.ini, /etc/php.d/*.ini
配置文件在php解释器启动时被读取
对配置文件的修改生效方法
- Modules:重启httpd服务
- FastCGI:重启php-fpm服务
/etc/php.ini配置文件格式:
[foo]:Section Header
directive = value
注释符:
- 以#开头,纯粹的注释信息
- 以 ; 开头,用于注释可启用的directive
注:较新的版本中,已经完全使用 “ ; ” 进行注释