linux服务器上运行PHP,除了PHP-FPM还有其他的方式吗

linux服务器上运行PHP,除了PHP-FPM还有其他的方式吗,第1张

运行模式
关于PHP目前比较常见的五大运行模式:
1)CGI(通用网关接口/ Common Gateway Interface)
2)FastCGI(常驻型CGI / Long-Live CGI)
3)CLI(命令行运行 / Command Line Interface)
4)Web模块模式(Apache等Web服务器运行的模式)
5)ISAPI(Internet Server Application Program Interface)
备注:在PHP53以后,PHP不再有ISAPI模式,安装后也不再有php5isapidll这个文件。要在IIS6上使用高版本PHP,必须安装FastCGI 扩展,然后使IIS6支持FastCGI。
11、CGI模式
CGI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和Web服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何 *** 作系统上实现。CGI已经是比较老的模式了,这几年都很少用了。
每有一个用户请求,都会先要创建CGI的子进程,然后处理请求,处理完后结束这个子进程,这就是Fork-And-Execute模式。 当用户请求数量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。所以用CGI方式的服务器有多少连接请求就会有多少CGI子进程,子进程反复加载是CGI性能低下的主要原因。
如果不想把 PHP 嵌入到服务器端软件(如 Apache)作为一个模块安装的话,可以选择以 CGI 的模式安装。或者把 PHP 用于不同的 CGI 封装以便为代码创建安全的 chroot 和 setuid 环境。这样每个客户机请求一个PHP文件,Web服务器就调用phpexe(win下是phpexe,linux是php)去解释这个文件,然后再把解释的结果以网页的形式返回给客户机。 这种安装方式通常会把 PHP 的可执行文件安装到 web 服务器的 cgi-bin 目录。CERT 建议书 CA-9611 建议不要把任何的解释器放到 cgi-bin 目录。 这种方式的好处是把Web Server和具体的程序处理独立开来,结构清晰,可控性强,同时缺点就是如果在高访问需求的情况下,CGI的进程Fork就会成为很大的服务器负担,想 象一下数百个并发请求导致服务器Fork出数百个进程就明白了。这也是为什么CGI一直背负性能低下,高资源消耗的恶名的原因。
12、FastCGI模式
FastCGI是CGI的升级版本,FastCGI像是一个常驻 (long-live)型的 CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去 Fork 一次 (这是 CGI 最为人诟病的 fork-and-execute 模式)。
FastCGI是一个可伸缩地、高速地在>首先,我不清楚你说的这个和我理解的是不是同一个概念。刚好之前写过一个文件服务器的小代码,可以稍微分享一下。
服务器首先read文件,read之后会有一个返回值,假设你每次read 1024个字节,当返回值小于1024,表示已经文件已经read结束。read之后send发送文件(阻塞式),在发送完所有文件断开连接,这时服务器又会发送一个FIN给客户端。(注意这里读文件,发文件在一个大循环,循环的判断条件就是read的字节数)。对应客户端接收文件也是在一个大循环里,recv阻塞式的接收文件,然后将接收到的内容写入自己建立的空文件中,在recv的返回值为0的时候,表示接收已经结束,跳出循环,继而断开连接。
可能有人会有疑问,当接收完文件,断开连接,服务器不也就结束了吗?其实我当时写的服务器有服务器和客户端建立了两条TCP连接,一条用于客户端向服务器请求文件,另一条用于服务器向客户端发送文件,这样即使下面一条连接断开,服务器和客户端也不会终止,从而实现该客户端还可以再次请求文件,同时服务器也可以处理其他客户端的请求(第二条连接是在客户端向服务器请求文件,并且服务器有你请求的文件时建立的)。
多客户端连接服务器有两种方式,一种是通过服务器fork生成子进程,用子进程去处理和客户端的数据传输,而父进程的功能就是监听是否有子进程过来连接。还有一种方式就是通过epoll来实现(与select和poll思想相同)。
以上所有内容都是自己敲上去的,可能说的有不对或是不确切的地方,希望看见的人能提出指正,谢谢。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13445093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-07
下一篇 2023-08-07

发表评论

登录后才能评论

评论列表(0条)

保存