2016-08-17 1 views
1

Ich habe ein PHP-Skript, das nach dem Zurückgeben der Antwort einige weitere Informationen im Hintergrund verarbeiten muss.Ist es möglich, dass ein einzelnes PHP-Skript den Ausgabepuffer von FastCGI ignoriert?

Ich habe es auch durch folgende this answer arbeiten als Ausschalten FastCGI Output Buffer:

<IfModule mod_fcgid.c> 
FcgidOutputBufferSize 0 
</IfModule> 

Es wird ohne Ausschalten FastCGI Ausgangspuffer nicht.

Allerdings habe ich nur ein Skript, das dies benötigt. Es wäre schön, wenn ich FastCGI Output Buffer für alle anderen Skripte behalten könnte.

Ist es möglich, nur ein PHP-Skript FastCGI Output Buffer zu ignorieren?

+1

Es klingt wie Sie eine Aufgabe im Hintergrund ausgeführt werden müssen, nicht mit Ausgabepufferung futz um. – Sammitch

+0

Aber der Benutzer muss es mit Daten initiieren. – Shawn

+1

Ja, was auch immer diese Funktion ist, nimmt ihre Parameter, führt ihre unmittelbaren Aufgaben aus [zB: Inhaltserzeugung], startet die Hintergrundaufgabe und kehrt zurück. Die Seite wird wie erwartet zugestellt, ohne die Ausgabepufferung selektiv deaktivieren zu müssen, und alles, was Sie lange gestartet haben, wird immer noch im Hintergrund ausgeführt. – Sammitch

Antwort

1

Möglicherweise können Sie verschachtelte Apache-Direktiven verwenden, um den Anforderungs-URI zu überprüfen. So:

<IfModule mod_fcgid.c> 
    <If "%{REQUEST_URI} == '/path/to/script.php'"> 
     FcgidOutputBufferSize 0 
    </If> 
</IfModule> 
+0

Was ist, wenn ich dies nur für eine bestimmte Funktion im Skript benötige? – Shawn

+0

@Shawn Tut mir leid, ich weiß nicht, wie ich das machen soll. Hoffentlich kann jemand anderes, der es weiß, antworten. –

+0

cPanel wirft mich mit Ihrer Lösung Syntaxfehler. Irgendeine Idee? – Shawn

Verwandte Themen