Strona 1 z 1
skrypt uruchamiany przez PHP i ścieŻki do katalogu
: 13 stycznia 2009, 21:12
autor: Tomek58
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.shKod: Zaznacz cały
#!/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:
Kod: Zaznacz cały
: 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?
: 13 stycznia 2009, 21:21
autor: lis6502
Uruchom go z parametrem -x i upewnij się że Ty i www-data macie prawa odczytu /home/katalog. Sprawdź pod kątem literówek.
: 13 stycznia 2009, 21:29
autor: Tomek58
lis6502 pisze: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.
: 13 stycznia 2009, 22:26
autor: lis6502
Wrzuć
dokładną treść skryptu i wyplutkę
: 13 stycznia 2009, 22:39
autor: Tomek58
Aktualnie mam skrypt w tej postaci:
Kod: Zaznacz cały
#!/bin/sh
screen -A -m -d -S nazwa1 ./program
ls -l /home
Kod: Zaznacz cały
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
Kod: Zaznacz cały
<?PHP
$test = system("sh ./skrypt.sh");
echo $test;
?>
Skrypt się wykona prawidłowo gdy go uruchamiam prosto z katalogu.
: 13 stycznia 2009, 22:50
autor: lis6502
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ć.
: 13 stycznia 2009, 22:55
autor: Tomek58
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