一、LAMP基础
1.LAMP组成
L:Linux;A:apache (httpd);M:mysql, mariadb;P:php, perl, python
httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本交由php来运行;
php:运行php程序;
MariaDB:数据管理系统;
2.CGI:Common Gateway Interface,通用网关接口
CGI描述了客户端和服务器程序之间传输的一种标准;可以让一个客户端,从网页浏览器向执行在网络服务器上的程序传输数据;
3.请求流程
Client -- (http协议) --> httpd -- (cgi协议) --> application server (program file) -- (mysql) --> mysql
客户端浏览器发出请求,通过http协议发向Web服务器,若为静态请求则httpd发起系统调用,磁盘IO调用数据,返回给用户;若为动态请求,则通过CGI通用网关接口协议发送给应用程序服务器,通过 如php脚本等动态执行通过mysql协议调用mysql程序查询结果,并返回。
静态资源:Client -- http --> httpd
动态资源:Client -- http --> httpd --> libphp5.so () -- mysql --> MySQL serve
二、PHP
1.php: 脚本编程语言
嵌入到html中的嵌入式web程序开发语言,无需编译;大多数情况无需用到管理员权限运行,更加安全
基于zend编译成opcode(二进制格式的字节码,重复运行可省略编译环境)
Scanning(扫描) --> Parsing(分析) --> Compilation(编译) --> Execution(执行)
2.httpd与php结合的方式
(1)CGI:最传统方式,必要时需要创建和销毁子进程
(2)FastCGI:将php运行成一个服务监听在套接字,有主进程和空闲进程,独立的服务进程
注意:
1)需要安装php-fpm程序包,非php程序包
2)httpd2.2不支持FastCGI协议功能需自己编译;CentOS 7的httpd2.4将其加入成为模块
(3)modules (把php编译成为httpd的模块):当请求动态请求时无需再启动一个新的进程,默认结合方式
基于MPM相关的php所编译的模块:
prefork: libphp5.so;
event, worker: libphp5-zts.so
3.php服务配置文件
1)/etc/php.ini, /etc/php.d/*.ini ,一般由php-common程序包提供php相关所有配置文件
2)php配置文件在php解释器启动时被读取,修改配置文件后重启httpd服务或重启php-fpm服务;
3)通过配置段[*]配置,directive = value方式配置每段内部信息
[php]表示核心配置信息,其他[ ]为单独安装包组件配置信息
4)注释符:较新的版本中,已经完全使用;进行注释;
#:纯粹的注释信息
;:用于注释可启用的directive
5)相关官方文档
php.ini的核心配置选项文档: http://php.net/manual/zh/ini.core.php
php.ini配置选项列表:http://php.net/manual/zh/ini.list.php
三、数据库(mariadb为例)简介
1.数据模型
层次模型、网状模型、关系模型:表(行+列)
2.关系模型数据管理系统(实现软件)
IngreSQL, Oracle, Sybase, Infomix, DB2, SQL Server, MySQL, PostgreSQL, MariaDB
3.MariaDB的特性:第二段视频
插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择;
存储引擎也称为“表类型”;
(1) 更多的存储引擎;
(2) 诸多扩展和新特性;
(3) 提供了较多的测试组件;
(4) truly open source,完全开源;
4.安装和使用MariaDB方式
(1) rpm包;
1) 由OS的发行商提供;
2) 程序官方提供;
(2) 源码包;
(3) 通用二进制格式的程序包;