Rumah >pembangunan bahagian belakang >masalah PHP >Apakah maksud cgi dalam php

Apakah maksud cgi dalam php

WBOY
WBOYasal
2022-02-14 10:58:535603semak imbas

Dalam PHP, cgi ialah singkatan daripada "Antara Muka Gerbang Biasa", yang bermaksud antara muka gerbang awam cgi membolehkan pelanggan meminta data daripada pelayar web kepada program yang dilaksanakan pada pelayan rangkaian Standard untuk memindahkan data antara pelayan dan pengendali permintaan.

Apakah maksud cgi dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 7.1, komputer DELL G3

Apakah maksud cgi dalam php

Ringkasnya, CGI dan FastCGI hanyalah protokol, php-cgi ialah program yang melaksanakan cgi, dan php-fpm hanyalah pengurus untuk menguruskan php-cgi.

Nama penuh CGI ialah "Antara Muka Gerbang Biasa". Ia adalah alat yang digunakan oleh pelayan HTTP untuk "bercakap" dengan program pada mesin anda atau lain-lain Program mesti dijalankan pada pelayan rangkaian.

ialah teknologi Internet penting yang membolehkan pelanggan meminta data daripada penyemak imbas web kepada program yang dilaksanakan pada pelayan web.

CGI menerangkan standard untuk memindahkan data antara pelayan dan pengendali permintaan.

Apakah yang dilakukan oleh CGI? CGI adalah untuk memastikan bahawa data yang dihantar oleh pelayan web adalah dalam format standard, yang sesuai 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. Fikirkan dengan teliti tentang dari mana datangnya data pengguna yang anda gunakan dalam kod PHP anda.

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. Jadi apa itu fastcgi? Fastcgi digunakan untuk meningkatkan prestasi program CGI.

FastCGI dibangunkan dan dipertingkatkan daripada CGI. Kelemahan utama kaedah antara muka CGI tradisional adalah prestasi yang lemah, kerana setiap kali pelayan HTTP menghadapi program dinamik, penghurai skrip perlu dimulakan semula untuk melakukan penghuraian, dan kemudian hasilnya dikembalikan kepada pelayan HTTP.

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 risau! Memulakan proses adalah 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? Ia adalah 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 juga merupakan perkara sedemikian Setelah tempoh pembangunan yang panjang, ia secara beransur-ansur diiktiraf oleh semua orang dan menjadi semakin popular.

PHP-CGI hanyalah program yang mentafsir skrip PHP.

PHP-FPM ialah pengurus FastCGI

Prinsip operasi mod CGI

Apabila Nginx menerima permintaan pelayar/index.php, Pertama, satu proses sepadan dengan pelaksanaan protokol CGI akan dibuat, berikut ialah php-cgi (penghuraikan PHP). Seterusnya, php-cgi akan menghuraikan fail php.ini, memulakan persekitaran pelaksanaan, memproses permintaan, mengembalikan hasil yang diproses dalam format yang ditentukan oleh CGI, dan keluar dari proses. Akhirnya, Nginx mengembalikan keputusan kepada penyemak imbas. Keseluruhan proses ialah mod Fork-And-Execute. Apabila bilangan permintaan pengguna adalah sangat besar, sejumlah besar sumber sistem seperti memori dan masa CPU akan diduduki, mengakibatkan prestasi rendah. Oleh itu, di bawah pelayan CGI, akan terdapat banyak sub-proses CGI kerana terdapat permintaan sambungan Pemuatan berulang sub-proses adalah sebab utama prestasi CGI yang rendah.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah maksud cgi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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