Que dois-je faire si Workerman ne peut pas être utilisé ?
Phénomène d'échec de démarrage du travailleur 1
L'erreur signalée après le démarrage est similaire à la suivante : php start.php start
Avertissement PHP : stream_socket_server() : impossible de se connecter à tcp://xx.xx.xx.xx:xxxx (Adresse déjà utilisée) dans ...workerman/Worker.php en ligne xxxx
Mots clés : Adresse déjà en cours d'utilisation
Raison de l'échec :
Le port est occupé et ne peut pas être démarré.
Vous pouvez utiliser la commande netstat -anp | grep port number pour savoir quel programme occupe le port. Arrêtez ensuite le programme correspondant pour libérer la solution portuaire.
Si le programme correspondant au port ne peut pas être arrêté, vous pouvez résoudre le problème en changeant le port du travailleur.
Si le port occupé par Workerman ne peut pas être arrêté via la commande stop (généralement causé par la perte du fichier pid ou la suppression du processus principal par le développeur), vous pouvez tuer le processus Workerman en exécutant ce qui suit deux commandes. killall php
ps aux|grep WorkerMan|awk '{print $2}'|xargs kill -9
S'il n'y a effectivement aucun programme qui écoute ce port, alors le développeur l'a peut-être défini dans workman Il y a deux moniteurs ou plus et les ports de moniteur sont les mêmes. Les développeurs sont invités à vérifier si le script de démarrage surveille le même port. Phénomène 2
L'erreur signalée après le démarrage est similaire à la suivante : Avertissement PHP : stream_socket_server() : impossible de se connecter à tcp://xx.xx.xx.xx:xxx (Impossible d'attribuer l'adresse demandée) dans ...workerman/ Worker.php en ligne xxxx
ou PHP Attention : stream_socket_server() : impossible de se connecter à tcp://xx.xx.xx.xx:xxxx (L'adresse demandée est invalide dans son contexte) dans ...workerman/Worker.php en ligne xxxx
Mots clés : Impossible d'attribuer l'adresse demandée ou l'adresse demandée n'est pas valide
Raison de l'échec :
Le paramètre IP de surveillance du script de démarrage est mal écrit. Ce n'est pas l'adresse IP locale. Veuillez remplir l'adresse IP locale ou remplir 0.0.0.0 (indiquant que toutes les adresses IP de la machine locale sont surveillées) pour résoudre le problème.
Astuce : Sous les systèmes Linux, vous pouvez utiliser la commande ifconfig pour afficher toutes les adresses IP des cartes réseau de la machine.
Si vous êtes un utilisateur de serveur cloud (Alibaba Cloud/Tencent Cloud, etc.), veuillez noter que l'adresse IP de votre réseau public peut en fait être une IP proxy (comme le réseau privé d'Alibaba Cloud) et que le réseau public L'IP n'appartient pas au serveur actuel, elle ne peut donc pas être surveillée via l'IP du réseau public. Bien que vous ne puissiez pas utiliser l'adresse IP du réseau public pour surveiller, vous pouvez toujours vous lier via 0.0.0.0. Phénomène 3 Waring stream_socket_server a été désactivé pour des raisons de sécurité dans ...
Raison de l'échec :
La fonction stream_socket_server est désactivée par php.ini
Solution
1. Exécutez php --ini et recherchez le fichier php.ini
2. Ouvrez php.ini et recherchez l'élément Disable_functions et supprimez l'élément stream_socket_server désactivé. Attention 4PHP. stream_socket_server() : impossible de se connecter à tcp://0.0.0.0:xxx (Autorisation refusée)
Raison de l'échec
Si le port d'écoute sous Linux est inférieur supérieur à 1024, l'autorisation root est requise.
Solution
Utilisez un port supérieur à 1024 ou utilisez l'utilisateur root pour démarrer le service.
Recommandé : Tutoriel ouvrier
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!