PHP Thread Safe and Non-Thread Safe for Windows

前端 未结 3 492
一个人的身影
一个人的身影 2021-01-29 22:50

I am downloading PHP for Windows. I got 2 options on the website.

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

Please answer the following questions

相关标签:
3条回答
  • 2021-01-29 23:13

    Quick and simple: If you are using Apache edit your Apache24\conf\httpd.conf file and search for "loadmodule". If you see your loadmodule is referencing a .dll something like:

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

    Then you want Thread Safety enabled or TS - Thread Safe version.

    Else if you are using IIS or Apache with CGI then NTS flavor.

    I use multiple stacks and within those multiple servers and versions of PHP so don't let the paths / php or server versions throw you.

    0 讨论(0)
  • 2021-01-29 23:14

    From PHP documentation:

    Thread Safety means that binary can work in a multithreaded webserver context, such as Apache 2 on Windows. Thread Safety works by creating a local storage copy in each thread, so that the data won't collide with another thread.

    So what do I choose? If you choose to run PHP as a CGI binary, then you won't need thread safety, because the binary is invoked at each request. For multithreaded webservers, such as IIS5 and IIS6, you should use the threaded version of PHP.

    So it really depends on the way that you want to use PHP:

    • Apache + LoadModule: Thread Safe
    • Apache + FastCGI: Non-Thread Safe
    • IIS: Thread Safe
    • IIS + FastCGI: Non-Thread Safe

    PHP manual has nice installation instructions.

    AFAIR running PHP with FastCGI is the preferable way, it performs faster and allows for more fine-grained security configuration.

    0 讨论(0)
  • 2021-01-29 23:36

    In addition to Crack, since 5.4 you can use built-in web server (it works nice!).

    Warning This web server was designed to aid application development. It may also be useful for testing purposes or for application demonstrations that are run in controlled environments. It is not intended to be a full-featured web server. It should not be used on a public network.

    0 讨论(0)
提交回复
热议问题