Portál AbcLinuxu, 15. května 2025 18:16

Dotaz: PHP - spuštění souboru sh

28.8.2012 12:20 Jura
PHP - spuštění souboru sh
Přečteno: 269×
Odpovědět | Admin
Ahoj, mám dva soubory,
soubor foo.sh
#!/bin/bash
     echo "foo"
soubor go.php
<?php
    $output = system('/home/sh/foo.sh');
    printf("System Output: $output\n");
?>
Pokud spustím soubor go.php tak nedostanu žádný výsledek, proč? Co mám špatně? Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Tarmaq avatar 28.8.2012 12:35 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Odpovědět | | Sbalit | Link | Blokovat | Admin
tech duvodu muze byt vice: opravneni, problemy se safe_mode atp. Co je v error logu? pokud nemas pristup k error logu napis na zacatek toho go.php toto:
error_reporting(E_ALL);
ini_set('display_errors', 'On');
Don't panic!
28.8.2012 12:53 Jura
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
V logu nic není, a error_reporting taky nevypíše žádnou chybu...
Tarmaq avatar 28.8.2012 16:25 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
jeste bych zkusil pouzit krome navratove hodnoty funkce system (kterou je jen posledni radek) take druhy parametr, kterym je cely output - neni nic ani v nem?
Don't panic!
xxxxxx avatar 28.8.2012 23:12 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
K tomuhle řešení bych se také přiklonil. Podobný problém jsem už několikrát řešil s tím, že:
<?php
    $output = system('/home/sh/foo.sh');
    printf("System Output: $output\n");
?>
fungovat nebude, zatímco následující kód by fungovat měl:
<?php
    system('/home/sh/foo.sh', $output);
    printf("System Output: $output\n");
?>
Doufám, že se tímhle problém vyřeší.
28.8.2012 13:20 Kit
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně to normálně funguje. Možná máš chybně práva u souboru foo.sh
28.8.2012 13:27 Jura
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
foo.sh mám nastavený na rwxrwxrwx :-(
28.8.2012 13:32 Kit
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Ještě jsou důležitá práva k adresáři /home/sh/. Pod jakým uživatelem spouštíš ten skript v PHP?
28.8.2012 13:34 Jura
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Spouštím ho z prohlížeče, patrně se tedy bude jednat o www-data..
28.8.2012 13:39 Kit
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
A má potřebná práva k adresáři /home/sh/?

Také je důležité ten adresář přidat do Apache.
28.8.2012 13:37 Jura
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Ale tam by problém být neměl, jeliko když třeba přidám do souboru foo.sh
mkdir /home/fooaaa
tak se adresář vytvoří, ale echo se nevypíše nikdy :(
28.8.2012 13:41 Kit
Rozbalit Rozbalit vše Re: PHP - spuštění souboru sh
Jenže běžně se vytvoří adresář s právy drwx------, do kterého se Apache nedostane.

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.