Wie andere geschrieben haben, kann es andere Einstellungen, die Sie jedoch (Berechtigungen und Dateispeicherorte) verwenden könnte Ich war nie jemand, der jemandem sagt, dass er seinen gesamten Prozess neu gestalten muss, um ein einziges Bedürfnis zu erfüllen. Das fühlt sich zu sehr an wie der Schwanz, der den Hund wedelt. Deshalb, wenn Sie ein Skript haben wollen, die nur durch Ihre Cron-Job ausgeführt werden kann und nicht von einem anderen Prozess fälschlicherweise würde ich Ihnen diese Lösung anbieten
Die PHP_SAPI Lösung festgestellt wurde inkonsistentes Verhalten zu bieten und ist Systemkonfiguration spezifisch (zB echo wird beim Aufruf des Skripts von der Kommandozeile ausgegeben und beim Aufruf von einem cron wieder). Dies kann dazu führen, dass andere Fehler aufgespürt werden. Die beste Lösung, die ich gesehen und verwendet habe, besteht darin, ein Befehlszeilenargument an Ihr Skript zu übergeben und die Existenz dieses Arguments zu bewerten.
Ihr Cron-Job würde in etwa so aussehen:
* * * * * * php /path/to/script --cron
Dann in Ihrem Skript würden Sie ein, wenn Prüfung durchführen, die nicht erfüllt, wenn das Skript beendet.
if($argv[0] != 'cron')
{
//NO CRON ARGUMENT SUPPLIED, SOMETHING ELSE MUST BE CALLING THIS
exit;
}
Nehmen Sie nicht, dass einige Systeme das erste Argument als Skript-Namen verwenden können, so auf der Grundlage Ihrer individuellen Systemkonfiguration Sie können $argv[1]
hoffe, das hilft überprüfen müssen, lassen Sie mich wissen, wenn Sie irgendwelche Fragen, ich bin glücklich zu reagieren oder zu bearbeiten, wenn nötig.
Es ist nicht in Ihrem Webstamm, oder? –
Nö von einem Ordner mit anderen Skripten für die gleiche Telefon-App. –
Haben Sie andere Benutzer auf diesem System und haben sie Zugriff auf diese Skripts? –