Bezpieczny wątek PHP i bezpieczny dla wątków dla Windows


89

Pobieram PHP dla systemu Windows. Na stronie mam 2 opcje.

  1. Bezpieczny wątek PHP
  2. PHP Non-Thread Safe

Proszę odpowiedzieć na następujące pytania:

  1. Jaka jest różnica między nimi? Jakie są zalety i wady w stosunku do siebie?
  2. Tworzę stronę e-commerce, która będzie miała duży ruch, która jest bardziej polecana i dlaczego?


1
Co rozumiesz przez „duży ruch” i skąd możesz mieć pewność, że go dostaniesz?
Crack

@ Crack- Duży ruch oznacza, że ​​wielu, wielu użytkowników będzie korzystać z serwisu w danym momencie. Dlaczego nie mogę być tego pewien ?! Coś z tym nie tak?
sumit

Tyle że „duży ruch” można zdefiniować na wiele sposobów, a dla niektórych to, co jest dużym ruchem, dla niektórych może być ruchem umiarkowanym lub nawet małym. Przydatnym wskaźnikiem są tutaj odwiedziny strony / dzień / godzina / minuta, dowolny rodzaj obiektywnej miary.
Crack

Odpowiedzi:


93

Z dokumentacji PHP:

Bezpieczeństwo wątków oznacza, że ​​plik binarny może działać w kontekście wielowątkowego serwera WWW, takiego jak Apache 2 w systemie Windows. Funkcja Thread Safety polega na tworzeniu kopii magazynu lokalnego w każdym wątku, aby dane nie kolidowały z innym wątkiem.

Więc co mam wybrać? Jeśli zdecydujesz się uruchomić PHP jako plik binarny CGI, nie będziesz potrzebować zabezpieczenia wątków, ponieważ plik binarny jest wywoływany przy każdym żądaniu. W przypadku wielowątkowych serwerów internetowych, takich jak IIS5 i IIS6, należy używać wątkowej wersji PHP.

Więc to naprawdę zależy od sposobu, w jaki chcesz używać PHP:

  • Apache + LoadModule: bezpieczny wątek
  • Apache + FastCGI: bezpieczny dla wątków
  • IIS: bezpieczny wątkowo
  • IIS + FastCGI: bezpieczeństwo bez wątków

Podręcznik PHP zawiera ładne instrukcje instalacji .

AFAIR z uruchomionym PHP z FastCGI jest preferowanym sposobem, działa szybciej i pozwala na bardziej szczegółową konfigurację zabezpieczeń.


11
Ta strona mówi, że: „Jeśli używasz PHP z IIS, powinieneś używać wersji PHP bez bezpiecznej obsługi wątków (NTS)”. w porównaniu z odpowiedzią mówiącą: „IIS: Thread Safe”
umutm

9
Tak, i wspomina o FastCGI. Bezpieczne wątek jest przy użyciu ISAPI (php5isapi.dll)
Pęknięcie

3
Po co w ogóle zawracać sobie głowę opcją niegwintowaną? To tak: gdybym mógł wybierać między kupnem samochodu bezpiecznego i niezabezpieczonego, dlaczego miałbym kiedykolwiek wybierać ten niezabezpieczony? Działa lepiej, czy coś?
Simon East,

4
@SimonEast Wersja NTS ma kilka ogólnych wątków zarządzających, które są już wykonywane przez serwer sieciowy, więc wydajność zostanie
obniżona

3
@SimonEast Exactly. To tak, jakby wykonywać pracę dwa razy, raz w PHP i raz na serwerze internetowym
ReZa

2

Szybko i prosto: jeśli używasz Apache, edytuj plik Apache24 \ conf \ httpd.conf i wyszukaj „loadmodule”. Jeśli zauważysz, że moduł loadmodule odwołuje się do pliku .dll, na przykład:

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

Następnie chcesz włączyć funkcję Thread Safety lub wersję TS - Thread Safe .

W przeciwnym razie, jeśli używasz IIS lub Apache z CGI, to smak NTS.

Używam wielu stosów i tych wielu serwerów i wersji PHP, więc nie pozwól, aby ścieżki / php lub wersje serwera Cię zrzuciły.


0

Oprócz Cracka, od wersji 5.4 możesz korzystać z wbudowanego serwera WWW (działa!).

Ostrzeżenie Ten serwer WWW został zaprojektowany, aby pomóc w tworzeniu aplikacji. Może być również przydatny do celów testowych lub demonstracji aplikacji uruchamianych w kontrolowanych środowiskach. Nie ma być w pełni funkcjonalnym serwerem WWW. Nie należy go używać w sieci publicznej.


13
Musisz dodać jakieś odniesienie do tego, o czym mówisz. Jaki wbudowany serwer WWW? Jak to się ma do ThreadSafe i NotThreadSafe?
Despertar

2
Myślę, że przez wbudowany serwer WWWphp -S ip:port ma na myśli wbudowany serwer WWW PHP ( ) - nie mam jednak pojęcia o związku z bezpieczeństwem wątków.
David Refoua
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.