Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][cron jobs] Problem z lokalizacją pliku
Forum PHP.pl > Forum > PHP
yarek12
Witam, mam skrypt php którym kopiuje pliki, wszystko działa, ale jak odpalam skrypt przez cron jobs to nie znajduje lokalizacji plików.

W skrypcie używam odnośników pośrednich.

np. : copy('../../files/'.$img, '../../files/thumbs/'.$img);

a jakich powinienem użyć?

Z góry dziękuje za pomoc
Tajgeer
Próbowałeś użyć bezwzględnych ścieżek?
erix
Powinieneś użwać odnośników bezwzględnych albo określać katalog roboczy przed wykonaniem polecenia kopiowania.
yarek12
jednak używając np.: http://adres.pl/files/plik.jpg też nie lokalizuje pliku, a co znaczy określić katalog roboczy?
Tajgeer
  1. $path = dirname(__FILE__); // ścieżka bezwzględna
erix
URL != ścieżka na dysku
abort
Przykład:
root directory serwera (tam gdzie trzymasz np. główny index.html): /var/virtuals/www.domena.com
odnośnik http://www.domena.com/katalog1/kat2/katalog3/index.php

Plik na dysku będzie w /var/virtuals/www.domena.com/katalog1/kat2/katalog3/index.php
Jeśli teraz w tym (wyżej wymienionym) index.php odwołujesz się do '../../files/'.$img', to odwołujesz się de facto do /var/virtuals/www.domena.com/katalog1/files/'.$img

Sporo danych, które Cię interesują, powinieś znaleźć w PHP, w szczególności w tablicy $_SERVER
yarek12
Dzięki za odpowiedzi, ale nie za bardzo rozumiem ja to wykorzystać.


plik które kopiuje pliki jest w public_html/modules/system/copy.php

a zdjęcia są w public_html/files/
Tajgeer
Sprawdź mojego drugiego posta w tym temacie - masz tam rozwiązanie, jak wyciągnąć ścieżkę bezwzględną. Po prostu ją zastosuj w swoim skrypcie, który dodajesz do crona.
redeemer
Bez zmiany samego skryptu możesz w cronie zamiast: php /sciezka/do/pliku/plik.php zrobić: cd /sciezka/do/pliku; php plik.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.