Der Martin: Was passiert beim Aufruf eines PHP-Programms?

Beitrag lesen

Hallo,

als ich vor Jahren mit PHP begann, schrieb mir jemand aus dem SELFHTML Forum, dass bei Aufruf eines PHP-Programms eine Kopie erstellt und dann abgearbeitet wird.

eine Kopie wovon? Und was für eine Kopie?
Ja, man kann es in gewisser Weise als Kopie bezeichnen, wenn die Scriptdatei in den Arbeitsspeicher übertragen und dort übersetzt, "interpretiert" und die Anweisungen ausgeführt werden.

Ich habe verstanden: Das PHP-Originalskript steht für den nächsten Aufruf zur Verfügung, es könnte ein Problem geben bei überlapptem DB-Zugriff.

Die eigentliche Scriptdatei wird ja nur gelesen, nicht verändert. Es hängt daher von der jeweils plattformspezifischen Implementierung von PHP ab, ob die Datei exklusiv geöffnet wird oder im Sharing-Mode. Shared-Read-Denied-Write wäre hier wohl die sinnvollste Option.
Was das Script zur Laufzeit selbst für Systemressourcen verwendet, und wie die gegen konkurrierende Zugriffe abgesichert werden, ist teils eine Frage der PHP-Implementierung, teils eine Frage des Scripts selbst.

Aber das kann nicht stimmen. Wenn ich ein PHP-Skript kopieren möchte, verweigern sich die laufenden Skripte.

Auf welchem System? Mit welchem Beispielcode? Versucht dein Kopierprogramm womöglich, auch die Quelldatei exklusiv zu öffnen?

Also _kann_ keine Instanz von kopiere.php laufen, sondern nur das Original. Und während des Zugriffs ist es geschützt.

Die Aussage ergibt so keinen Sinn. Von Instanzen redet man nur, wenn man mehrere gleichartige, voneinander unabhängige Prozesse oder Datensätze im Arbeitsspeicher meint. Der Code, der dabei ausgeführt wird, ist *immer* eine Kopie der ursprünglichen Datei.

Die neue Version des Kopierprogramms selbst bekomme ich nicht auf den Ersatzserver. Wie ist das Problem zu lösen?

Manuell?

So long,
 Martin

--
Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.