![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich:)
Napotkałem pewien problem przy pracy z frameworkiem CakePHP. Chciałbym aby niektóre akcje wykonywały się cyklicznie bez mojej ingerencji czyli np. wysyłały się maile z raportami do określonych użytkowników. Do wykonania tego zadania chce wykorzystać możliwość serwera home.pl i zadania crona. W tym celu napisałem funkcje jako zadania powłoki. Po uruchomieniu tego skryptu na serwerze lokalnym (localhost) z lini komend wszystko działa poprawnie i funkcja się wykonuje (poprawnie wysyła maile). Problem pojawia się kiedy na zdalnym serwerze chce uruchomić to samo zadanie. I tu moje pytanie do Was: co mam wpisać w pliku cron aby uruchomić to zadanie? Dzwoniłem do pomocy home.pl i powiedzieli mi że wszystko jej poprawnie skonfigurowane czyli plik jest w dobrym miejscu, ma odpowiednią nazwę i uruchamia się tak jak sobie tego życzę lecz w nim znajduje się błąd. Sęk w tym że nie wiem jak poprawnie wywołać to zadanie... Szukałem i znalazłem wskazówki ze powinienem użyć funkcji system lub exec... ale jak mam ich użyć? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
system('wget adreswww/cron.php?key=6f4LuIzrJjQg2JprEt03gntGas1AeUx'%3b');
Ten post edytował memory 8.12.2016, 17:40:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Tzn jak mam to rozumieć? Skąd ta wartość? Czy mógłbym prosić o małe wyjaśnienie?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
wartość jest przykładowa system(wget 'plik z cronem') . system - uruchamia shella. wget - pobiera plik
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... zrobiłem jak mówisz lecz po odpaleniu mojego crona z przeglądarki pojawia się taki komunikat:
Malformed header from CGI script: --2016-12-08 21:08:31-- http://nazwa_serwera.home.pl/public_html/cake/bin/cake.php Resolving nazwa_serwera.home.pl (nazwa_serwera.home.pl)... adres_ip Connecting to nazwa_serwera.home.pl (nazwa_serwera.home.pl)|adres_ip|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2016-12-08 21:08:31 ERROR 404: Not Found. Content-type: text/html; charset=UTF-8 Natomiast mój kod wyglada następująco i jest to zawartość pliku cron-5min.php: <code>
</code> echo i pre użyłem żeby zobaczyć jakikolwiek efekt w przeglądarce:) Zadanie shellowe o nazwie Hello zwraca tylko napis Hello. Wydaje mi się że jeżeli ten skrypt poprawnie sie wykona to w przeglądarce wyświetli się właśnie Hello. Co chyba ze błędnie myśle... Nie wiem czy my się dobrze zrozumieliśmy więc wyjaśnię jeszcze raz: samo wykonywanie pliku co 5 minut działa lecz jest błąd w pliku crone-5min.php bo nie wiem jak mam uruchomić skrypt shellowy wbudowany w cakephp o nazwie cake.php który z kolei za parametr przyjmuje nazwę napisanego przeze mnie skryptu i dopiero on wykonuje zaplanowane akcje. Ten post edytował wojtek6000 8.12.2016, 21:59:30 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
@wojtek6000, musisz próbować metodą prób i błedów praktycznie każdy język to tak naprawdę interfejs dla ludzi stworzony przez ludzi ;-)
popróbuj assembler i zobaczysz wtedy co to znaczy podwyższony poziom trudności ;-] Ten post edytował ZenekN 8.12.2016, 21:52:19 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) ![]() ![]() |
https://pomoc.home.pl/baza-wiedzy/cykliczne...chamianie-cron/
Pobiera plik a nie uruchamia "zadanie shellowe" . Musisz opakować "zadanie shellowe" w plik php aby można było odpalić z poziomu przeglądarki. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
I właśnie o to mi chodzi..... Nie wiem co mam napisać by uruchomić aplikacje cake.php... Na localhoscie nie ma problemu bo uruchamiam cmd i pisze:
<code> php.exe /sciezka_dostepu/bin/cake.php NazwaKlasy NazwaMetody </code> i wszystko pięknie działa. Bardzo proszę o wskazówkę czy w ogóle da się uruchomić tego typu aplikacje na zdalnym serwerze... Tu link do dokumentacji: http://book.cakephp.org/3.0/en/console-and-shells.html |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Mam juz w pliku coś takiego :
<code>
</code> Jednak dalej nie działa... Mój skrypt powinien stworzyć pusty plik na serwerze i wysłać maila... na localhoscie działa bez zarzutu... Ten post edytował wojtek6000 9.12.2016, 10:06:30 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
chdir('/cake/bin/');
Nie mam pojęcia jak zadziała to na windowsie, ale na linuxie na pewno nie tak jakbyś tego chciał - prawdopodobnie wywali, ze nie masz takiego katalogu. Spróbuj odpalić Najlepiej podaj pelna sciezke. Ten post edytował kapslokk 9.12.2016, 10:14:40 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Tzn. kiedy odpalam to w przeglądarce i dam komende ls to wyświetla mi pliki z danego katalogu z serwera.
teraz mój plik wygląda tak:
i zwraca mi taki błąd: sh: php.exe: command not found sh: php: command not found sh: php.exe: command not found sh: php: command not found |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak odpalasz z przeglądarki to skrypt "juz jest w odpowiednim katalogu" cron odpala go z konsoli i dlatego nie bangla tak jak trzeba.
php.exe nie dziala bo to nie windows. Zamień na i dodatkowo przed /cake wstaw sciezke BEZWZGLEDNA do tego katalogu - komenda pwd przez ssh albo echo (__DIR__); w skrypcie php. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Jesteś genialny:D Wszystko działa według twoich zaleceń
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:02 |