Ich erfahre Problem mit PHP-Anfrage auf Selbst. Im Beispiel verwende ich file_get_contents()
aber gleiches passiert für exec('wkhtmltopdf [*SELF*]')
oder curl()
PHP-Anfrage auf Selbst
- Namen example.com meines Servers
- apache2 installiert
- FastCGI (mehrere PHP-Versionen 5.3, 5.4, 5.5, 5.6, 7.0) kann
- jetzt ich habe 2 Dummy-Skripte
1. Skript
//get-html.php
file_get_contents('http://example.org/index.html')
2. Skript
//get-php.php
file_get_contents('http://example.org/index.php')
Testing
1) Befehlszeile: php get-html.php
// Success
2) Browser: example.org/get-html.php
// Success
1) Befehlszeile: php get-php.php
// Erfolg
2) Browser: example.org/get-php.php
// Timeout
Was ich versucht nächsten
- Sub-Domain erstellen wie
subdomain.example.org/index.php
fürget-php.php
differet PHP-Version zu haben und fürindex.php
- ändern/etc/hosts
- Anfrage auf anderen Websites (wie google.com) // Erfolg
- session_write_close() vor file_get_contents() und session_start() richtig funktioniert nach nicht auch
Also mein Verdächtiger mod_fastcgi ist. Es sieht so aus, als ob der Apache nicht in der Lage ist, 2 Instanzen davon auszuführen, um PHP-Anfragen zu behandeln, die von ihm selbst kommen. Wie laufendes Skript von der Befehlszeile funktioniert wie erwartet.
Hat jemand einen Rat?
Sind die Dummy-Skripts vollständig? Sie verwenden keine Sitzungen (sie könnten auch blockieren) – Mark
Guter Punkt Mark. Vergaß zu erwähnen. Ich habe auch versucht session_write_close(); file_get_contents ('http://example.org/index.php'); session_start(); Aber das war auch nicht erfolgreich. Aktualisierung des Abschnitts "Was ich als nächstes versucht habe". – Nedvajz
Bitte starten Sie die Sitzung nicht (oder verwenden Sie sie überhaupt erst einmal) und versuchen Sie es erneut, damit unsere Frage beantwortet wird, wenn das Problem durch eine Blockierungssitzung oder etwas anderes verursacht wird. – Mark