2017-01-20 1 views
0

Ist es möglich, global $_lib, $_SETUP; in Crontab einzuschließen?Globale Bibliothek in Crontab PHP

Ich habe einen Cronjob in PHP-Datei in Internet-Verzeichnis schreiben (/internet/mycrontab.php), aber scheint wie die crontab Fehler bei der Verwendung von $ _Lib wie in $_lib['db']->db_fetch_object($query).

Die $ _Lib funktioniert gut, wenn ich die URL direkt im Browser eingeben www.myweb.dom/internet/mycrontab.php, und die Crontab funktioniert auch gut, wenn ich die $ _Lib wie in $_lib['db']->db_fetch_object($query) mit hardcode sysntax (primary).

Wenn es möglich ist, global $_lib, $_SETUP; einzuschließen, wie mache ich das richtig?

Vielen Dank für die Hilfe.

Antwort

1

Das Problem ist, dass die Crontab-Umgebung und Ihre Web-App-Umgebung unterschiedliche Dinge sind.

Der Cronjob wird von PHP-CLI ausgeführt, während die App von Apache (oder NGINX, was auch immer) PHP-Modul ausgeführt wird.

Sie sollten wahrscheinlich auswerten, Ihre Bibliothek in die Crontab-Datei aufzunehmen.

Ohne einen richtigen Blick auf den Code, der das Beste ist, kann ich vorschlagen.

+0

Normalerweise schließen wir es nur ein, indem wir 'global $ _lib, $ _SETUP' deklarieren, ohne den Pfad angeben zu müssen. Soll ich auch den Pfad einbeziehen? Vielen Dank für die Antwort. –

+0

Versuchen. Wahrscheinlich unterscheidet sich die php-cli conf-Datei von der, die Sie für Ihre App haben. – Napolux

+0

Selbst wenn es funktioniert, indem es den freien Pfad einbezieht, bin ich immer noch neugierig, es einfach zu machen, indem ich 'global $ _lib, $ _SETUP' verwende Crontab ist überall in unserem Server (in vielen Web/app/vhost). Das ist, was ich denke, wenn es durch etwas in Crontab Konfigurationsdatei konfiguriert werden kann. –