Portál AbcLinuxu, 8. května 2025 20:11

Dotaz: Spuštění PHP scriptu přes SH příkaz

28.8.2015 08:18 cvp | skóre: 18
Spuštění PHP scriptu přes SH příkaz
Přečteno: 913×
Odpovědět | Admin
Potřeboval bych poradit, jak mohu přes SH soubor spustit PHP script.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.8.2015 08:43 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takto:

#!/bin/sh

php skript.php

Jen je třeba mít nainstalovaonou tzv. cli verzi PHP. Běžně balíček php5-cli
28.8.2015 08:56 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Čo blbneš človeče?
$ cat foo.php 

#!/usr/bin/php

<?php 
 Print "Hello, World!";
 ?>


$ chmod +x foo.php

$ ./foo.php 

Hello, World! 
28.8.2015 09:03 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Potřebuji spustit hlavně PHP soubor než-li script v SH souboru.

Nyní v souboru camera.sh mám:

#!/usr/bin/php

raspistill -o /home/pi/tmp/actual.jpg

php /home/pi/php_image.php

Chyba:
pi@raspberrypi ~ $ sh camera.sh
camera.sh: 6: camera.sh: php: not found
28.8.2015 09:30 NN
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
No tak ted si to zamichal vsechno dohromady.. podivej se poradne na predchozi prispevky.
28.8.2015 09:32 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Chybí balík php5-cli

Jinak jak tu někdo píše, je možné spouštět i přímo PHP soubor, pokud je spustitelný (chmod +x) a má nastavený shebang (#!xxx jako první řádek souboru).

Osobně to nepoužívám z několika důvodů - např. někdy souštím skript s jiným interpretem, někdy potřebuju, aby byl skript obojetný a jel jak v CLI tak WWW režimu, nějak PHP prostě nepovažuju za to samé jako shell skript, perl atd. ale to je na vkusu každého soudruha :)
28.8.2015 09:40 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Tak že na začátku SH scriptu musí být:
#!/usr/bin/php
... místo
#!/bin/bash
. Spouštím tam i jiné scripty než-li PHP.
28.8.2015 09:49 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Ne, ten tvůj kod, co cituješ výše je OK, jen jak ti to píše, že nenašel php, tak to znamená, že nemáš nainstalované php5-cli... popř. se může jmenovat phpx-cli i v příkazovém řádku, nevím jak je to na raspu.
28.8.2015 09:54 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Pokud bych potřeboval vypsat případné chyby z PHP souboru, jak toho mohu docílit. Chyba se sama zobrazí, když spustím sám SH soubor
sh camera.sh
kde mám i spouštění php souboru?
28.8.2015 10:00 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Teď se taky ztrácím. Ten soubor camera.sh obsahuje přikazy, které se spustí - je to prostě dávka příkazů. Ten první řádek určuje, jakým interpretem se obsah souboru bude vykonávat (má být shell - proto to #!/bin/sh), další řádek je spuštění nějakého programu z raspu - asi grabne obrázek. No a poslední řádek spouští ten skript php_image.php

Zápis:

php /home/pi/php_image.php

Znamená: spusť příkazový php interpret... a jako parametr mu říkáš, co má interpretovat - ten soubor php_image.php

A ta chyba, co cituješ ti říká, že se mu nepovedlo spustit ten interpret PHP... teda že nejde spustit příkaz php z příkazové řádky...

Důvody mě napadají 2: není nainstalovaný (balík phpX-cli) a/nebo se jmenuje jinak než jen "php"... např. phpX-cli
28.8.2015 10:06 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
php5-cli jsem nainstaloval, tak že chyba se již nezobrazuje.

camera.sh provede přes raspistill vyfocení přes camera modul. Obrázek se uloží (2,5MB) a následně potřebuji PHP scriptem zmenšit souborovou velikost se zachováním kvality. Raspistill totiž i při kvalitě JPG 85 dá přes 2MB, ale pokud obrázek protáhnu přes PHP script, tak ikdyž kvalita zůstane stejná, souborová velikost obrázku klesne na cca 350-450kB, což se přes LAN tahá příjemněji.

Bohužel leč je PHP script napsán dobře a fungovat by měl, tak se soubor o nižší velikosti nechce vytvořit a já bych potřeboval vidět případnou chybu PHP scriptu, když spouštím celý camera.sh.
28.8.2015 11:51 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Tak to je další otázka, bude třeba asi ocitovat ten skript... Předpokládám, že může být problém s právy, popř. s nalezením správného souboru.

Zkusil bych:
  • v PHP skriptu najít, kde se hledá vstupní soubor pro resize a ověřit, že je to ten správný,
  • v PHP skriptu najít, kam se ukládá cílový soubor, popř. ověřit, že cesta existuje,
  • ověřit, že skript má právo číst ze zdroje a zapisovat do cíle.
Po ručním spuštění ten PHP skript funguje? Proč seš si tak jistý, že je OK?
28.8.2015 09:55 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
Pardon, má chyba. Špatně sem se podíval. Ten skript má být:

Obsah camera.sh:
#!/bin/sh

raspistill -o /home/pi/tmp/actual.jpg

php /home/pi/php_image.php
Následně spouštět:
$ sh camera.sh
popř. jen:
$ ./camera.sh
28.8.2015 13:58 divbyzero | skóre: 6
Rozbalit Rozbalit vše Re: Spuštění PHP scriptu přes SH příkaz
omlouvam se, pokud jsem mimo, ale jako prvni bych udelal toto:

#!/bin/bash

raspistill -o /home/pi/tmp/actual.jpg

/usr/bin/php /home/pi/php_image.php

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.