|
skrypt uruchamiany przez PHP i ścieżki do katalogu
Tomek58 - 13-01-2009 21:12
Witam ponownie! Napisałem prosty skrypt, który zamierzam uruchamiać za pomocą PHP. Skrypt ten znajduje się w katalogu: /home/katalog/skrypt.sh
A oto skrypt.sh
#!/bin/sh cd /home/katalog screen -A -m -d -S program ./program -parametry
Gdy chcę go uruchomić z katalogu: /var/www (z tego katalogu będzie uruchamiał go PHP) komendą: sh /home/katalog/skrypt.sh wyskakuje: : No such file or directory cd: /home/katalog
Co z tym zrobić? Jak poustawiać ścieżki aby dało się go uruchomić z katalogu /var/www?
lis6502 - 13-01-2009 21:21
Uruchom go z parametrem -x i upewnij się że Ty i www-data macie prawa odczytu /home/katalog. Sprawdź pod kątem literówek.
Tomek58 - 13-01-2009 21:29
Uruchom go z parametrem -x i upewnij się że Ty i www-data macie prawa odczytu /home/katalog. Sprawdź pod kątem literówek.
Prawa do odczytu mam, bo jak usunę ze skryptu: cd /home/katalog i uruchomię go prosto z folderu katalog: home/katalog# sh skrypt.sh - to działa.
Narazie nie ma co sprawdzać praw do odczytu użytkownika: www-data, ponieważ jak nie mogę odpalić skryptu z katalogu /var/www jako root, to użytkownik www-data także go nie uruchomi.
lis6502 - 13-01-2009 22:26
Wrzuć dokładną treść skryptu i wyplutkę
ls -l /home
Tomek58 - 13-01-2009 22:39
Aktualnie mam skrypt w tej postaci:
#!/bin/sh screen -A -m -d -S nazwa1 ./program
ls -l /home
drwxrwxrwx 5 www-data root 4096 Jan 13 22:18 katalog drwxr-xr-x 2 ftp nogroup 4096 Jan 9 21:59 ftp
Nawet przeniosłem index.php do /home/katalog/index.php czyli tam gdzie znajduje się skrypt.sh, ustawiłem na serwerze www katalog ze stronami na /home/katalog, uruchomiłem w przeglądarce index.php i dalej nic.
Plik index.php <?PHP
$test = system("sh ./skrypt.sh"); echo $test;
?>
Skrypt się wykona prawidłowo gdy go uruchamiam prosto z katalogu.
lis6502 - 13-01-2009 22:50
Teraz dopiero zauważyłem... sh ./skrypt.sh Słuchaj, albo decydujesz się na interpretację pliku skrypt.sh przez program sh (sh skrypt.sh), albo chcesz go wykonać (./skrypt). Nie da rady naraz. Oba zapisy są oczywiście jak najbardziej poprawne, ale nie można ich ze sobą łączyć.
Tomek58 - 13-01-2009 22:55
Ten index.php zwraca: /home/katalog - więc robi się masło maślane. Już nie wiem gdzie leży problem :/
Ale dzięki za pomoc, będę dalej kombinował i może się uda.
[ Dodano: 2009-01-14, 16:03 ] lis6502, Tak, ale program nadal nie chce się uruchomić gdy skrypt odpalam w PHP. Natomiast gdy w konsoli uruchamia się bez problemu.
Nadałem odpowiednim plikom chmod 777, a także ustawiłem właściciela programu na www-data
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|