36 votes

Quelles sont les différences techniques entre les packages d'installation PHP Windows Thread Safe et Non Thread safe?

Je suis actuellement sur le point d'installer PHP sur Apache/Windows environnement de développement, mais il semble que je suis sur le point de tomber au premier obstacle: Choisir le bon paquet à installer.

PHP est disponible en pas moins de quatre saveurs:

  • VC9 x86 Non Thread-Safe
  • VC9 x86 Thread-Safe
  • VC6 x86 Non Thread-Safe
  • VC6 x86 Thread-Safe

Quelle est la différence entre ces versions dans une pratique de sens?

Si ce n'était pas assez compliqué, la version 5.3 de PHP est disponible uniquement en VC9 (5,2 à venir avec la VC6 paquets). Et pourtant, selon le PHP du site, vous devriez ne pas utiliser VC9 avec Apache... Alors pourquoi Apache obtenir la version la plus ancienne?

C'est très déroutant et j'aimerais avoir quelques aider à comprendre les choix.

55voto

Monk Points 9050

Après beaucoup de recherches, j'ai réussi à trouver mes propres réponses à cette question.

Dans sa forme la plus simple, la réponse est: Quelle est la version de PHP, vous devez installer descend quel serveur vous êtes en cours d'exécution.

Voici une explication plus détaillée des termes utilisés dans le choix d'une version de PHP basé sur ce que j'ai appris:


VC6 vs VC9

Tout d'abord, les différentes versions de Apache pour Windows sont compilés avec différents compilateurs. Par exemple, les versions sur Apache.org sont conçus pour être compilé à l'aide de Microsoft Visual C++ 6, également connu sous VC6. Ce compilateur est très populaire, mais aussi très vieux. (Il remonte à 1998.)

Il existe différentes versions de Apache effectués pour les différents compilateurs. Par exemple, les versions disponibles pour téléchargement à partir de ApacheLounge.com sont conçus pour être compilé avec le populaire et plus récemment du compilateur Microsoft Visual C++ 9 à partir de 2008. Aussi connu comme VC9.

(Note: Ces deux compilateurs sont les deux plus populaires. Ainsi, alors qu'il est possible d'avoir une VC7, VC8, etc. compilé la version d'Apache, il est peu probable que vous allez venir à travers eux.)

L'utilisation de cette plus récente compilateur (VC9) est important car les dernières versions de PHP ne sont distribués dans VC9 forme (bien que les anciennes versions sont toujours disponibles pour VC6).

Sur le dessus de que, selon ApacheLounge il ya de nombreuses améliorations lors de l'utilisation d'une version d'Apache est compilé avec VC9, "dans des domaines tels que la Performance, la gestion de mémoire et de la Stabilité".

Si cela ne suffisait pas, les développeurs de PHP fait la déclaration suivante sur leur site:

Les utilisateurs de Windows: veuillez garder à l'esprit que nous ne de ne plus fournir les builds créé avec Visual Studio C++ 6 (VC6). Il est impossible de maintenir une haute qualité et sans danger de PHP pour Windows l'utilisation de ce laissés à l'abandon compilateur.

Nous vous recommandons de la VC9 Apache crée comme fournis par ApacheLounge.

Tous les utilisateurs de PHP à noter que le PHP 5.2 la série n'est PAS supportée. Tous les utilisateurs sont vivement encouragés à mise à niveau de PHP 5.3.6.

En tout, il s'agit d'un argument convaincant à l'usage VC9 versions d'Apache et de PHP, si vous me demandez.

Ainsi, si vous utilisez une version d'Apache à partir de l' officiel d'Apache site, il sera compilé avec VC6, et en tant que tel, vous devez utiliser l'ancienne version de PHP pour que le compilateur. Si vous utilisez une version d'Apache est compilé avec VC9, comme celui disponible sur ApacheLounge.com, vous pouvez utiliser la dernière version de PHP (pour VC9).

Pour moi, l'exécution d'un environnement local de développement, il serait préférable de disposer de la dernière version de PHP, donc un VC9 version d'Apache est nécessaire, afin que je puisse utiliser la VC9 version de PHP.

Thread-Safe vs Non Thread-Safe

Encore une fois, cela revient à votre serveur. Par défaut, Apache est installé sur Windows en tant que Module, mais il peut être modifié à exécuter en tant que FastCGI. Il y a beaucoup de différences entre les deux, mais essentiellement FastCGI est plus moderne, plus rapide, plus robuste, et plus gourmandes en ressources. Pour quelqu'un courir un environnement local de développement, FastCGI peut-être exagéré, mais apparemment, beaucoup de sociétés d'hébergement, exécuter en tant qu'FastCGI pour les raisons que j'ai indiqué, il y a donc de bons arguments pour le faire dans un environnement de développement.

Si vous utilisez Apache ou IIS) que FastCGI (ou CGI) alors vous voulez que le Non Thread-Safe version de PHP. Si vous utilisez Apache comme valeur par défaut (en Module), alors vous aurez besoin de la plus traditionnelle Thread-Safe version.

Veuillez noter: tout Cela s'applique uniquement pour les utilisateurs de Windows.


Je ne vais pas vous embêter avec FastCGI (à moins que quelqu'un me convainc contraire), donc pour moi, je veux la VC9 Thread-Safe version de PHP.

Et c'est tout.

Pour en savoir plus:

1voto

Blowski Points 7500

Personnellement, j'utilise un virtualisé serveur LAMP. Chaque service d'hébergement que j'utilise est sur certains saveur de Linux, et il y a trop de différences entre WAMP et LAMP. Alors je viens d'utiliser la valeur par défaut tasksel serveur LAMP pour cette version de Linux.

Mon installation est maintenant de avec VMWare (Fusion sur Mac, Player sur Windows). J'ai 3 VMs - un pour PHP5.3 avec Ubuntu 10.04 LTS, et un autre pour PHP 5.1 sur Ubuntu 8.04 LTS. (L'un des hôtes que j'utilise est sur RedHat, qui prend actuellement en charge que PHP 5.1). J'ai une troisième machine virtuelle pour au système rubyonrails dev.

En d'autres termes, j'essaie d'obtenir mon environnement de développement en tant que proche de mon environnement de production possible. Alors quelle version d'Apache et de PHP sur votre machine, et l'utiliser comme votre guide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X