Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Problemy z cron'em
Forum PHP.pl > Forum > Przedszkole
dark_root
mam taki plik
Kod
<?
$nazwapliku = 'pole.html';
$plik = @fopen($nazwapliku, "a");
flock($plik, 2);
fwrite($plik,"cron działa jeśli to drugi wpis");
flock($plik, 3);
fclose($plik);
?>


i jak go próbuję uruchomić w cronie, dostaję taki komunikat na maila
Cytat
public_html/pole.php: line 1: ?
: No such file or directory
public_html/pole.php: line 2: =: command not found
public_html/pole.php: line 2:
: command not found
public_html/pole.php: line 3: syntax error near unexpected token `('
public_html/pole.php: line 3: `$plik = @fopen($nazwapliku, "a") ;
'


Co jest źle?
wookieb
Jesteś w złym katalogu roboczym. Musisz się dowiedzieć w jakim katalogu roboczym pracuje cron

I od niego możesz stworzyć ścieżkę do twojego pliku. Drugą możliwością jest zmiana katalogu roboczego
http://php.net/chdir
dark_root
o ile dobrze zrozumiałem powinno to wyglądać tak
getcwd() zwraca mi coś takiego /home/ruben/public_html
więc napisałem taki kod
Kod
<?
$nazwapliku = '/home/ruben/public_html/pole.html';
$plik = @fopen($nazwapliku, "a");
flock($plik, 2);
fwrite($plik,"cron działa jeśli to drugi wpis");
flock($plik, 3);
fclose($plik);
?>

Cytat
public_html/pole.php: line 1: ?
: No such file or directory
public_html/pole.php: line 2: =: command not found
public_html/pole.php: line 2:
: command not found
public_html/pole.php: line 3: syntax error near unexpected token `('
public_html/pole.php: line 3: `$plik = @fopen($nazwapliku, "a") ;
'



Drugi sposób:
Kod
<?
chdir('public_html');
$nazwapliku = 'pole.html';
$plik = @fopen($nazwapliku, "a");
flock($plik, 2);
fwrite($plik,"cron działa jeśli to drugi wpis");
flock($plik, 3);
fclose($plik);
?>

Przy czym dostaję coś takiego
Cytat
public_html/pole.php: line 1: ?
: No such file or directory
public_html/pole.php: line 2: syntax error near unexpected token
`'public_html''
public_html/pole.php: line 2: `chdir('public_html');
'


Czemu teraz nie działa?
wookieb
Myślę, że jak zrobisz tak
  1. chdir(realpath(__FILE__));

na początku skryptu to powinno działać.
dark_root
Po wstawieniu tego, kodu wyskoczył mi taki błąd
Cytat
Warning: chdir() [function.chdir]: Not a directory (errno 20) in /home/ruben/public_html/pole.php on line 2

Nie rozumiem tego komunikatu. Jak może nie istnieć katalog, skoro znajduje się w nim plik, który uruchomiłem?
erix
  1. chdir(realpath(__FILE__));

:
  1. chdir(dirname(realpath(__FILE__)));
ewew
"Po wstawieniu tego, kodu wyskoczył mi taki błąd
Cytat
Warning: chdir() [function.chdir]: Not a directory (errno 20) in /home/ruben/public_html/pole.php on line 2

Nie rozumiem tego komunikatu. Jak może nie istnieć katalog, skoro znajduje się w nim plik, który uruchomiłem?"


Bo podałeś ścieżkę do pliku a nie do katalogu, spróbuj użyć:

/home/ruben/public_html/
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.