


既然apache也是调php解析器php-cgi.exe去执行php的,为啥一定要安装apache呢?
既然apache也是调php解析器php-cgi.exe去执行php的,为啥一定要安装apache呢?
为啥不是直接把请求给php-cgi.exe, 还要经过apache绕一下?
回复内容:
既然apache也是调php解析器php-cgi.exe去执行php的,为啥一定要安装apache呢?
为啥不是直接把请求给php-cgi.exe, 还要经过apache绕一下?
一个php的地址请求的时序图是这样的,php-cgi是和apache之间进行fastcgi通信的监守程序,是不能被去掉的。
当然apache还有一种不通过fastcgi进行调用php的方式,即apache模块方式:
<code>LoadModule php5_module /usr/lib/apache/libphp5.so </code>
这个时候时序图上是没有php-cgi这个实体的,apache直接调用php.
apache实现了http协议及相关内容,而php只是可以作为它的一个扩展而已
如果你用php实现http协议相关内容,也可以无需apache的。
当然你也可以这样:
<code>php -S 0.0.0.0:8080 -t /www </code>
直接用php内置的web server,无需安装apache。
PHP作为Apache的一个module(libphp5.so)集成到Apache进程(httpd)运行,这种mod_php的运行模式是最常用的,这时PHP的运行跟php-cgi没有任何关系.mod_php的配置是这样:
<code>LoadModule php5_module modules/libphp5.so AddHandler application/x-httpd-php .php </code>
可以配置extra/httpd-mpm.conf来控制Apache的进程数量.
如果你在Apache里用mod_fcgid方式来运行PHP,则需要使用php-cgi,这时Apache作为有一个FastCGI进程管理器来管理php-cgi,在httpd.conf配置:
<code>#载入mod_fcgid模块(不能和php5_module同时使用) LoadModule fcgid_module modules/mod_fcgid.so AddHandler fcgid-script .php #php-cgi的进程数量 FcgidMaxProcesses 5 #指定php-cgi来处理php请求 FcgidWrapper /png/php/5.4.39NTS/bin/php-cgi .php #在需要使用php-cgi来执行PHP的Directory加上Options +ExecCGI,比如: <directory> Options +ExecCGI </directory> </code>
另外在Linux上还有一种非常常用的组合,就是Nginx搭配php-fpm使用,其中php-fpm跟php-cgi没有任何关系,php-fpm自身就集成了PHP解释器,php-fpm有自己的进程管理器,只处理Nginx转发过来的PHP请求并返回,跟Nginx是松耦合的.
php-cgi.exe不是http服务器,它接受的协议和apache完全不一样。如果需要去掉apache就必须用php实现http协议,会导致很多无用代码还可能有bug。
一个网站的构成,除了php生成的动态内容之外,还有其它的部分,比如静态内容,如果由php去下发这些静态内容的话,效率自然不如专门为这种工作优化过的web server来得高效。
除了静态内容之外,还有记录访问日志、url rewrite、http协议相关的很多东西,假设世界上没有web server这种东西,那我们无论使用什么语言来开发网站,都必须把这些东西写一遍。把这些东西独立出来,实现成为web server,就节约了大量的重复性劳动,而且无论后端使用任何语言,都可以直接通过部署到web server享受到这些便利。这一点其实跟我们在设计系统的时候把某些逻辑专门抽象封装出来是一个道理。
别的不说,后端直接暴露在公网你还真敢干啊。。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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

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

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

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,

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

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 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.
