服务器端脚本管理器
- MIME(Multipurpose Internet Mail Extensions)
多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,
当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 - 动态网站
客户端动态 服务器端动态
在windows平台下有Activex,可以在客户端编写动态程序; - CGI(通用网关接口)
–>可以认为它是webapp; - 编程语言
静态语言;编译型语言
C , C++ ,JAVA
优点:性能好
缺点:每次都需要编译;出现错误处理比较麻烦;开发周期长;维护成本大;
动态语言:解释性语言
shell , perl , python
优点:便于维护;有众多模块可共享;开发周期短,成本低;
缺点:性能差;
但是折中就是最好;如Facebook有工具可以把动态语言转换成静态语言;
PHP:hypertext preprocessor超文本预处理器
两个以色列程序员在1997年重新php的分析器,
于1999年发布zend engine 1.0 ,并发布php4.0####这句很重要
php zend engine
zend engine的出现将php的代码处理过程分成了两个阶段,首先是分析php代码并且将其转换为zend opcode的二进制格式,并将其储存在内存中;第二阶段是使用zend engine去执行这些转换后的opcode;(opcode:操作码)
php source code –>编译成二进制–>执行二进制格式
但是这种二进制只能在zend engine中运行;
提供加速的原理及相关软件(称为php加速器)
用户在访问同一个php源程序时,通过zend engine编译,但是这个编译只在同一个进程内访问快,
例如两个用户在访问同一个php页面时,并不会整体上提高运行速度,所以这个时候把编译后的opcode
放在一个缓存中,不同的进程在访问这个时,就不会重新编译,大大提高性能;
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载. –>摘自百度百科
而提供这种缓存功能的软件有
APC
eAccelerator
Xcache 快速而且稳定的PHP opcode缓存,经过严格测试而且被大量用于生产环境。
Nusphere PhpExpress
Zend Optimizer 并非opcode加速器,而是为php5.2及以前的免费、闭源的php扩展;当然目前还在发展;使用的也不少;
PHP源码目录结构
- build
- ext
- main
- Zend
- pear
- sapi
- TSRM
- tests
- win32 这个windows平台的
HTML
1 | <html> |
例:如何在源代码中加入bash脚本:
在httpd.cnf中有ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/“
然后到上面这个目录下,编写mytest.sh
1 | #!bin/bash |
保存加可执行权限
然后在浏览器上访问ip/cgi-bin/mytest.sh ,即可看到时间
PHP可以成为嵌入式web开发语言
软件架构模式
(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View) - 界面设计人员进行图形界面设计。
(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
web如何和php交流
三种方式:
- CGI
- Module
- FastCGI这个最重要
如果通过CGI做Apache和php之间调用进行200个prefork下的进程访问200个php,就要消耗至少400个进程,消耗几个G的内存;
所以当大量用户访问的时候,CGI并不适合Apache和php之间调用;
所以把php做成一个apache的一个模块,当需要调用php的时候,只需要启用200个进程就可以;
但是这样apache就要同时处理静态和动态内容,对服务器要求高;
所以出现静态和动态相分离的:
出现php提供进程,当Apache提供请求时,php解释器创建进程完成响应;可以把php作为服务器,Apache作为前段客户端;
叫做FastCGI(这个相当重要)
1
#yum install php (php-mbstring对于多字节支持的,这个会在编译时支持)php-mysql(自行选择)
这种是以模块的方式存在
1 |
|