cari
Rumahpembangunan bahagian belakangtutorial phpRingkasan terperinci mod pengendalian PHP

Mod larian PHP

SAPI

Mod larian PHP yang disebut di sini sebenarnya merujuk kepada SAPI (Antara Muka Pengaturcaraan Aplikasi Pelayan, port pengaturcaraan aplikasi pelayan). SAPI menyediakan antara muka untuk PHP berkomunikasi dengan dunia luar PHP menggunakan antara muka ini untuk berinteraksi dengan aplikasi lain. Untuk senario aplikasi yang berbeza, PHP juga menyediakan pelbagai SAPI yang berbeza termasuk: apache, apache2filter, apache2handler, cli, cgi, embed, fast-cgi, isapi, dll.

Ringkasan terperinci mod pengendalian PHP

php_sapi_name() — Mengembalikan jenis antara muka antara pelayan web dan PHP. Nilai yang mungkin dikembalikan termasuk aolserver, apache, apache2filter, apache2handler, caudium, cgi (sehingga PHP 5.3), cgi-fcgi, cli, cli-server, kesinambungan, embed, fpm-fcgi, isapi, litespeed, milter, nsapi, phttpd , pi3web, roxen, thttpd, tux dan webjames.

Banyak pelaksanaan SAPI yang terbina dalam PHP tidak lagi diselenggara atau menjadi agak bukan arus perdana Komuniti PHP sedang mempertimbangkan untuk memindahkan beberapa SAPI daripada pangkalan kod. Komuniti menganggap banyak ciri berada dalam perpustakaan PECL melainkan ia benar-benar diperlukan, atau beberapa ciri hampir universal.

Lima daripada mod pengendalian yang lebih biasa akan diterangkan di bawah.

Mod CLI

CLI (Antara Muka Baris Perintah), iaitu antara muka baris arahan, PHP akan dipasang secara lalai. Melalui antara muka ini, anda boleh berinteraksi dengan PHP dalam persekitaran shell. Masukkan php -v dalam terminal, dan anda akan mendapat hasil yang serupa dengan gambar di bawah (dengan syarat PHP dipasang):

Ringkasan terperinci mod pengendalian PHP

Kerana kewujudan CLI, Kita boleh menjalankan skrip PHP secara langsung dalam baris arahan terminal, sama seperti menggunakan shell atau Python, tanpa bergantung pada pelayan WEB. Sebagai contoh, alat baris arahan Artisan dalam rangka kerja Laravel sebenarnya adalah skrip PHP yang digunakan untuk membantu kami membina aplikasi Laravel dengan cepat.

Mod CGI

CGI (Antara Muka Gerbang Biasa, Antara Muka Gerbang Biasa) ialah teknologi Internet penting yang membolehkan pelanggan beralih daripada pelayar web ke program yang dilaksanakan pada pelayan rangkaian Data Permintaan. CGI menerangkan standard untuk memindahkan data antara pelayan dan pengendali permintaan.

Pelayan WEB hanyalah pengedar kandungan. Sebagai contoh, Nginx, jika pelanggan meminta /index.html, maka Nginx akan mencari fail dalam sistem fail dan menghantarnya ke penyemak imbas Apa yang diedarkan di sini adalah data statik jika pelanggan kini meminta /index.php, mengikut fail konfigurasi, Nginx tahu bahawa ini bukan fail statik dan perlu diproses oleh penghurai PHP, jadi ia hanya akan memproses permintaan dan menyerahkannya kepada penghurai PHP. Data apakah yang akan dihantar oleh Nginx ke parser PHP? URL mesti ada, rentetan pertanyaan mesti ada, data POST mesti ada, dan pengepala permintaan HTTP tidak boleh hilang, CGI ialah protokol yang menetapkan data apa yang akan dihantar dan dalam format apa dihantar ke bahagian belakang untuk memproses permintaan .

Prinsip operasi mod CGI: Apabila Nginx menerima permintaan pelayar /index.php, ia akan mula-mula mencipta proses yang melaksanakan protokol CGI, 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 corak 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.

Ringkasan terperinci mod pengendalian PHP

Kelebihan mod CGI ialah ia bebas sepenuhnya daripada mana-mana pelayan dan hanya bertindak sebagai perantara: menyediakan antara muka kepada pelayan WEB dan bahasa skrip atau pengaturcaraan bebas sepenuhnya bahasa. Mereka disambungkan melalui protokol CGI untuk menyelesaikan pemindahan data. Kelebihan ini adalah untuk meminimumkan korelasi antara mereka, menjadikan masing-masing lebih bebas dan bebas antara satu sama lain.

Mod CGI sudah menjadi mod yang agak lama dan jarang digunakan sejak beberapa tahun kebelakangan ini.

Mod FastCGI

FastCGI (Antara Muka Gerbang Biasa Pantas) ialah protokol yang membenarkan atur cara interaktif berkomunikasi dengan pelayan web. FastCGI ialah versi dipertingkatkan bagi Antara Muka Gerbang Biasa (CGI) yang lebih awal. FastCGI komited untuk mengurangkan overhed interaksi antara pelayan web dan program CGI, supaya pelayan boleh mengendalikan lebih banyak permintaan halaman web pada masa yang sama.

Menurut definisi, FastCGI juga merupakan sebuah protokol Program yang melaksanakan protokol FastCGI lebih seperti program protokol CGI yang bertahan lama selagi ia diaktifkan, ia sentiasa boleh dilaksanakan tidak akan mengambil masa untuk bercabang setiap masa.

Prinsip operasi mod FastCGI: Selepas pengurus proses FastCGI dimulakan, ia akan menghuraikan fail php.ini terlebih dahulu, memulakan persekitaran pelaksanaan, dan kemudian memulakan berbilang daemon penterjemah protokol CGI (daemon penterjemah protokol CGI berbilang boleh dilihat dalam pengurusan proses php-cig atau php-cgi.exe) dan tunggu sambungan daripada pelayan WEB apabila permintaan pelanggan sampai ke pelayan WEB, pengurus proses FastCGI akan memilih dan menyambung kepada penterjemah CGI, dan WEB; pelayan akan pembolehubah persekitaran CGI dan standard Input dihantar ke sub-proses php-cgi FastCGI selepas sub-proses php-cgi menyelesaikan pemprosesan, ia mengembalikan output standard dan maklumat ralat pada pelayan WEB; , sub-proses php-cgi akan menutup sambungan dan permintaan akan diproses Kemudian terus menunggu dan memproses sambungan permintaan seterusnya daripada pengurus proses FastCGI.

Ringkasan terperinci mod pengendalian PHP

Mod FastCGI menggunakan struktur C/S, yang boleh memisahkan pelayan WEB dan pelayan parsing skrip, dan memulakan satu atau lebih daemon parsing skrip pada pelayan parsing skrip. Setiap kali pelayan WEB menemui program dinamik, ia boleh dihantar terus ke proses FastCGI untuk pelaksanaan, dan kemudian hasilnya dikembalikan kepada penyemak imbas. Kaedah ini membolehkan pelayan WEB memproses permintaan statik secara eksklusif atau mengembalikan hasil pelayan skrip dinamik kepada klien, yang meningkatkan prestasi keseluruhan sistem aplikasi.

Selain itu, dalam mod CGI, selepas konfigurasi php.ini php-cgi ditukar, proses php-cgi perlu dimulakan semula untuk konfigurasi php-ini baharu berkuat kuasa, dan mulakan semula lancar adalah tidak mungkin. Dalam mod FastCGI, PHP-FPM boleh mencapai permulaan semula yang lancar selepas pengubahsuaian php.ini dengan menjana proses anak baharu.

PHP-FPM (Pengurus Proses PHP-FastCGI) ialah pengurus proses yang melaksanakan protokol FastCGI dalam bahasa PHP Ia telah ditulis dan dilaksanakan oleh Andrei Nigmatulin Ia telah dimasukkan secara rasmi oleh PHP dan disepadukan ke dalam isirong.

Kelebihan mod FastCGI:

  • Dari sudut kestabilan, mod FastCGI menggunakan kumpulan proses bebas untuk menjalankan program protokol CGI sistem Ia boleh dibuang dengan mudah dan kemudian ditugaskan semula ke proses baharu untuk menjalankan logik; Program FastCGI adalah bebas sepenuhnya daripada pelayan hos Walaupun program FastCGI ditutup, ia tidak akan menjejaskan pelayan Pemprosesan IO masih diserahkan kepada pelayan hos, supaya pelayan hos boleh mengendalikan IO dengan sepenuh hati laman web dinamik, mungkin terdapat hanya sebahagian kecil daripada pemprosesan logik, dan sejumlah besar imej statik dan kandungan statik lain.

  • Mod FastCGI kini merupakan mod operasi perkhidmatan WEB PHP arus perdana Ia mempunyai prestasi yang cekap dan boleh dipercayai serta disyorkan untuk digunakan oleh semua orang.
  • Mod modul

  • PHP sering dipasangkan dengan pelayan Apache untuk membentuk persekitaran operasi yang menyokong LAMP. Mengintegrasikan PHP sebagai submodul ke dalam Apache ialah mod Modul Konfigurasi biasa dalam Apache adalah seperti berikut:

Ini menggunakan perintah Parameter pertama perintah itu ialah nama modul . , nama boleh didapati dalam kod sumber pelaksanaan modul. Pilihan kedua ialah laluan di mana modul berada. Jika anda perlu memuatkan modul semasa pelayan sedang berjalan, anda boleh menghantar isyarat

atau

kepada pelayan Setelah isyarat diterima, Apache akan memuatkan semula modul tanpa memulakan semula pelayan. Dengan mendaftar ke cangkuk

apache2, modul ini dimulakan apabila Apache mula menerima permintaan untuk fail PHP.

Sebagai contoh, apabila pelanggan mengakses fail PHP, Apache memanggil
LoadModule php5_module modules/mod_php5.so
untuk menghuraikan skrip PHP. Setiap kali Apache menerima permintaan, ia akan membuat proses untuk menyambung ke PHP untuk menyelesaikan permintaan. Dalam mod Modul, kadangkala PHP disusun ke dalam Apache sebagai modul, menjadikannya sukar untuk menentukan sama ada masalah berlaku dengan PHP atau Apache.

Pada masa lalu, dengan modul dan fungsinya yang kaya, perusahaan sering menggunakan Apache sebagai pelayan WEB, jadi gabungan PHP dan Apache yang berjalan dalam mod Modul adalah sangat biasa. Dalam beberapa tahun kebelakangan ini, dengan peningkatan pelayan Nginx berprestasi tinggi yang dipacu peristiwa tak segerak, bahagian pasaran telah berkembang dengan pesat Gabungan PHP Nginx yang berjalan dalam mod FastCGI mempunyai prestasi yang lebih baik dan mempunyai kecenderungan untuk mengejar Apache.

Mod ISAPI

ISAPI (Antara Muka Program Aplikasi Pelayan Internet) ialah satu set antara muka API untuk perkhidmatan Internet yang disediakan oleh Microsoft DLL ISAPI boleh berada dalam ingatan selepas diaktifkan oleh permintaan pengguna. , menunggu permintaan lain daripada pengguna, dan anda juga boleh menetapkan berbilang fungsi pemprosesan permintaan pengguna dalam satu DLL Selain itu, aplikasi ISAPI DLL dan pelayan WEB berada dalam proses yang sama, dan kecekapannya jauh lebih tinggi daripada CGI. Disebabkan oleh eksklusiviti Microsoft, ia hanya boleh dijalankan dalam persekitaran Windows.

jarang digunakan, jadi saya tidak akan memperkenalkannya secara terperinci di sini.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Ringkasan terperinci mod pengendalian PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:segmentfault. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apakah beberapa masalah biasa yang boleh menyebabkan sesi PHP gagal?Apr 25, 2025 am 12:16 AM

Sebab -sebab kegagalan phpsession termasuk kesilapan konfigurasi, isu cookie, dan tamat tempoh sesi. 1. Ralat Konfigurasi: Semak dan tetapkan session.save_path yang betul. Masalah 2.Cookie: Pastikan kuki ditetapkan dengan betul. 3.Session Expires: Laraskan Nilai Sesi.GC_MAXLifetime untuk melanjutkan masa sesi.

Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Bagaimanakah anda menyebarkan isu berkaitan sesi dalam PHP?Apr 25, 2025 am 12:12 AM

Kaedah untuk masalah sesi debug dalam PHP termasuk: 1. Periksa sama ada sesi dimulakan dengan betul; 2. Sahkan penghantaran ID sesi; 3. Semak penyimpanan dan bacaan data sesi; 4. Semak konfigurasi pelayan. Dengan mengeluarkan ID dan data sesi, melihat kandungan fail sesi, dan lain-lain, anda boleh mendiagnosis dan menyelesaikan masalah yang berkaitan dengan sesi.

Apa yang berlaku jika session_start () dipanggil beberapa kali?Apa yang berlaku jika session_start () dipanggil beberapa kali?Apr 25, 2025 am 12:06 AM

Pelbagai panggilan ke session_start () akan menghasilkan mesej amaran dan kemungkinan penggantian data. 1) PHP akan mengeluarkan amaran, menyebabkan sesi telah dimulakan. 2) Ia boleh menyebabkan penggantian data sesi yang tidak dijangka. 3) Gunakan session_status () untuk memeriksa status sesi untuk mengelakkan panggilan berulang.

Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Bagaimana anda mengkonfigurasi seumur hidup sesi di PHP?Apr 25, 2025 am 12:05 AM

Mengkonfigurasi kitaran hayat sesi dalam PHP boleh dicapai dengan menetapkan sesi.gc_maxlifetime dan session.cookie_lifetime. 1) session.gc_maxlifetime mengawal masa survival data sesi pelayan, 2) session.cookie_lifetime mengawal kitaran hayat kuki klien. Apabila ditetapkan ke 0, kuki tamat apabila penyemak imbas ditutup.

Apakah kelebihan menggunakan pangkalan data untuk menyimpan sesi?Apakah kelebihan menggunakan pangkalan data untuk menyimpan sesi?Apr 24, 2025 am 12:16 AM

Kelebihan utama menggunakan sesi penyimpanan pangkalan data termasuk kegigihan, skalabilitas, dan keselamatan. 1. Kegigihan: Walaupun pelayan dimulakan semula, data sesi tidak dapat berubah. 2. Skalabiliti: Berkenaan dengan sistem yang diedarkan, memastikan data sesi disegerakkan di antara pelbagai pelayan. 3. Keselamatan: Pangkalan data menyediakan storan yang disulitkan untuk melindungi maklumat sensitif.

Bagaimana anda melaksanakan pengendalian sesi tersuai di PHP?Bagaimana anda melaksanakan pengendalian sesi tersuai di PHP?Apr 24, 2025 am 12:16 AM

Melaksanakan pemprosesan sesi tersuai dalam PHP boleh dilakukan dengan melaksanakan antara muka sessionHandlerInterface. Langkah -langkah khusus termasuk: 1) mewujudkan kelas yang melaksanakan sessionHandlerInterface, seperti CustomSessionHandler; 2) kaedah penulisan semula dalam antara muka (seperti terbuka, rapat, membaca, menulis, memusnahkan, gc) untuk menentukan kitaran hayat dan kaedah penyimpanan data sesi; 3) Daftar pemproses sesi tersuai dalam skrip PHP dan mulakan sesi. Ini membolehkan data disimpan dalam media seperti MySQL dan REDIS untuk meningkatkan prestasi, keselamatan dan skalabiliti.

Apakah ID Sesi?Apakah ID Sesi?Apr 24, 2025 am 12:13 AM

SesionID adalah mekanisme yang digunakan dalam aplikasi web untuk mengesan status sesi pengguna. 1. Ia adalah rentetan yang dijana secara rawak yang digunakan untuk mengekalkan maklumat identiti pengguna semasa pelbagai interaksi antara pengguna dan pelayan. 2. Pelayan menjana dan menghantarnya kepada klien melalui kuki atau parameter URL untuk membantu mengenal pasti dan mengaitkan permintaan ini dalam pelbagai permintaan pengguna. 3. Generasi biasanya menggunakan algoritma rawak untuk memastikan keunikan dan ketidakpastian. 4. Dalam pembangunan sebenar, pangkalan data dalam memori seperti REDIS boleh digunakan untuk menyimpan data sesi untuk meningkatkan prestasi dan keselamatan.

Bagaimanakah anda mengendalikan sesi dalam persekitaran tanpa kerakyatan (mis., API)?Bagaimanakah anda mengendalikan sesi dalam persekitaran tanpa kerakyatan (mis., API)?Apr 24, 2025 am 12:12 AM

Menguruskan sesi dalam persekitaran tanpa kerakyatan seperti API boleh dicapai dengan menggunakan JWT atau cookies. 1. JWT sesuai untuk ketiadaan dan skalabilitas, tetapi ia adalah saiz yang besar ketika datang ke data besar. 2.Cookies lebih tradisional dan mudah dilaksanakan, tetapi mereka perlu dikonfigurasikan dengan berhati -hati untuk memastikan keselamatan.

See all articles

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna