php von der Kommandozeile (Cronjob) mit pdo-mysql

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

BuffaloBill

Benutzer
Registriert
20. Jan. 2010
Beiträge
9
Reaktionspunkte
0
Punkte
0
Also mal wieder dieses leidige Thema

Ich möchte einen cronjob, der ein php script ausführt. Jeder der Owncloud oder Nextcloud verwendet hat wohl sowas schon mal gemacht. Bei mir ist es zwar eine andere Software(FreshRSS), aber das Prinzip ist dasselbe. Wie bekommt man die jene php instanz an den Start, welche in der Webstation werkelt? Das ist mein aktuelle kommando:

Rich (BBCode):
/usr/local/etc/php56 -c /volume1/@appstore/WebStation/misc/php56.ini
/volume1/web/rss/app/actualize_script.php

das hab ich mir von verschiedenen Seiten so zusammengegoogled :D

Trozdem krieg ich aus output immernoch
FreshRSS install failed requirements:
• pdo-mysql

Wenn ich FreshRSS allerdings über die Weboberfläche Starte, dann funktioniert pdo-mysql tadellos. Aber über die Kommandozeile bekomme ich es einfach nicht hin, php MIT seinen Modulen an den Start zu bekommen.Ideen?
 
Ich weiß jetzt nicht, was deine erste Zeile da oben bewirken soll - ich glaube nicht, dass das was bringt, zumal der erste Wert lediglich ein Ordner ist.
Nach der Anleitung von HIER nutze ich für einen Aufruf von der Shell ein zusätzliches Skript, welches ich hier php70cli.sh nenne. In meinem Fall nutze ich php7.0.

Rich (BBCode):
#!/bin/bash
PHP_INI_SCAN_DIR=.:/usr/local/etc/php70/:/var/packages/WebStation/etc/php_profile/7e0e7f34-2fef-4a6d-8380-0c55e1f8b35f/conf.d/
export PHP_INI_SCAN_DIR
php70 $*

Dein konfiguriertes Profil aus der Webstation musst du halt selbst noch herausfinden (/var/packages/WebStation/etc/php_profile) und oben angeben; genauso die PHP-Version (also alles farbige). Außerdem das Skript ausführbar machen.

Deinen ursprünglichen Befehl kannst du nun so aufrufen (je nachdem wo das Skript jetzt liegt):
Rich (BBCode):
"/volume1/homes/admin/php70cli.sh" "/volume1/web/rss/app/actualize_script.php"
 
Ja so geht es.
Randnotiz (für alle die nicht aus der Bash ecke kommen, so wie ich selber):

Script in ASCI abspeichern (Western, ISO-8859-1), UTF8 schein nicht zu klappen, auch nicht mit BOM. Ob das an der Bash selbst liegt oder and der Implementierung durch Synology kann ich nicht sagen.
 
UTF8 sollte problemlos funktionieren. Die Zeilenenden sind entscheidender. Ich nutze für sowas immer gleich den DSM-Texteditor.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat