Rumah pembangunan bahagian belakang tutorial php Mari kita bincangkan tentang hubungan antara FastCgi dan PHP-fpm?

Mari kita bincangkan tentang hubungan antara FastCgi dan PHP-fpm?

Sep 26, 2021 pm 03:25 PM
cgi php php-fpm

Saya telah menyemak hubungan antara fastcgi dan php-fpm dalam talian selama hampir seminggu. , pada dasarnya saya membacanya berulang kali, dan terdapat pendapat yang sangat berbeza, dan tidak ada definisi yang berwibawa.

  • Sesetengah orang di Internet mengatakan bahawa fastcgi ialah protokol, dan php-fpm melaksanakan protokol ini; fpm ialah pengurus proses Fastcgi, digunakan untuk menguruskan proses fastcgi; Ada yang mengatakan bahawa selepas mengubah suai fail konfigurasi php.ini, tiada cara untuk memulakan semula dengan lancar, jadi php-fpm dilahirkan; , maka mengapa mencipta php-fpm?

  • Pertama sekali, apakah itu CGI?
  • CGI adalah untuk memastikan data yang dihantar oleh pelayan web berada dalam format standard, menjadikannya mudah untuk penulis program CGI.
  • Pelayan web (seperti nginx) hanyalah pengedar kandungan. Sebagai contoh, jika /index.html diminta, pelayan web akan mencari fail ini dalam sistem fail dan menghantarnya ke penyemak imbas Apa yang diedarkan di sini ialah data statik. Okay, jika permintaan sekarang untuk /index.php, mengikut fail konfigurasi, nginx tahu bahawa ini bukan fail statik dan perlu dicari oleh penghurai PHP untuk memprosesnya, maka ia hanya akan memproses permintaan dan menyerahkan ia ke parser PHP. Data apakah yang akan dihantar oleh Nginx ke parser PHP? URL mesti ada, rentetan pertanyaan mesti ada, data POST mesti ada, dan pengepala HTTP mesti ada, CGI ialah protokol yang menetapkan data yang hendak dihantar dan dalam format apa yang akan dihantar bahagian belakang untuk memproses permintaan.
  • Apabila pelayan web menerima permintaan untuk /index.php, ia akan memulakan program CGI yang sepadan, iaitu penghurai PHP. Seterusnya, penghurai PHP akan menghuraikan fail php.ini, memulakan persekitaran pelaksanaan, memproses permintaan, mengembalikan hasil yang diproses dalam format yang ditentukan oleh CGI, dan keluar dari proses. Pelayan web kemudian mengembalikan hasilnya kepada penyemak imbas.

Baiklah, CGI adalah protokol dan tiada kaitan dengan proses atau apa-apa seperti itu.
  • Lalu apakah fastcgi?

  • Fastcgi digunakan untuk meningkatkan prestasi program CGI.
  • Tingkatkan prestasi, jadi apakah masalah prestasi program CGI?
  • "Penghurai PHP akan menghuraikan fail php.ini dan memulakan persekitaran pelaksanaan", itu sahaja. CGI standard akan melaksanakan langkah-langkah ini untuk setiap permintaan (jangan penat! Memulakan proses itu sangat memenatkan!), jadi masa untuk memproses setiap kali akan menjadi agak lama. Ini jelas tidak munasabah! Jadi bagaimanakah Fastcgi melakukannya? Pertama, Fastcgi akan memulakan induk, menghuraikan fail konfigurasi, memulakan persekitaran pelaksanaan, dan kemudian memulakan berbilang pekerja. Apabila permintaan masuk, tuan menyerahkannya kepada pekerja, yang kemudiannya boleh menerima permintaan seterusnya dengan serta-merta. Ini mengelakkan pertindihan kerja dan secara semula jadi sangat cekap. Dan apabila pekerja tidak mencukupi, tuan boleh pra-mulakan beberapa pekerja mengikut konfigurasi dan sudah tentu, apabila terdapat terlalu banyak pekerja terbiar, beberapa akan dihentikan, yang meningkatkan prestasi dan menjimatkan sumber; Ini adalah pengurusan proses fastcgi.

Jadi apakah itu PHP-FPM?

ialah program yang melaksanakan Fastcgi dan diterima secara rasmi oleh PHP.

Seperti yang kita sedia maklum, penterjemah PHP ialah php-cgi. php-cgi hanyalah program CGI Ia hanya boleh menghuraikan permintaan dan mengembalikan hasil, tetapi tidak tahu bagaimana untuk menguruskan proses (Yang Mulia, saya benar-benar tidak boleh melakukannya!) Jadi terdapat beberapa program yang boleh menjadualkan php-cgi. proses Sebagai contoh, spawn-fcgi dipisahkan daripada lighthttpd. Nah, PHP-FPM adalah perkara yang sama Selepas tempoh pembangunan yang panjang, ia secara beransur-ansur diiktiraf oleh semua orang (anda tahu, dalam beberapa tahun kebelakangan ini, semua orang mengadu tentang kestabilan PHP-FPM yang lemah), dan ia telah menjadi. semakin popular.

Baiklah, akhirnya mari kita kembali kepada soalan di atas.

    Sesetengah orang di Internet mengatakan bahawa fastcgi ialah protokol, dan php-fpm melaksanakan protokol ini
  • Ya.

Ada yang mengatakan bahawa php-fpm ialah pengurus proses fastcgi, yang digunakan untuk menguruskan proses fastcgi

  1. betul. Objek pengurusan php-fpm ialah php-cgi. Tetapi tidak boleh dikatakan bahawa php-fpm adalah pengurus proses fastcgi, kerana seperti yang dinyatakan sebelum ini, fastcgi adalah protokol, dan nampaknya tiada proses sedemikian wujud Walaupun php-fpm wujud, ia tidak dapat mengurusnya (sekurang-kurangnya buat masa ini).

Sesetengah orang mengatakan bahawa php-fpm ialah tampalan untuk kernel php

  1. Dulunya benar. Oleh kerana php-fpm tidak disertakan dalam kernel PHP pada mulanya, untuk menggunakan fungsi ini, anda perlu mencari php-fpm yang sama dengan versi kod sumber, menampal kernel, dan kemudian menyusunnya. Kemudian, ia menjadi lebih mudah selepas kernel PHP menyepadukan PHP-FPM Hanya gunakan parameter kompilasi --enalbe-fpm.

Ada yang mengatakan bahawa selepas mengubah suai fail konfigurasi php.ini, tiada cara untuk memulakan semula dengan lancar, jadi php-fpm telah lahir

Ya, selepas mengubah suai php.ini, proses php-cgi tidak boleh dimulakan semula dengan lancar. Mekanisme pemprosesan php-fpm ialah pekerja baharu menggunakan konfigurasi baharu, dan pekerja sedia ada boleh berehat selepas menyelesaikan kerja di tangan Mekanisme ini digunakan untuk melicinkan peralihan.

  1. Sesetengah orang mengatakan bahawa PHP-CGI ialah pengurus FastCGI yang disertakan dengan PHP. Jika ya, mengapa mencipta php-fpm?

Tidak. php-cgi hanyalah program yang mentafsir skrip PHP.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Mari kita bincangkan tentang hubungan antara FastCgi dan PHP-fpm?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles