php-cli和php-fpm的關係是什嗎?

來源:互聯網
上載者:User
關鍵字 php
php-cli和php-fpm的關係是什嗎?
另外還有個php-zts,百度了一下叫“安全執行緒版”。
那麼,這三個東西,該用哪個呢,能分別說一下它們的使用情境嗎?
https://hub.docker.com/_/php/

回複內容:

php-cli和php-fpm的關係是什嗎?
另外還有個php-zts,百度了一下叫“安全執行緒版”。
那麼,這三個東西,該用哪個呢,能分別說一下它們的使用情境嗎?
https://hub.docker.com/_/php/

CLI是命令列版本。
FPM是作為Apache或者Nginx等伺服器軟體處理PHP檔案的擴充。

PHP的預設版本是不支援安全執行緒的,這個安全執行緒問題可以去瞭解PHP擴充開發方面的相關知識,這是因為C語言方面的問題了。

cli和fpm是php的兩種運行方式,而安全執行緒和非安全執行緒應該才能說的上是版本。是否開啟安全執行緒可以在編譯PHP的時候進行選擇的。

簡單理解呢,cli就是你在命令列裡運行PHP用的,fpm就是通過web訪問用的

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代碼跟採用index.php作為前端控制器(路由)的架構的Nginx重寫規則含義相近.

location / { try_files $uri $uri/ /index.php?$args;}

php-fpm是一個多進程架構的FastCGI服務,內建php解譯器,進程後台常駐,內建進程管理器,支援進程池配置,多配合Nginx使用.

Linux上自行編譯的PHP預設是非安全執行緒的,什麼時候需要安全執行緒呢?
比如你要使用pthreads這個PHP多線程PECL擴充,
或者你的PHP跑在一個多線程的容器內,比如Apache event MPM,這是一個多線程的MPM.

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.