PHP Thread Safe dan Non-Thread Safe untuk Windows

90

Saya mengunduh PHP untuk Windows. Saya mendapat 2 opsi di situs web.

  1. PHP Thread Aman
  2. PHP Non-Thread Safe

Harap jawab pertanyaan berikut:

  1. Apa perbedaan diantara keduanya? Apa kelebihan dan kekurangan satu sama lain?
  2. Saya sedang mengembangkan situs web e-niaga yang akan memiliki lalu lintas padat, mana yang lebih direkomendasikan dan mengapa?
sumit
sumber
1
kemungkinan duplikat dari Apa itu thread safe atau non thread safe di PHP
Shef
1
Apa yang Anda pahami tentang "lalu lintas padat" dan bagaimana Anda bisa yakin bahwa Anda akan mendapatkannya?
Crack
@ Crack- Lalu lintas padat berarti bahwa banyak-banyak pengguna akan menggunakan situs web pada waktu tertentu. Kenapa aku tidak bisa memastikannya ?! Ada yang salah dengan itu?
sumit
Hanya "lalu lintas padat" yang dapat didefinisikan dengan berbagai cara, dan bagi sebagian orang lalu lintas padat bagi sebagian orang mungkin lalu lintas sedang atau bahkan lengang. Metrik yang berguna di sini adalah klik halaman / hari / jam / menit, segala jenis ukuran objektif.
Crack

Jawaban:

93

Dari dokumentasi PHP:

Keamanan Thread berarti bahwa biner dapat bekerja dalam konteks server web multithread, seperti Apache 2 di Windows. Keamanan Utas bekerja dengan membuat salinan penyimpanan lokal di setiap utas, sehingga data tidak akan bertabrakan dengan utas lain.

Jadi apa yang saya pilih? Jika Anda memilih untuk menjalankan PHP sebagai biner CGI, Anda tidak memerlukan keamanan utas, karena biner dipanggil pada setiap permintaan. Untuk server web multithread, seperti IIS5 dan IIS6, Anda harus menggunakan PHP versi thread.

Jadi itu sangat tergantung pada cara Anda ingin menggunakan PHP:

  • Apache + LoadModule: Aman Benang
  • Apache + FastCGI: Aman Tanpa Benang
  • IIS: Aman Benang
  • IIS + FastCGI: Aman Tanpa Benang

Manual PHP memiliki instruksi instalasi yang bagus .

AFAIR menjalankan PHP dengan FastCGI adalah cara yang lebih disukai, bekerja lebih cepat dan memungkinkan konfigurasi keamanan yang lebih halus.

Retak
sumber
11
Halaman ini memberitahukan bahwa: "Jika Anda menggunakan PHP dengan IIS, Anda harus menggunakan versi PHP Non-Thread Safe (NTS)." dibandingkan dengan jawaban yang mengatakan: "IIS: Thread Safe"
umutm
9
Ya, dan itu menyebutkan FastCGI. Thread Safe adalah untuk saat menggunakan ISAPI (php5isapi.dll)
Retak
3
Mengapa repot-repot dengan opsi non-thread-safe? Ini seperti: jika saya dapat memilih antara membeli mobil yang aman dan mobil yang tidak aman, mengapa saya harus memilih mobil yang tidak aman? Apakah kinerjanya lebih baik atau sesuatu?
Simon Timur
4
@SimonEast Versi NTS memiliki beberapa thread pengelolaan overhead, yang sudah dilakukan oleh server web, sehingga kinerja akan menurun
ReZa
3
@Prima Ini seperti melakukan pekerjaan dua kali, sekali di PHP dan sekali di server web
ReZa
2

Cepat dan sederhana: Jika Anda menggunakan Apache, edit file Apache24 \ conf \ httpd.conf Anda dan cari "loadmodule". Jika Anda melihat loadmodule Anda mereferensikan .dll sesuatu seperti:

LoadModule php7_module "e: /x64Stack/PHP/php7.1.9/php7apache2_4.dll"
Aplikasi AddHandler / x-httpd-php .php
PHPIniDir "e: /x64Stack/PHP/php7.1.9"

Maka Anda ingin Thread Safety diaktifkan atau versi TS - Thread Safe .

Lain jika Anda menggunakan IIS atau Apache dengan CGI kemudian NTS flavor.

Saya menggunakan banyak tumpukan dan di dalam beberapa server dan versi PHP itu, jadi jangan biarkan jalur / php atau versi server membuang Anda.

Jim
sumber
0

Selain Crack, sejak 5.4 Anda dapat menggunakan server web bawaan (ini berfungsi dengan baik!).

Peringatan Server web ini dirancang untuk membantu pengembangan aplikasi. Ini mungkin juga berguna untuk tujuan pengujian atau untuk demonstrasi aplikasi yang dijalankan di lingkungan yang terkontrol. Ini tidak dimaksudkan sebagai server web berfitur lengkap. Ini tidak boleh digunakan di jaringan publik.

Saso.Filipovic
sumber
13
Anda perlu menambahkan semacam referensi tentang apa yang Anda bicarakan. Apa server web bawaan? Apa kaitannya dengan ThreadSafe vs NotThreadSafe?
Despertar
2
Saya pikir dengan server web built-in, yang dia maksud adalah webserver built-in PHP ( php -S ip:port) - tidak tahu tentang hubungan dengan keamanan thread.
David Refoua