LAMP架构

LAMP架构

1. LAMP介绍

1.1 动态资源和静态资源

  1. 静态资源:原始形式与响应内容一致,在客户端浏览器执行
  2. 动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端

注意:静态和动态的区别,不在于网页是否能动态变化,而是客户端的程序文件是否和服务器端的程序文件保持一致。

WEB相关语言

  1. 客户端技术: html,javascript,css,jpg
  2. 服务器端技术:php, jsp,python,asp

1.2 LAMP架构具体组成

  • L:linux
  • A:apache (httpd)
  • M:mysql, mariadb
  • M:memcached
  • P:php, perl, python

img

2. PHP

2.1 PHP简介

PHP是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。

php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用

2.2 PHP的Opcode语言

PHP的语言引擎Zend执行PHP脚本代码一般会经过如下4个步骤

  • Scanning 词法分析,将PHP代码转换为语言片段(Tokens)
  • Parsing 语义分析,将Tokens转换成简单而有意义的表达式
  • Compilation 将表达式编译成Opcode
  • Execution 顺次执行Opcode,每次一条,从而实现PHP脚本的功能

即:扫描–>分析–>编译–>执行

所以,Opcode是一种PHP脚本编译后的中间语言,类似于Java的ByteCode,或者.NET的MSL。

2.3 PHP配置

php配置文件路径::/etc/php.ini /etc/php.d/*.ini

修改配置文件后生效方法:

  • Modules:重启httpd服务
  • FastCGI:重启php-fpm服务

以#开头,纯粹的注释信息,以 ; 开头,用于注释可启用的directive

提示:较新的版本中,已经完全使用 “ ; ” 进行注释

2.3.1 php常见配置
  • max_execution_time= 30 最长执行时间30s
  • memory_limit=128M 生产不够,可调大
  • display_errors=off 调试使用,不要打开,否则可能暴露重要信息
  • display_startup_errors=off 建议关闭
  • post_max_size=8M 最大上传数据大小,生产可能调大,比下面项大
  • upload_max_filesize =2M 最大上传文件,生产可能要调大
  • max_file_uploads = 20 同时上传最多文件数
  • date.timezone =Asia/Shanghai 指定时区
  • short_open_tag=on 开启短标签
2.3.2 php语言格式
格式1:
<?php
	echo "<h1>Hello world!</h1>"
?>
格式2:
<h1>
	<?php echo "Hello world!" ?>
</h1>
php测试代码
<?php
	echo date("Y/m/d H:i:s");
	phpinfo();
?>

3. LAMP实现方式

3.1 httpd和php调用方式

httpd调用php的方式,或者说动态资源的获取方式有两种:

  • CGI
  • FASTCGI

3.2 CGI

CGI:Common Gateway Interface 公共网关接口

img

web服务器会根据这次请求的内容,然后会fork一个新进程来处理请求, 这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出。 如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程,周而复始的进行。

请求流程
Client -- (http协议) --> httpd -- (cgi协议) --> application server (program file) -- (mysql协议) --> mysql

3.3 FASTCGI

img

fastcgi的方式是,web服务器收到一个请求时,不会重新fork一个进程(因为这个进程在web服务器启
动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用
了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接
着等待下一个请求的到来,而不是退出。

请求流程
Client -- (http协议) --> httpd -- (fastcgi协议) --> fastcgi服务器 -- (mysql协议) --> mysql

3.4 CGI和fastcgi 比较

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值