Heim > Artikel > Backend-Entwicklung > Behebung des Problems, dass PHP unter Apache keine anderen Sockets öffnen kann (Berechtigung verweigert).
Heute habe ich vor, den Redis-Betrieb zu üben. Wenn ich ihn in der Befehlszeile ausführe, stelle ich fest, dass die Verbindung reibungslos funktioniert.
Später habe ich es mit Apache ausgeführt und festgestellt, dass keine Verbindung zum Redis-Client hergestellt werden konnte (der Redis-Server ist ausgefallen).
Beim Erfassen von Paketen auf dem Reids-Server habe ich festgestellt, dass keine Verbindung besteht Bei der Verwendung von Apache wurde die Anfrage überhaupt empfangen.
Es scheint, dass das Problem durch Apache verursacht wird.
Es funktioniert unter der Befehlszeile, aber nicht unter Apache. Das erste, was mir einfiel, war, ob die Apache-Konfigurationsdatei einen bestimmten Port einschränkte, aber ich konnte ihn nicht finden.
Endlich habe ich die Antwort auf Stackoverflow gefunden – Selinux begrenzt die Ports, die Apache öffnen kann (genauer gesagt, die Ports, die der http-Dienst öffnen kann).
Lösung
/usr/sbin/setsebool httpd_can_network_connect=1
oder
Das Obige stellt die Lösung für das Problem vor, dass PHP unter Apache keine anderen Sockets öffnen kann (Berechtigung verweigert), einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.