Saya ingin bertanya tentang metode konfigurasi PHP / Apache yang Anda tahu, pro dan kontra mereka. Saya akan mulai sendiri:
---------------- PHP sebagai modul Apache ----------------
Pro : kecepatan yang baik karena Anda tidak perlu memulai exe setiap kali terutama dalam mode mpm-pekerja . Anda juga dapat menggunakan berbagai akselerator PHP dalam mode ini seperti APC atau eAccelerator.
Cons : jika Anda menjalankan apache dalam mode mpm-worker, Anda mungkin menghadapi masalah stabilitas karena setiap kesalahan dalam skrip php apa pun akan menyebabkan ketidakstabilan ke seluruh rangkaian utas proses apache itu. Juga dalam mode ini semua skrip dieksekusi atas nama pengguna apache. Ini buruk untuk keamanan. konfigurasi mpm-worker membutuhkan PHP yang dikompilasi dalam mode thread-safe. Setidaknya repositori default CentOS dan RedHat tidak memiliki versi PHP thread-safe sehingga pada OS ini Anda perlu mengkompilasi setidaknya PHP sendiri (ada cara untuk mengaktifkan mpm pekerja di Apache). Penggunaan binari PHP aman-thread dianggap eksperimental dan tidak stabil. Plus, banyak ekstensi PHP tidak mendukung mode aman-thread atau tidak diuji dengan baik dalam mode aman-thread.
---------------- PHP sebagai CGI ----------------
Ini tampaknya merupakan konfigurasi default paling lambat yang tampaknya merupakan "penipu" itu sendiri;)
---------------- PHP sebagai CGI via mod_suphp ----------------
Pro : suphp memungkinkan Anda untuk mengeksekusi skrip php atas nama pemilik file skrip. Dengan cara ini Anda dapat memisahkan situs yang berbeda dengan aman di mesin yang sama. Juga, suphp memungkinkan untuk menggunakan file php.ini yang berbeda per host virtual.
Cons : PHP dalam mode CGI berarti lebih sedikit kinerja. Dalam mode ini Anda tidak dapat menggunakan akselerator php seperti APC karena setiap kali proses baru muncul untuk menangani skrip rendering cache dari proses sebelumnya yang tidak berguna. BTW, apakah Anda tahu cara menerapkan beberapa akselerator dalam konfigurasi ini? Saya mendengar sesuatu tentang menggunakan shm untuk cache bytecode php. Selain itu, Anda tidak dapat mengonfigurasi PHP melalui file .htaccess dalam mode ini. Anda perlu menginstal P ECL htscanner untuk ini jika Anda perlu mengatur berbagai opsi per-skrip melalui .htaccess (arahan php_value / php_flag)
---------------- PHP sebagai CGI via suexec ----------------
Konfigurasi ini terlihat sama dengan suphp, tapi saya dengar, itu lebih lambat dan kurang aman. Pro dan kontra yang hampir sama berlaku.
---------------- PHP sebagai FastCGI ----------------
Pro : Standar FastCGI memungkinkan proses php tunggal untuk menangani beberapa skrip sebelum proses php dimatikan. Dengan cara ini Anda mendapatkan kinerja karena tidak perlu memunculkan proses php baru untuk setiap skrip. Anda juga dapat menggunakan akselerator PHP dalam konfigurasi ini (lihat bagian kontra untuk komentar). Juga, FCGI hampir seperti suphp juga memungkinkan proses php dijalankan atas nama beberapa pengguna. mod_fcgid tampaknya memiliki dukungan fcgi paling lengkap dan fleksibilitas untuk apache.
Cons : Penggunaan php accelerator dalam mode fastcgi akan menyebabkan konsumsi memori tinggi karena setiap proses PHP akan memiliki cache bytecode sendiri (kecuali ada beberapa akselerator yang dapat menggunakan memori bersama untuk cache bytecode. Apakah ada seperti itu?). FastCGI juga sedikit rumit untuk dikonfigurasi. Anda perlu membuat berbagai file konfigurasi dan membuat beberapa modifikasi konfigurasi.
Tampaknya, fastcgi adalah konfigurasi PHP yang paling stabil, aman, cepat dan fleksibel, namun agak sulit untuk dikonfigurasi. Tapi, mungkin, saya melewatkan sesuatu?
Komentar dipersilahkan!