关于php的三种运行方法

php三种运行方法是:1、通过HTTPServer内置的模块来实现;2、通过CGI来实现;3、通过FastCGI来实现。

关于php的三种运行方法

推荐:《PHP视频教程》

PHP三种运行方式

三种运行方式:mod_php5、cgi、fast-cgi

1. 通过HTTPServer内置的模块来实现,

立即学习“PHP免费学习笔记(深入)”;

例如Apache的mod_php5,类似的Apache内置的mod_perl可以对perl支持;

 

2. 通过CGI来实现

这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器,另一方面就是不太安全,

该方式几乎很少使用了。

 

3. 最新出现一种叫做FastCGI。

所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器会启动一个或者多个daemon进 程,每次HTTPServer遇到脚本的时候,直接交付给FastCGI的进程来执行,然后将得到的结果(通常为html)返回给浏览器。

该种方法的问题存在一个小问题是当遇到大流量的频繁请求的话,脚本处理器的daemon进程可能会超负荷从而变得很慢,甚至发生内存泄漏;

但是比较起Apache的内置模块的方式的优点是由于Server和脚本解析器完全分开各负其责,因此服务器不再臃肿,可以专心地进行静态文件响 应或者将动态脚本解析器的结果返回给用户客户端。

所以比较起Apache的内置模块方式,有时候性能要提高很多。

有人测试可能会达到 Apache+mod_php的5~10倍。

3.1. FastCGI常用模式:

lightppd+spawn-fcgi

nginx+PHP-FPM

 

a、上面两种都采用FastCGI对PHP支持,因此HTTPServer完全解放出来,可以更好地进行响应和并发处理。

b、spawn-fcgi由于是lighttpd的一部分,因此安装了lighttpd一般就会使用spawn-fcgi对php支持,但是目前有用户说ligttpd的spwan-fcgi在高并发访问的时候,会出现上面说的内存泄漏甚至自动重启fastcgi。

  nginx不像lighttpd本身含带了fastcgi(spawn-fcgi),因此它完全是轻量级的,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此其实这样看来nginx是非常灵活的,它可以和任何第三方提供解析的处理器实现连接从而实现对PHP的解析。

  nginx可以使用spwan-fcgi(需要一同安装lighttpd,但是需要为nginx避开端口,一些较早的blog有这方面安装的教程),但是由于spawn-fcgi具有上面所述的用户逐渐发现的缺陷,现在慢慢减少使用nginx+spawn-fcgi组合了。

c、由于spawn-fcgi的缺陷,现在出现了新的第三方(目前还是,听说正在努力不久将来加入到PHP core中)的PHP的FastCGI处理器,叫做PHP-FPM。它和spawn-fcgi比较起来有如下优点:

  由于PHP-FPM是作为PHP的补丁来开发的,安装的时候需要和php源码一起编译,也就是说编译到php core中了,因此在性能方面要优秀一些;

  同时它在处理高并发方面也优于spawn-fcgi,至少不会自动重启fastcgi处理器。

  因此,如上所说由于nginx的轻量和灵活性,因此目前性能优越,越来越多人逐渐使用这个组合:nginx+PHP/PHP-FPM 。

以上就是关于php的三种运行方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2128491.html

(0)
上一篇 2025年2月24日 21:45:11
下一篇 2025年2月22日 19:07:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php如何实现文档在线预览

    php实现文档预览的方法:首先将“php.ini”中的“com.allow_dcom”设为“TRUE”;然后定义一个“php_Word”方法;接着读取Word内容;最后进行建立Word文档操作即可。 推荐:《PHP视频教程》 php实现文档…

    2025年2月24日
    200
  • php正则替换标签的实现方法

    php正则替换标签的实现方法:首先通过“strip_tags”函数剥去字符串中的HTML标签;然后利用正则表达式替换标签,代码语句如“pregreplace(“/s+/”,””,str=pre…

    2025年2月24日
    200
  • 如何解决php html标签转换问题

    php html标签转换问题的解决办法:1、使用“htmlentities()”函数将html标签转换成特殊字符;2、使用“html_entity_decode()”函数将htmlentities函数转义过的字符串转成html标签。 推荐:…

    2025年2月24日
    200
  • php如何使用正则替换域名

    php正则替换域名的实现方法:首先获取网站的url;然后创建正则表达式为“$reg = ‘/(http)://([^/]+)/i’;”;接着替换指定域名;最后运行相关PHP文件即可。 推荐:《PHP视频教程》 正则提…

    2025年2月24日
    200
  • php如何实现手机适配跳转页面

    php实现手机跳转页面的方法:首先打开“header.php”文件;然后在顶部添加代码为“$agent = $_SERVER[‘HTTP_USER_AGENT’];”;最后保存修改即可。 推荐:《PHP视频教程》 P…

    2025年2月24日
    200
  • php怎么删除不可见字符

    php删除不可见字符的方法:首先打开后台php代码文件;然后通过“preg_replace($pattern, “”, ‘‎’);”方法将不可见的Unicode字符直接删除掉即可。 推荐:《P…

    2025年2月24日 编程技术
    200
  • php设置字符串编码格式

    php设置字符串编码格式的方法就是在代码的开始处添加一行代码为“header(“Content-Type: text/html;charset=utf-8”);”即可。 推荐:《PHP视频教程》 php 设置字符编码…

    2025年2月24日
    200
  • php中文文件名乱码怎么办

    php中文文件名乱码的解决办法:首先打开相应的PHP文件;然后使用“$ifilename = iconv(‘UTF-8’, ‘GB18030’, $filename);”方法转换编码即可。 推…

    2025年2月24日
    200
  • php怎么将字符串转多维数组

    php字符串转多维数组的实现方法:首先定义一个需要转成多维数组的字符串;然后通过explode函数分割字符串,并返回由字符串组成的数组;最后通过“print_r”输出转换结果即可。 推荐:《PHP视频教程》 php 字符串转成二维数组 第一…

    2025年2月24日
    200
  • php下载图片打不开怎么办

    php下载图片打不开的解决办法:首先打开相关的PHP文件;然后在文件中添加“ob_clean”函数,用来丢弃输出缓冲区中的内容即可。 推荐:《PHP视频教程》 php下载图片打开失败! 最近写了一个图片下载,下载成功了,结果打开说文件错误,…

    2025年2月24日
    200

发表回复

登录后才能评论