skrypt uruchamiany przez PHP i

Potrzebujesz pomocy z C, C++, perl, python, itp.
Tomek58
Posty: 32
Rejestracja: 21 czerwca 2008, 15:57

skrypt uruchamiany przez PHP i ścieŻki do katalogu

Post 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.sh

Kod: 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?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post 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.
Tomek58
Posty: 32
Rejestracja: 21 czerwca 2008, 15:57

Post 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.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Wrzuć dokładną treść skryptu i wyplutkę

Kod: Zaznacz cały

 ls -l /home
Tomek58
Posty: 32
Rejestracja: 21 czerwca 2008, 15:57

Post 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.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post 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ć.
Tomek58
Posty: 32
Rejestracja: 21 czerwca 2008, 15:57

Post 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
ODPOWIEDZ