php-cli和php-fpm的關係是什麼?
那麼,這三個東西,該用哪個呢,能分別說一下它們的使用場景麼?
cli是命令列版本。
fpm是作為apache或者nginx等伺服器軟體處理php檔案的擴充套件。
php的預設版本是不支援執行緒安全的,這個執行緒安全問題可以去了解php擴充套件開發方面的相關知識,這是因為c語言方面的問題了。
cli和fpm是php的兩種執行方式,而執行緒安全和非執行緒安全應該才能說的上是版本。是否開啟執行緒安全可以在編譯php的時候進行選擇的。
比如:cli就是我們在命令列裡使用的那個php命令,其實它也可以提供http服務,因為它內建了乙個http伺服器:
php -s 127.0.0.1:80 -t /www /www/index.php
這樣就建立了乙個監聽127.0.0.1上80埠,根目錄為/www的單程序http服務了,可以用於php開發和測試.
其中index.php是重寫規則,可以用php實現,比如:
<?php
$uri = parse_url($_server['request_uri'], php_url_path);
if (file_exists(dirname(__file__).$uri)) else
上面這段php**跟採用index.php作為前端控制器(路由)的框架的nginx重寫規則含義相近.
location /
php-fpm是乙個多程序架構的fastcgi服務,內建php直譯器,程序後台常駐,自帶程序管理器,支援程序池配置,多配合nginx使用.
linux上自行編譯的php預設是非執行緒安全的,什麼時候需要執行緒安全呢?
比如你要使用pthreads這個php多執行緒pecl擴充套件,
或者你的php跑在乙個多執行緒的容器內,比如apache event mpm,這是乙個多執行緒的mpm.
Fastcgi和php fpm的關係
抽象化的說明fastcgi和php fpm的關係 你 php 去和日本人 web伺服器,如 apache nginx 談生意 你說中文 php 他說日語 c 互相聽不懂,怎麼辦?那就都把各自說的話轉換成英語 fastcgi 協議 吧。怎麼轉換呢?你就要使用乙個翻譯機 php fpm 當然對方也有乙個...
有關CGI FastCGI和PHP fpm的簡述
1 cgi概念 cgi是外部應用程式 cgi程式 與web伺服器之間的介面標準,是在cgi程式和web伺服器之間傳遞資訊的過程。在物理上是一段程式,執行在伺服器上,提供同客戶端html頁面的介面。只要某種語言具有標準輸入 輸出和環境變數,如perl php c等,就可以用來編寫cgi程式。工作原理 ...
FastCGI和php fpm的區別
一直以來對cgi php cgi和php fpm的概念都比較模糊,今天整理了一下 1 cgi是什麼?cgi是個協議,跟程序什麼的沒關係。web server 比如說 nginx 只是內容的分發者。比如,1 如果請求的是 html靜態資料,那麼web server會去檔案系統中找到這個檔案,傳送給瀏覽...