Są pewne rzeczy, które musisz zrozumieć w tym zakresie.
Po pierwsze, PHP można uruchomić jako web server module
lub jako standalone executable
. Kiedy uruchamiasz go jako moduł serwera WWW, otwierasz go z przeglądarki, wszystkie powiązane technologie internetowe (html/css/js)
itp. przeanalizuj je i pracuj zgodnie.
Kiedy uruchamiasz go z wiersza poleceń za pomocą crona, np. powiedz /usr/bin/php mywebpage.php
wtedy plik wykonywalny php NIE analizuje / nie rozumie innych technologii internetowych, więc Twoja strona ulegnie awarii.
Istnieją dwa obejścia tego problemu:
-
Przepisz tylko te części, które są dostępne w sieci, aby ajax/js były obsługiwane przez PHP. Podstawowa zasada jest taka, że jeśli uruchamiasz skrypt CLI php, powinien on zawierać TYLKO podstawowe PHP. To jest preferowany sposób. Będziesz musiał przenieść wywołania ajax do wnętrza tego samego pliku i po prostu uczynić go pojedynczym przepływem wykonywania, jak każdy zwykły program.
-
Jeśli z jakiegoś powodu nie możesz wykonać powyższego, możesz spróbować czegoś takiego:
/path/to/browser http://mysite/mywebpage.php
. Tutaj, co robisz, uruchamiasz plik wykonywalny przeglądarki, a następnie wywołujesz adres URL strony internetowej. W ten sposób strona jest wykonywana w środowisku przeglądarki i będzie w stanie przeanalizować i zrozumieć wywołania ajax/js.