php程序运行过程
1.我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;
2.PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);
3.PHP总共有三个模块:内核、Zend引擎、以及扩展层;
4.PHP内核用来处理请求、文件流、错误处理等相关操作;
5.Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
6.扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。
比如,我们需要mysql扩展来连接MySQL数据库;
7.当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;
8.最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上。
phpcgi进程占用cpu资源过多负载高的原因都有哪些
不要使用普通的CGI模式安装,每个PHP进程默认占128MB内存,几G内存也最多百来人访问就击垮了。
CGI模式是早期内部小网站的模式,现在一般用于开发时方便调试。 部署PHP应该使用FastCGI方式或者ISAPI方式安装,就不会产生多进程和资源占用过多。