Comment utiliser les Pthreads extension PHP dans Ubuntu
J'ai des problèmes avec la Pthreads extension PHP. J'ai compilé PHP avec ZTS activé (--enable-maintainer-zts
) et installé le pthreads via pecl et j'ai aussi essayé de compiler à la main de l'extension.
Il semble que je ne sais pas vraiment comment l'utiliser. Je suppose que je serais capable d'utiliser la classe Thread en PHP comme les autres intégrée dans la classe, mais avec pas de chance que le PHP n'est pas le reconnaître. Les fonctions POSIX semblent fonctionner.
J'utilise Ubuntu Server 12.10 64 bits avec mod_php 5.4.6.
J'ai étudié le journal des erreurs d'apache, et il semble que les pthreads.il ne peut donc pas être chargé car il y a un symbole inconnu: sapi_globals_id ... j'ai aussi essayé de compiler php avec les pthreads statique de l'extension et il ne fait aucune différence.
La documentation indique clairement que c'est pour la 5.3. Peut-on supposer que par "5.6.4" vous avez voulu dire "5.4.6"? Si oui, essayez de descendre à 5.3 5.4 et voir si cela fonctionne alors. Si c'est le cas, vous aurez envie de déposer un problème avec le responsable d'environ 5,4 soutien.
Oui, c'était une faute de frappe, je suis en cours d'exécution PHP 5.4.6. Au moment pthreads est en place et en cours d'exécution.
La documentation indique clairement que c'est pour la 5.3. Peut-on supposer que par "5.6.4" vous avez voulu dire "5.4.6"? Si oui, essayez de descendre à 5.3 5.4 et voir si cela fonctionne alors. Si c'est le cas, vous aurez envie de déposer un problème avec le responsable d'environ 5,4 soutien.
Oui, c'était une faute de frappe, je suis en cours d'exécution PHP 5.4.6. Au moment pthreads est en place et en cours d'exécution.
OriginalL'auteur Henri Ruutinen | 2012-12-29
Vous devez vous connecter pour publier un commentaire.
Si vous ne pouvez accéder aux extensions de classes, alors il n'est pas chargé.
Je pense que vous avez ouvert un rapport de bug, à laquelle j'ai répondu que votre ligne de configuration est mal formé.
La ligne de configuration que vous souhaitez utiliser est:
La commande ci-dessus va construire pthreads comme un DSO.
La commande ci-dessus va construire pthreads statiquement dans PHP.
Les deux sont également pris en charge par la 5.3, 5.4 et même 5.5.
En outre, si vous écrasez votre installation du système, alors vous devriez utiliser un spécifique
--prefix
, par exemple, si vous exécutable php est à/usr/bin
( que vous pouvez vérifier avec "qui php" ), puis--prefix=/usr
permettra de remplacer votre système de l'installation.Nettoyer vos anciennes installations ( faire un make uninstall si les sources sont toujours disponibles ). Recommencer, vous assurer que vous êtes soit, l'écrasement de l'installation du système ou de l'isoler complètement.
Veuillez mettre à jour le rapport de bug si vous avez travaillé.
Ne ZTS besoin d'être activé pour toutes les versions installées de PHP (c'est à dire CGI, CLI, et SAPI/Apache)? Ou si je suis à la planification de l'utilisation de pthreads uniquement pour les CLI, puis-je laisser ZTS désactivée pour les autres?
N'importe où pthreads est chargé nécessite ZTS, vous pouvez construire un cas isolé de PHP avec le support pour les pthreads si vous le souhaitez ...
OriginalL'auteur Joe Watkins