Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> exec - tarowanie
SeaDog
post 13.03.2011, 22:05:56
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (0%)
-----


Witam, na początku powiem, że czytałem już tematy odnośnie polecenia exec, które są już na tym forum. Stosowałem się do wskazówek innych użytkowników,
ale niestety jak na złość to polecenie a konkretniej: exec("tar... nie chce mi działać.

Tak pokrótce:
W domu mam postawiony serwer apache + PHP + MySQL (config standardowy),
dodatkowo uruchomiony mod_rewrite.

uruchamiając skrypt:
  1. <?php
  2. exec('whoami');
  3. ?>

dostaję informację kim jestem

natomiast ten skrypt:
  1. <?php
  2. $file = "/www/plik.jpg";
  3. exec('tar -cf archiwum.tar', $file);
  4. ?>

już mi nie działa. Dodam, że nie ma żadnego błędu.

config apache-a standardowy. Dla użytkownika www-data atrybuty ustawione są na rwx.
Próbowałem plik tar wrzucić do głównego katalogu www i z tego katalogu uruchomić program. Efekt ten sam, czyli nic. Dalej brak archiwum.

W czym tkwi problem?
Go to the top of the page
+Quote Post
Crozin
post 13.03.2011, 22:07:56
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


W tym, że nie popatrzyłeś do czego służy drugi argument funkcji exec: http://pl2.php.net/manual/en/function.exec.php
Go to the top of the page
+Quote Post
SeaDog
post 13.03.2011, 22:22:14
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (0%)
-----


użycie samego, pierwszego argumentu też nic nie daje.

  1. <?php
  2. exec('tar -cf archiwum.tar');
  3. ?>

tak też próbowałem i nic.

Ten post edytował SeaDog 13.03.2011, 22:22:52
Go to the top of the page
+Quote Post
-krzotr-
post 13.03.2011, 22:31:52
Post #4





Goście







Powyższa komenda nie ma prawa działać

  1. <?php
  2. $file = "/www/plik.jpg";
  3. exec('tar -cf archiwum.tar ' . $file); // konkatenacja
Go to the top of the page
+Quote Post
SeaDog
post 14.03.2011, 00:17:57
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (0%)
-----


wiem, wiem, ręce mi opadały więc już i to napisałem.
Tak naprawdę prosta sprawa a stwarza tyle kłopotu.

używałem takich poleceń:

  1. <?php
  2. exec("tar -cf archiwum.tar");
  3. ?>

żeby utworzyć same archiwum a później z pętli wrzucać do niego pliki.

robiłem też tak:

  1. <php
  2. exec("tar -cf archiwum.tar plik.jpg");
  3. ?>


próbowałem z pojedynczymi cudzysłowami, ale to nie ma znaczenia dry.gif

tak, jak napisałem wyżej, wrzuciłem też plik tar do katalogu głównego i z tej lokalizacji odpaliłem polecenie.

To samo.

Myślę, że po stronie serwera coś może być, tylko config jest standardowy.

przed chwilką wykonałem to polecenie:

  1. <?php
  2. exec('tar -xf plik.tar');
  3. ?>


pliki zostały wypakowane.



Problem rozwiązany.

  1. <?php
  2. exec('tar -rf archiwum.tar');
  3. ?>


nie można po prostu tworzyć pustego archiwum t.j.
  1. <?php
  2. exec('tar -cf archiwum.tar');
  3. ?>

chciałem zrobić tak, że tworzę plik archiwum.tar i do tego archiwum wrzucam pliki.
całąścią miała sterować pętla.

Najpierw trzeba dodać do archiwum jakiś plik, a później do tego archiwum wrzucać kolejne,
tylko dlaczego w takim razie działa -rf?
  1. <?php
  2. exec('tar -rf archiwum.tar');
  3. ?>

puste archiwum jest tworzone mimo tego, że to argument -c odpowiada za utworzenie archiwum
a -r wrzuca pliki do istniejącego.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:50