Strona 1 z 1
[+] php - uruchom skrypt a nastepnie index.html
: 10 lipca 2009, 11:33
autor: sethiel
Chciałbym napisać prostego php, który uruchomi skrypt a następnie index.html
zacząłem ale nie działa:
Kod: Zaznacz cały
<?php
exec('/skrypty/skrypt.bash');
$nazwa_pliku = "/var/www/katalog/index.html";
$uchwyt = fopen($nazwa_pliku, "rb");
$tresc = fread($uchwyt, filesize($nazwa_pliku));
fclose($uchwyt);
?>
Plik skrypt.bash tworzy za każdym uruchomieniem index.html i nadpisuje wszystkie pliki i foldery w katalogu /var/www/katalog/ oprócz index.php.
: 10 lipca 2009, 11:47
autor: winnetou
Dziękuje...
: 10 lipca 2009, 11:54
autor: genobis
No to problemem jest skrypt bash, którego nie pokazałeś, a nie php...
Tak na marginesie, polecam funkcję
: 10 lipca 2009, 12:12
autor: sethiel
Plik skrypt.bash:
Kod: Zaznacz cały
cat /var/log/demon/demon.log | cut -d ":" -f 4-1000 > /var/log/demon/1.log
cat /var/log/demon/1.log | cut -d " " -f 2-1000 > /var/log/demon/2.log
/opt/programy/tworz_strone_www
No tak, tylko pewnie nie powiedziałem jak chcę tego php odpalać, mianowicie:
Czyli maja się przekopiować odpowiednio logi, a następnie program tworz_strone_www utworzyć strukturę katalogów i plików używając miedzy innymi plików logów, to wszystko tworzy się w katalogu z plikiem index.php - z index.html włącznie. Po czym index.php ma uruchomić index.html
Edycja:
Nie odpala się skrypt bash.
Nawet gdy skróciłem skrypt bash do jednej linii (pierwszej) czyli:
Kod: Zaznacz cały
cat /var/log/demon/demon.log | cut -d ":" -f 4-1000 > /var/log/demon/1.log
Edycja2:
Jakby ktoś pytał:
: 10 lipca 2009, 12:29
autor: lessmian2
A czy właściciel procesu serwera WWW (prawdopodobnie www-data jeśli to standardowa instalacja Apache na Debianie) ma prawa do wykonywania tego skryptu, ew odpowiednie prawa do plików na których operuje?
: 10 lipca 2009, 12:31
autor: sethiel
Plik skrypt.bash ma prawa 755 ale za to nie miał praw do plików logów.
: 10 lipca 2009, 12:44
autor: lessmian2
Zaloguj się przez su na użytkownika www-data i spróbuj odpalić ten skrypt.
: 10 lipca 2009, 12:48
autor: sethiel
Kod: Zaznacz cały
SARG: setrlimit error - Operation not permitted
SARG: mkdir /virtual/web/squid-reports/2009Jul10-2009Jul10 Permission denied
SARG: process aborted.
Dziękuję.
Edycja:
Jedna dziwna sprawa, z poziomu ,,su www-data'' pierwsze dwie linie skryptu działają, a ze strony:
już nie.
Edycja2:
Wszystko z powodu mojej raptowności. Pomotałem nazwy katalogów to nie dziwne i nie czary że nie działało.
poprawny kod:
Kod: Zaznacz cały
<?php
exec('/opt/skrypty/strona_www.bash');
header("Location: /go/strona_www/index.html");
?>
Jeszcze raz dziękuję za pomoc.
ps (off topic). fnmirk - ja się na prawdę staram pisać posty tak abyś nie musiał ich za każdym razem edytować, ślipię w nie 100 razy by wreszcie wejść na wyżyny Twojej perfekcji a i tak coś zawsze znajdziesz.
: 16 lipca 2009, 01:28
autor: WilK
A nie lepiej zamiast Header użyc include albo require? Da Ci to taki efekt jak chciałeś na początku z odczytem pliku, a nie przejściem do pliku.