Skocz do zawartości

skrypt wykonuje się tylko raz


tlucid

Rekomendowane odpowiedzi

hej,

mam dziwny problem i nawet nie wiem gdzie szukać rozwiązania.

Skrypt wygląda tak:

define('ALLEGRO_COUNTRY', AllegroWebAPISoapClient::COUNTRY_PL);

class AllegroWebAPISoapClient extends SoapClient 
{
const COUNTRY_PL=1;
public function __construct() {
	parent::__construct('https://webapi.allegro.pl/uploader.php?wsdl');
}
...
}
...

Za pierwszym razem się wykonuje poprawnie, wyniki są ok. jednak po odswieżeniu (ponownej próbie wykonania skryptu) wyskakuje błąd

Fatal error: Class 'AllegroWebAPISoapClient' not found in /var/www/virtual/....pl/htdocs/######.php on line 6

linijka błedu: define('ALLEGRO_COUNTRY', AllegroWebAPISoapClient::COUNTRY_PL);

dopiero restart apache powoduje, że znowu mogę wykonać skrypt i także tylko jednorazowo. Mam dostęp do php.ini i podejrzewam, że w nim tkwi problem, ponieważ na innym serwerze skrypt wykonywał się bez problemu..

Odnośnik do komentarza
Udostępnij na innych stronach

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Z zamieszczonego fragmentu kodu NIC nie wynika.

Zapoznaj się z tym: https://allegro.pl/webapi/tutorials.php/tutorial/id,121

dzieki za odpowiedz. sęk w tym, że

1) Na innym serwerze ten sam kod się wykonuje bez żadnego problemu (wielokrotnie).

2) Na tym serwerze ten kod także wykonuje się za pierwszym razem. Pobiera z allegro odpowiednie dane i je zwraca mi na ekran. Problem pojawia się, gdy ponownie próbuję wykonać skrypt i dotyczy tylko jednego serwera - stąd moje podejrzenie, że wina nie leży po stronie kodu.

w dodatku jak wywalilem ten define i w kodzie w kilku miejscach gdzie stala byla uzywana wprowadzilem 'recznie' wartosc to skrypt także wykonywał się bez żadnego problemu wielokrotnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Jedynie co można zdalnie poradzić po porównaj wersje PHP zainstalowane na serwerach.

<?php

phpinfo();

?>

I zobacz różnice....

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Hej, nadal nie wiem co moze byc nie tak, napisalem nawet duzo duuzo prostszy skrypt:

 
<?
define('JAKAS_STALA', MojaKlasa::WEWNETRZNA);

class MojaKlasa extends SoapClient {
const WEWNETRZNA=1;

public function __construct() {
}

public function powiedz() {
	return "cos do powiedzenia mam";
}
}

$tomek=new MojaKlasa();
echo $tomek->powiedz();
?>

jak widać skrypt praktycznie nie robi nic. Pierwszy raz dziala, ponowna proba wykonania:

Fatal error: Class 'MojaKlasa' not found in /var/www/virtual/allehot.pl/htdocs/proba/proba2.php on line 2

(line 2 to z define)

Wystarczy, ze wprowadze najmniejsza zmiane w pliku, np dodam gdzies spacje i zapisze, to wywolanie skryptu z przegladarki znowu zadziala. I znow tylko raz, ponowna proba wypluje blad.

phpinfo: https://allehot.pl/proba/phpinfo.php

Odnośnik do komentarza
Udostępnij na innych stronach

Wiec na to wynika, ze problem jest bo masz tam XCache

w tym miejscu to musisz wywalic: define('JAKAS_STALA', MojaKlasa::WEWNETRZNA);

Możesz warunkowo wyłączyć:

php_admin_value xcache.cacher Off

php_admin_value xcache.stat Off

php_admin_value xcache.optimizer Off

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

dziękuję! :D dało radę ;)

dla potomnych, w phpinfo() wypluje skąd jest ten xcache, u mnie:

/etc/php5/cgi/conf.d/xcache.ini

w pliku wystarczy zmienilem na off te pozycje co podal Mion. Swoją drogą domyślam się, że wyłączam xcache, który jest z jakiegoś powodu źle skonfigurowany...

Odnośnik do komentarza
Udostępnij na innych stronach

Nie musisz tego wyłączać globalnie tylko dla określonego konta i właśnie po to są te flagi ...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nie musisz tego wyłączać globalnie tylko dla określonego konta i właśnie po to są te flagi ...

wiem wiem, ale podejrzewam, że skoro blokuje wykonanie się poprawnie napisanego (czy tu się mylę?) skryptu, to znaczy, że jest conajmniej źle skonfigurowany. Skoro narazie nie wiem jak go skonfigurować, wolę go zupełnie wyłączyć ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności