Potrzebujesz pomocy z C, C++, perl, python, itp.
sethiel
Junior Member
Posty: 762 Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław
Post
autor: sethiel » 10 lipca 2009, 11:33
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.
winnetou
Post
autor: winnetou » 10 lipca 2009, 11:47
Dziękuje...
genobis
Beginner
Posty: 353 Rejestracja: 21 lipca 2008, 21:59
Lokalizacja: Trzebinia
Post
autor: genobis » 10 lipca 2009, 11:54
No to problemem jest skrypt bash, którego nie pokazałeś, a nie php...
Tak na marginesie, polecam funkcję
sethiel
Junior Member
Posty: 762 Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław
Post
autor: sethiel » 10 lipca 2009, 12:12
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ł:
lessmian2
Member
Posty: 1088 Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków
Post
autor: lessmian2 » 10 lipca 2009, 12:29
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?
sethiel
Junior Member
Posty: 762 Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław
Post
autor: sethiel » 10 lipca 2009, 12:31
Plik skrypt.bash ma prawa 755 ale za to nie miał praw do plików logów.
lessmian2
Member
Posty: 1088 Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków
Post
autor: lessmian2 » 10 lipca 2009, 12:44
Zaloguj się przez su na użytkownika www-data i spróbuj odpalić ten skrypt.
sethiel
Junior Member
Posty: 762 Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław
Post
autor: sethiel » 10 lipca 2009, 12:48
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.
WilK
Posty: 26 Rejestracja: 12 lipca 2009, 15:40
Lokalizacja: Warszawa
Post
autor: WilK » 16 lipca 2009, 01:28
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.