Ausführen von php in ein bash-script: Fehler "could not open input file"
Habe ich ein einfaches Skript wie:
#!/bin/bash
php /var/www/mysite/script1.php
php /var/www/mysite/script2.php
Wenn ich es als root ausführen, wie diese:
bash update.sh
Bekomme ich folgenden Fehler:
Could not open input file: /var/www/mysite/script1.php
Could not open input file: /var/www/mysite/script2.php
Was ist falsch ? Ich habe versucht, mit den Berechtigungen 777 auf meine php Dateien und alle Ordner darauf zugreifen. Wenn ich direkt die php - /var/www/mysite/script1.php in meiner Befehlszeile funktioniert es einwandfrei.
- versuchen Sie, zu verwenden:
sudo bash update.sh
mal sehen, was passieren wird. - ist es das gleiche...
- Sind Sie auf der Ausführung der bash-Skript die gleiche Weise wie beim manuellen ausführen der
php
Befehl? Wenn Sie einen von Ihnen über einen web-service oder etwas, das die Pfade anders sein kann. - wäre es nicht ein carriage return end line problem? Können Sie das folgende tun:
dos2unix update.sh > newbatchfile
und versuchen Sie, die neue? (Vergleiche Dateigrößen, wenn die newbatchfile kleiner ist: bingo) - Danke @Jean-FrançoisFabre es funktioniert jetzt !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine batch-Datei geht durch einige windows-kompatible Editoren oder anderen Pannen, kann es passieren, dass Wagenrücklauf chars angehängt, um das Ende der Leitung (kurz vor dem Zeilenvorschub)
so das alle Zeilen, die zum Beispiel diese:
enthält eine unsichtbare
\r
char interpretiert wird als Teil des Arguments pyphp
=> Datei/var/www/mysite/script1.php<invisible char>
nicht gefunden.Folgendes tun:
oder
(Vergleiche Dateigrößen, wenn die newbatchfile kleiner ist, problem war CR chars und behoben wird)