作者GALINE (天真可爱CQD)
看板PHP
标题Re: [请益] 各家php的差异?
时间Wed Aug 23 10:06:14 2017
※ 引述《shaomi (kerker)》之铭言:
首先确保脑袋里面有这样的图像
---------- HTTP -------------- FastCGI ------- -----------
| Client | <------> | Web Server | <-------> | SAPI | PHP 本体 |
---------- -------------- ------- -----------
--------- ??? ------- -----------
| 指令行| <---> | SAPI | PHP 本体 |
--------- ------- -----------
免责声明:我其实没有真的看懂过底层。如果有大德发现哪边不对或细节有出入错,请协力补充...
浏览器透过 HTTP 跟 web server(例如 Apache)沟通。
> 「example.com 的伺服器先生你好,我要看 /h_ero.php」
而 web server 发现要跑的东西是 PHP,会透过 FastCGI 去告诉 PHP 引擎该做事了
> 「诶都,PHP 啊,有人要看 /h_ero.php,然後他的参数在这里
> 麻烦你把 h_ero.php 的输出传给我,感谢~」
然後 PHP 引擎跑起来,最後你会印出一些字串(没人规定你只能印 HTML 或 JSON)
> 「那,那个,阿帕契先生,你要的那个, /h_ero.php 我放在这里了
> 然,然後,这边有一些 header,麻,麻烦你一起给 client >////<」
最後 web server 会把输出透过 HTTP 传给 client
> 「小子,这是我们家 PHP 酱印出来的资料,跪着拿去看吧」
不同方式(例如从不同的 server,或是从指令行)呼叫 PHP 的时候
PHP 会用不同的 SAPI 去接这个球。
现在使用的 SAPI 可以用这些方式来看:
- 呼叫 php_sapi_name() 这个 function
- 直接看 PHP_SAPI 这个 constant
-------------------------------------------------------
: PHP-FPM
这不是「一种 PHP」,而是「管理 PHP 跟 Server 之间沟通的程式」
没弄错的话,这东西的位置会放在 cgi sapi 跟 webserver 中间
(所以我才会写上面那一大段...)
关於这件事的细节,这篇说得满好的
https://segmentfault.com/q/1010000000256516
: Quercus
这是有人用 Java 自己写的 PHP 引擎
如果你需要「用 Java 跑 PHP」的时候可以研究一下
没这个需求的话就别研究它了....
: Zend Server
一大包面向企业端的伺服器软体,多了一堆有的没的功能
PHP 是其中一个部分
然後你大致上可以想成「官方版 PHP 引擎」是 Zend 社写的
不过不需要弄 Zend Server 那一包东西也能用 PHP
: appserver.io
跟他不熟,从网页上看起来是「我用 PHP 写了一个 server」
然後多了一堆有的没的功能
以上面的例子,大概可以想成少了一个中间人这样。
不过少掉中间人不见得比较快,要让妹子接客然後不会怯场是另一门学问
着眼点应该是灵活性,以及装机器可以少装一些东西,吧,我猜...
-------------------------------------------------------
Quercus vs 官方版,你不写 Java 的话当然是选官方版
其他的东西并不是「其他种 PHP」
另外,顺便介绍两个有名的「其他种 PHP」
都是 Facebook 搞出来的
HHVM,这是「Facebook 版的 PHP 引擎」
最初主打特色是「靠北边那麽快」,可以差一个零
不过 PHP7 出现之後两边的效能差距急速拉近,现在两边几乎平起平坐
HACK,这是「Facebook 版的 PHP 语言」
主要特点是加了静态型别。跑在 HHVM 引擎上,官方版 PHP 不支援
--
Sent from my little pony
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.27.59.170
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1503453981.A.972.html
※ 编辑: GALINE (114.27.59.170), 08/23/2017 10:12:39
1F:推 locklose: 妹子那段描述的相当贴切 08/23 11:17
2F:推 Boston: 推 08/24 18:04
3F:推 JohnRoyer: nice explain ~ XD 08/29 10:06
4F:推 grassocean: 推一个 09/01 17:24