Ich habe eine Anwendung erstellt, die ein Caching-Skript in einer Windows/Wamp-Umgebung hat. Die Caching-Funktion dieses Skripts darf nur einmal gleichzeitig ausgeführt werden.PHP fopen 'x +' funktioniert nicht auf ubuntu
Um dies zu erreichen, habe ich eine 'Sperrdatei' verwendet, um zu prüfen, ob sie existiert.
Unter Windows funktioniert dieses Skript gut. Aber jetzt ist es in eine Ubuntu-Umgebung verschoben, funktioniert nicht.
<?php
date_default_timezone_set('Europe/Amsterdam');
ini_set('max_execution_time', 300);
ignore_user_abort(true);
$path = 'locked.txt';
if ($lock = fopen($path,'x+')) {
fwrite($lock,time());
fclose($lock);
sleep(10);
unlink($path);
}
?>
Fehler: fopen(locked.txt): failed to open stream: Permission denied
'@ fopen' unterdrückt mögliche Fehler, die sonst auf das Problem hinweisen würden. – apokryfos
@apokryfos entfernte die Unterdrückung '@'. Aber es gibt keine Fehler. Ich habe meinen Beitrag auch mit einem einfacheren Code bearbeitet. – kgongonowdoe
Kopieren Sie Ihren Code. Funktioniert gut auf meinem 14.04 Ubuntu. Stellen Sie sicher, dass Sie Ausführungsberechtigungen für das Verzeichnis haben, da Sie nicht löschen können, wenn Sie dies nicht tun. – apokryfos